Open CASCADE Technology
7.7.0.dev

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 Standard_Real theTolerance, const Standard_Integer theNbIterations=200, const Standard_Real theZEPS=1.0e12)  
Constructor. Initialize new entity. More...  
virtual  ~math_Powell () 
Destructor. More...  
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  Fi1) =< Tolerance * (abs(Fi) + abs(Fi1) + ZEPS). More...  
virtual Standard_Boolean  IsSolutionReached (math_MultipleVarFunction &theFunction) 
Solution F = Fi is found when: 2.0 * abs(Fi  Fi1) <= Tolerance * (abs(Fi) + abs(Fi1)) + 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_Vector &  Location () 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...  
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 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 
This class implements the Powell method to find the minimum of function of multiple variables (the gradient does not have to be known).
math_Powell::math_Powell  (  const math_MultipleVarFunction &  theFunction, 
const Standard_Real  theTolerance,  
const Standard_Integer  theNbIterations = 200 , 

const Standard_Real  theZEPS = 1.0e12 

) 
Constructor. Initialize new entity.

virtual 
Destructor.
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 
Solution F = Fi is found when: 2.0 * abs(Fi  Fi1) <= Tolerance * (abs(Fi) + abs(Fi1)) + 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. 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. 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. 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 computation of the minimum. Exception NotDone is raised if the minimum was not found.
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  Fi1) =< Tolerance * (abs(Fi) + abs(Fi1) + ZEPS).

protected 

protected 

protected 

protected 

protected 

protected 