procedure NumericGradRichardson(Fun: TRealFunction; const Pars: TVec; const Consts: TVec; const ObjConst: TObjectArray; const Grad: TVec);
Numerical gradient by high precision numerical differentiation.
| # | Name | Description |
|---|---|---|
| 1 | Fun | Real function of several variables. |
| 2 | Pars | Function variables. |
| 3 | Consts | Array of additional constants which can be used in math formula. |
| 4 | ObjConst | Array of additional constants (pointers) which can be used in math formula. |
| 5 | Grad | Returns calculated gradient. If needed, Grad Length and Complex properties are adjusted automatically. |
Result: stored in self (calling object)
Remarks:
Calculates the numerical gradient by high precision numerical differentiation. The algorithm uses Richardson extrapolation of three values of the symmetric difference quotient. The gradient step size is defined by Math387.GradStepSize global variable. Normally the optimal stepsize depends on seventh partial derivatives of the function. Since they are not available, the initial value for GradientStepSize is Exp(Ln(EPS)/7)*0.25, as suggested by Spellucci.