You are here: Symbol Reference > Optimization Namespace > Types > Optimization.TJacobianFunction Type
MtxVec VCL
ContentsIndex
Example

Define the Jacobian for the banana function.

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;
#include "MtxExpr.hpp" #include "Math387.hpp" void __fastcall VecFun(TVec* const x, TVec* const f, const double* c, conts int c_count, System::TObject* const* o, const int o_count); { double* X = x->PValues(0); double* F = f->PValues(0); F[0] = 100.0*IntPower(X[1]-IntPower(X[0],2),2); F[1] = IntPower(1.0-X[0],2); } // Jacobian is 2x2 matrix void __fastcall BananaJac(TVec* const x, TVec* const y, TMtx* const Jac); begin double* X = x->PValues(0); Jac->Values[0,0] = -400*(X[1]-IntPower(X[0],2))*x[0]; // partial(f0)/ partial(x0) Jac->Values[0,1] = -2*(1-X[0]); // partial(f1)/ partial(x0) Jac->Values[1,0] = 200*(X[1]-IntPower(X[0],2)); // partial(f0)/ partial(x1) Jac->Values[1,1] = 0.0; // partial(f1)/ partial(x1) end;
Copyright (c) 1999-2025 by Dew Research. All rights reserved.