[ https://issues.apache.org/jira/browse/MATH1143?page=com.atlassian.jira.plugin.system.issuetabpanels:commenttabpanel&focusedCommentId=14521339#comment14521339
]
Luc Maisonobe edited comment on MATH1143 at 4/30/15 11:24 AM:

If you have function f(x1, x2, x3) and know both the value and the derivatives, you can directly
build the DerivativeStructure as follows:
{code}
int nbParams = 3; // index 0 will be for x1, index 1 for x2, index 2 for x3
int order = 1; // we will use only value and first order derivative
return new DerivativeStructure(nbParams, order, f, dfdx1, dfdx2, dfdx3);
{code}
As this constructor has a variable number of arguments, this example can be generalized
to other numbers of parameters.
The order in which the derivatives should be provided is difficult to set up in the general
case
when both nbParams and order are greater than 1, but it is straightforward in the two limit
cases (nbParams = 1, order > 1) or (nbParams > 1, order = 1). In both cases, you just
give
the derivatives in the "natural" order, which is in increasing order when you have one parameter
and high order derivatives, and in parameters order when you have only first order derivatives
for all parameters.
was (Author: luc):
If you have function f(x1, x2, x3) and know both the value and the derivatives, you can directly
build the DerivativeStructure as follows:
{code}
int nbParams = 3; // index 0 will be for x1, index 1 for x2, index 2 for x3
int order = 1; // we will use only value and first order derivative
return new DerivativeStructure(nbParams, order, f, dfdx1, dfdx2, dfdx3);
{code}
As this constructor as a variable number of arguments, this example can be generalized
to other numbers of parameters.
The order in which the derivatives should be provided is difficult to set up in the general
case
when both nbParams and order are greater than 1, but it is straightforward in the two limit
cases (nbParams = 1, order > 1) or (nbParams > 1, order = 1). In both cases, you just
give
the derivatives in the "natural" order, which is in increasing order when you have one parameter
and high order derivatives, and in parameters order when you have only first order derivatives
for all parameters.
> Helper methods to FiniteDifferencesDifferentiator
> 
>
> Key: MATH1143
> URL: https://issues.apache.org/jira/browse/MATH1143
> Project: Commons Math
> Issue Type: Improvement
> Reporter: Alexander Nozik
> Priority: Trivial
>
> A DerivativeStructure and UnivariateDifferentiableFunction are great tools if one needs
to investigate the whole function but are not convenient if one just needs derivative in a
given point.
> Perhaps you could add some helper methods to FiniteDifferencesDifferentiator or to utility
class like FunctionUtils. Also it would be good to have helper methods to get the derivatives
of UnivariateDifferentiableFunction or MultivariateDifferentiableFunction as simple Univariate
or Multivariate functions (or vectorfunctions).

This message was sent by Atlassian JIRA
(v6.3.4#6332)
