Open CASCADE Technology  7.4.0
Public Member Functions | Protected Attributes

math_FRPR Class Reference

this class implements the Fletcher-Reeves-Polak_Ribiere minimization algorithm of a function of multiple variables. Knowledge of the function's gradient is required. More...

#include <math_FRPR.hxx>

Public Member Functions

 math_FRPR (const math_MultipleVarFunctionWithGradient &theFunction, const Standard_Real theTolerance, const Standard_Integer theNbIterations=200, const Standard_Real theZEPS=1.0e-12)
 Initializes the computation of the minimum of F. Warning: constructor does not perform computations. More...
 
virtual ~math_FRPR ()
 Destructor. More...
 
void Perform (math_MultipleVarFunctionWithGradient &theFunction, const math_Vector &theStartingPoint)
 The solution F = Fi is found when 2.0 * abs(Fi - Fi-1) <= Tolerance * (abs(Fi) + abs(Fi-1) + ZEPS). More...
 
virtual Standard_Boolean IsSolutionReached (math_MultipleVarFunctionWithGradient &theFunction)
 The solution F = Fi is found when: 2.0 * abs(Fi - Fi-1) <= Tolerance * (abs(Fi) + abs(Fi-1)) + ZEPS. The maximum number of iterations allowed is given by NbIterations. More...
 
Standard_Boolean IsDone () const
 Returns true if the computations are successful, otherwise returns false. More...
 
const math_VectorLocation () const
 returns the location vector of the minimum. Exception NotDone is raised if the minimum was not found. More...
 
void Location (math_Vector &Loc) const
 outputs the location vector of the minimum in Loc. Exception NotDone is raised if the minimum was not found. Exception DimensionError is raised if the range of Loc is not equal to the range of the StartingPoint. More...
 
Standard_Real Minimum () const
 returns the value of the minimum. Exception NotDone is raised if the minimum was not found. More...
 
const math_VectorGradient () const
 returns the gradient vector at the minimum. Exception NotDone is raised if the minimum was not found. More...
 
void Gradient (math_Vector &Grad) const
 outputs the gradient vector at the minimum in Grad. Exception NotDone is raised if the minimum was not found. Exception DimensionError is raised if the range of Grad is not equal to the range of the StartingPoint. More...
 
Standard_Integer NbIterations () const
 returns the number of iterations really done during the computation of the minimum. Exception NotDone is raised if the minimum was not found. More...
 
void Dump (Standard_OStream &o) const
 Prints on the stream o information on the current state of the object. Is used to redefine the operator <<. More...
 

Protected Attributes

math_Vector TheLocation
 
math_Vector TheGradient
 
Standard_Real TheMinimum
 
Standard_Real PreviousMinimum
 
Standard_Real XTol
 
Standard_Real EPSZ
 

Detailed Description

this class implements the Fletcher-Reeves-Polak_Ribiere minimization algorithm of a function of multiple variables. Knowledge of the function's gradient is required.

Constructor & Destructor Documentation

◆ math_FRPR()

math_FRPR::math_FRPR ( const math_MultipleVarFunctionWithGradient theFunction,
const Standard_Real  theTolerance,
const Standard_Integer  theNbIterations = 200,
const Standard_Real  theZEPS = 1.0e-12 
)

Initializes the computation of the minimum of F. Warning: constructor does not perform computations.

◆ ~math_FRPR()

virtual math_FRPR::~math_FRPR ( )
virtual

Destructor.

Member Function Documentation

◆ Dump()

void math_FRPR::Dump ( Standard_OStream o) const

Prints on the stream o information on the current state of the object. Is used to redefine the operator <<.

◆ Gradient() [1/2]

const math_Vector& math_FRPR::Gradient ( ) const

returns the gradient vector at the minimum. Exception NotDone is raised if the minimum was not found.

◆ Gradient() [2/2]

void math_FRPR::Gradient ( math_Vector Grad) const

outputs the gradient vector at the minimum in Grad. Exception NotDone is raised if the minimum was not found. Exception DimensionError is raised if the range of Grad is not equal to the range of the StartingPoint.

◆ IsDone()

Standard_Boolean math_FRPR::IsDone ( ) const

Returns true if the computations are successful, otherwise returns false.

◆ IsSolutionReached()

virtual Standard_Boolean math_FRPR::IsSolutionReached ( math_MultipleVarFunctionWithGradient theFunction)
virtual

The solution F = Fi is found when: 2.0 * abs(Fi - Fi-1) <= Tolerance * (abs(Fi) + abs(Fi-1)) + ZEPS. The maximum number of iterations allowed is given by NbIterations.

◆ Location() [1/2]

const math_Vector& math_FRPR::Location ( ) const

returns the location vector of the minimum. Exception NotDone is raised if the minimum was not found.

◆ Location() [2/2]

void math_FRPR::Location ( math_Vector Loc) const

outputs the location vector of the minimum in Loc. Exception NotDone is raised if the minimum was not found. Exception DimensionError is raised if the range of Loc is not equal to the range of the StartingPoint.

◆ Minimum()

Standard_Real math_FRPR::Minimum ( ) const

returns the value of the minimum. Exception NotDone is raised if the minimum was not found.

◆ NbIterations()

Standard_Integer math_FRPR::NbIterations ( ) const

returns the number of iterations really done during the computation of the minimum. Exception NotDone is raised if the minimum was not found.

◆ Perform()

void math_FRPR::Perform ( math_MultipleVarFunctionWithGradient theFunction,
const math_Vector theStartingPoint 
)

The solution F = Fi is found when 2.0 * abs(Fi - Fi-1) <= Tolerance * (abs(Fi) + abs(Fi-1) + ZEPS).

Field Documentation

◆ EPSZ

Standard_Real math_FRPR::EPSZ
protected

◆ PreviousMinimum

Standard_Real math_FRPR::PreviousMinimum
protected

◆ TheGradient

math_Vector math_FRPR::TheGradient
protected

◆ TheLocation

math_Vector math_FRPR::TheLocation
protected

◆ TheMinimum

Standard_Real math_FRPR::TheMinimum
protected

◆ XTol

Standard_Real math_FRPR::XTol
protected

The documentation for this class was generated from the following file: