Open CASCADE Technology Reference Manual 8.0.0
Loading...
Searching...
No Matches
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 (const math_MultipleVarFunction &theFunction, const double theTolerance, const int theNbIterations=200, const double theZEPS=1.0e-12)
 Constructor. Initialize new entity.
 
virtual ~math_Powell ()
 Destructor.
 
void Perform (math_MultipleVarFunction &theFunction, const math_Vector &theStartingPoint, const math_Matrix &theStartingDirections)
 Computes Powell minimization on the function F given theStartingPoint, and an initial matrix theStartingDirection 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).
 
virtual bool IsSolutionReached (math_MultipleVarFunction &theFunction)
 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.
 
bool IsDone () const
 Returns true if the computations are successful, otherwise returns false.
 
const math_VectorLocation () const
 returns the location vector of the minimum. Exception NotDone is raised if the minimum was not found.
 
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.
 
double Minimum () const
 Returns the value of the minimum. Exception NotDone is raised if the minimum was not found.
 
int 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.
 
void Dump (Standard_OStream &o) const
 Prints information on the current state of the object. Is used to redefine the operator <<.
 

Protected Attributes

math_Vector TheLocation
 
double TheMinimum
 
double TheLocationError
 
double PreviousMinimum
 
double XTol
 
double 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_Powell ( const math_MultipleVarFunction & theFunction,
const double theTolerance,
const int theNbIterations = 200,
const double theZEPS = 1.0e-12 )

Constructor. Initialize new entity.

◆ ~math_Powell()

virtual math_Powell::~math_Powell ( )
virtual

Destructor.

Member Function Documentation

◆ Dump()

void math_Powell::Dump ( Standard_OStream & o) const

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

◆ IsDone()

bool math_Powell::IsDone ( ) const

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

◆ IsSolutionReached()

virtual bool math_Powell::IsSolutionReached ( math_MultipleVarFunction & theFunction)
virtual

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_Powell::Location ( ) const

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

◆ Location() [2/2]

void math_Powell::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()

double math_Powell::Minimum ( ) const

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

◆ NbIterations()

int math_Powell::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_Powell::Perform ( math_MultipleVarFunction & theFunction,
const math_Vector & theStartingPoint,
const math_Matrix & theStartingDirections )

Computes Powell minimization on the function F given theStartingPoint, and an initial matrix theStartingDirection 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).

Field Documentation

◆ EPSZ

double math_Powell::EPSZ
protected

◆ PreviousMinimum

double math_Powell::PreviousMinimum
protected

◆ TheLocation

math_Vector math_Powell::TheLocation
protected

◆ TheLocationError

double math_Powell::TheLocationError
protected

◆ TheMinimum

double math_Powell::TheMinimum
protected

◆ XTol

double math_Powell::XTol
protected

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