type TJacobianFunction = procedure(const X,Y: TVec; const Jac: TMtx);
Defines procedure for calculating the Jacobian matrix.
Jacobian matrix element (i,j) is defined as partial(Y(j))/partial(C(i)).
Examples
delphi
Uses MtxVec, Math387;
// Split banana function in two parts
procedure BananaFun(const x,f: TVec; const Consts: array of double; const PConsts: array of TObject);
begin
f[0] := 100*Sqr(x[1]-Sqr(x[0]));
f[1] := Sqr(1-x[0]);
end;
// Jacobian is 2x2 matrix
procedure BananaJac(const x,f: TVec; const Jac: TMtx);
begin
Jac[0,0] := -400*(X[1]-Sqr(X[0]))*X[0]; // partial(f0)/ partial(x0)
Jac[0,1] := -2*(1-X[0]); // partial(f1)/ partial(x0)
Jac[1,0] := 200*(X[1]-Sqr(X[0])); // partial(f0)/ partial(x1)
Jac[1,1] := 0.0; // partial(f1)/ partial(x1)
end;