IGLib 1.4
The IGLib base library for development of numerical, technical and business applications.
|
RosenBrock function. f(x,y) = (1-x)^2 + 100 * (y-x^2)^2. More...
Public Member Functions | |
Rosenbrock () | |
Creates a new untransformed Rosenbrock's function. | |
Rosenbrock (IAffineTransformation transf) | |
Creates a new transformed Rosenbrock's function. | |
override double | ReferenceValue (IVector parameters) |
Returns the value of this function at the specified parameter in the reference coordinate system. | |
override void | ReferenceGradientPlain (IVector parameters, IVector gradient) |
Calculates the first derivative (gradient) of this function at the specified parameter in the reference coordinate system. | |
override void | ReferenceHessianPlain (IVector parameters, IMatrix hessian) |
Calculates the second derivative (Hessian) of this function at the specified parameters in the reference coordinate system. | |
Properties | |
override string | Name [get] |
Returns a short name of the function. | |
override string | Description [get] |
Returns a short description of the function. | |
override bool | ValueDefined [get, set] |
Tells whether the first derivative is defined for this function (by implementation, not mathematically) | |
override bool | GradientDefined [get, set] |
Tells whether the first derivative is defined for this function (by implementation, not mathematically) | |
override bool | HessianDefined [get, set] |
Tells whether the second derivative is defined for this function (by implementation, not mathematically) |
RosenBrock function. f(x,y) = (1-x)^2 + 100 * (y-x^2)^2.
This function is often used for testing optimization algorithms. It has unique minimum at (1, 1) where the value is 0.
See also:
On Wikipedia: http://en.wikipedia.org/wiki/Rosenbrock_function
$A Igor xx Dec10;
IG::Num::ScalarFunctionExamples::Rosenbrock::Rosenbrock | ( | ) | [inline] |
Creates a new untransformed Rosenbrock's function.
IG::Num::ScalarFunctionExamples::Rosenbrock::Rosenbrock | ( | IAffineTransformation | transf | ) | [inline] |
Creates a new transformed Rosenbrock's function.
transf | Affine transformation that is applied on parameters. If null then the fuction is identical to the untransformed Rosenbrock function. |
override double IG::Num::ScalarFunctionExamples::Rosenbrock::ReferenceValue | ( | IVector | parameters | ) | [inline, virtual] |
Returns the value of this function at the specified parameter in the reference coordinate system.
parameters | Vector of parameters (in the REFERENCE system) where function is evaluated. |
Implements IG::Num::ScalarFunctionBase.
override void IG::Num::ScalarFunctionExamples::Rosenbrock::ReferenceGradientPlain | ( | IVector | parameters, |
IVector | gradient | ||
) | [inline, virtual] |
Calculates the first derivative (gradient) of this function at the specified parameter in the reference coordinate system.
parameters | Vector of parameters (in the REFERENCE system) where derivatives are evaluated. |
gradient | Vector where first derivatives (gradient) are stored. |
Implements IG::Num::ScalarFunctionBase.
override void IG::Num::ScalarFunctionExamples::Rosenbrock::ReferenceHessianPlain | ( | IVector | parameters, |
IMatrix | hessian | ||
) | [inline, virtual] |
Calculates the second derivative (Hessian) of this function at the specified parameters in the reference coordinate system.
parameters | Vector of parameters (in the REFERENCE system) where Hessian is evaluated. |
hessian | Matrix where second derivatives (Hessian) are stored. |
Implements IG::Num::ScalarFunctionBase.
override string IG::Num::ScalarFunctionExamples::Rosenbrock::Name [get] |
Returns a short name of the function.
Implements IG::Num::IScalarFunctionUntransformed.
override string IG::Num::ScalarFunctionExamples::Rosenbrock::Description [get] |
Returns a short description of the function.
Implements IG::Num::IScalarFunctionUntransformed.
override bool IG::Num::ScalarFunctionExamples::Rosenbrock::ValueDefined [get, set] |
Tells whether the first derivative is defined for this function (by implementation, not mathematically)
Implements IG::Num::IScalarFunctionUntransformed.
override bool IG::Num::ScalarFunctionExamples::Rosenbrock::GradientDefined [get, set] |
Tells whether the first derivative is defined for this function (by implementation, not mathematically)
Implements IG::Num::IScalarFunctionUntransformed.
override bool IG::Num::ScalarFunctionExamples::Rosenbrock::HessianDefined [get, set] |
Tells whether the second derivative is defined for this function (by implementation, not mathematically)
Implements IG::Num::IScalarFunctionUntransformed.