Open CASCADE Technology  6.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Protected Attributes
math_Powell Class Reference

This class implements the Powell method to find the minimum of
function of multiple variables (the gradient does not have to be known).
More...

#include <math_Powell.hxx>

Public Member Functions

 math_Powell (math_MultipleVarFunction &F, const math_Vector &StartingPoint, const math_Matrix &StartingDirections, const Standard_Real Tolerance, const Standard_Integer NbIterations=200, const Standard_Real ZEPS=1.0e-12)
 Computes Powell minimization on the function F given
StartingPoint, and an initial matrix StartingDirection
whose columns contain the initial set of directions. 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...
 
 math_Powell (math_MultipleVarFunction &F, const Standard_Real Tolerance, const Standard_Integer NbIterations=200, const Standard_Real ZEPS=1.0e-12)
 is used in a sub-class to initialize correctly all the fields
of this class.
More...
 
virtual void Delete ()
 
virtual ~math_Powell ()
 
void Perform (math_MultipleVarFunction &F, const math_Vector &StartingPoint, const math_Matrix &StartingDirections)
 
 Use this method after a call to the initialization constructor <br>

to compute the minimum of function F.
Warning
The initialization constructor must have been called before
the Perform method is called.
More...

 
virtual Standard_Boolean IsSolutionReached (math_MultipleVarFunction &F)
 
solution F = Fi is found when : <br>

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. <br>

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. <br>

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. <br>

Exception NotDone is raised if the minimum was not found.
More...

 
Standard_Integer NbIterations () const
 
 Returns the number of iterations really done during the <br>

computation of the minimum.
Exception NotDone is raised if the minimum was not found.
More...

 
void Dump (Standard_OStream &o) const
 Prints information on the current state of the object.
Is used to redefine the operator <<.
More...
 

Protected Attributes

math_Vector TheLocation
 
Standard_Real TheMinimum
 
Standard_Real TheLocationError
 
Standard_Real PreviousMinimum
 
Standard_Real XTol
 
Standard_Real EPSZ
 

Detailed Description

This class implements the Powell method to find the minimum of
function of multiple variables (the gradient does not have to be known).

Constructor & Destructor Documentation

math_Powell::math_Powell ( math_MultipleVarFunction F,
const math_Vector StartingPoint,
const math_Matrix StartingDirections,
const Standard_Real  Tolerance,
const Standard_Integer  NbIterations = 200,
const Standard_Real  ZEPS = 1.0e-12 
)

Computes Powell minimization on the function F given
StartingPoint, and an initial matrix StartingDirection
whose columns contain the initial set of directions. 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.

math_Powell::math_Powell ( math_MultipleVarFunction F,
const Standard_Real  Tolerance,
const Standard_Integer  NbIterations = 200,
const Standard_Real  ZEPS = 1.0e-12 
)

is used in a sub-class to initialize correctly all the fields
of this class.

virtual math_Powell::~math_Powell ( )
inlinevirtual

Member Function Documentation

virtual void math_Powell::Delete ( )
virtual
void math_Powell::Dump ( Standard_OStream o) const

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

Standard_Boolean math_Powell::IsDone ( ) const

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

virtual Standard_Boolean math_Powell::IsSolutionReached ( math_MultipleVarFunction F)
virtual

solution F = Fi is found when : <br>

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

const math_Vector& math_Powell::Location ( ) const

 returns the location vector of the minimum. <br>

Exception NotDone is raised if the minimum was not found.

void math_Powell::Location ( math_Vector Loc) const

 outputs the location vector of the minimum in Loc. <br>

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.

Standard_Real math_Powell::Minimum ( ) const

 Returns the value of the minimum. <br>

Exception NotDone is raised if the minimum was not found.

Standard_Integer math_Powell::NbIterations ( ) const

 Returns the number of iterations really done during the <br>

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

void math_Powell::Perform ( math_MultipleVarFunction F,
const math_Vector StartingPoint,
const math_Matrix StartingDirections 
)

 Use this method after a call to the initialization constructor <br>

to compute the minimum of function F.
Warning
The initialization constructor must have been called before
the Perform method is called.

Field Documentation

Standard_Real math_Powell::EPSZ
protected
Standard_Real math_Powell::PreviousMinimum
protected
math_Vector math_Powell::TheLocation
protected
Standard_Real math_Powell::TheLocationError
protected
Standard_Real math_Powell::TheMinimum
protected
Standard_Real math_Powell::XTol
protected

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