[ILNumerics Optimization Toolbox]
Namespace: ILNumerics.Toolboxes
Assembly: ILNumerics.Toolboxes.Optimization (in ILNumerics.Toolboxes.Optimization.dll) Version: 5.5.0.0 (5.5.7503.3146)
public delegate RetArray<T> DerivativeFunction<T>( OptimizationObjectiveFunction<T> func, InArray<T> x, InArray<T> fx )
Parameters
- func
- Type: ILNumerics.ToolboxesOptimizationObjectiveFunctionT
Objective function - x
- Type: ILNumericsInArrayT
Input vector, current position - fx
- Type: ILNumericsInArrayT
Result of evaluation of the objective function func at x
Type Parameters
- T
Return Value
Type: RetArrayTJacobian matrix of the objective function at position x
A derivative function is used to provide optimization algorithms with information about the derivative of the objective function at a certain position. Both, the Jacobian matrix and the Hessian matrix can be computed using derivative functions. User defined implementations may be given to the optimization algorithm. These implementations can profit from insights into the nature of the objective function, which can lead to both: more exact and faster derivative determination, hence a faster/better convergence of the algorithm.
A user defined implementation has the option to consider any of the input parameters for the jacobian estimation. An analytical implementation of some known function would not need to use the objective function provided. Finite difference method mostly do.
Custom implementations may not rely on the fact that fx has been provided. However, it should test for fx being not null before evaluating the objective function at x itself. That way the number of evaluations of func can be decreased. The overall performance is often highly influenced by the number of evaluations of func.
[ILNumerics Optimization Toolbox]