IGLib 1.4
The IGLib base library for development of numerical, technical and business applications.

IG::Num::ScalarFunctionExamples::Rosenbrock Class Reference

RosenBrock function. f(x,y) = (1-x)^2 + 100 * (y-x^2)^2. More...

Inheritance diagram for IG::Num::ScalarFunctionExamples::Rosenbrock:
Collaboration diagram for IG::Num::ScalarFunctionExamples::Rosenbrock:

List of all members.

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)

Detailed Description

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;


Constructor & Destructor Documentation

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.

Parameters:
transfAffine transformation that is applied on parameters. If null then the fuction is identical to the untransformed Rosenbrock function.

Member Function Documentation

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:
parametersVector 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:
parametersVector of parameters (in the REFERENCE system) where derivatives are evaluated.
gradientVector 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:
parametersVector of parameters (in the REFERENCE system) where Hessian is evaluated.
hessianMatrix where second derivatives (Hessian) are stored.

Implements IG::Num::ScalarFunctionBase.


Property Documentation

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.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Enumerations Properties Events