Open CASCADE Technology
7.0.0

this class implements the FletcherReevesPolak_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.0e12)  
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  Fi1) <= Tolerance * (abs(Fi) + abs(Fi1) + ZEPS). More...  
virtual Standard_Boolean  IsSolutionReached (math_MultipleVarFunctionWithGradient &theFunction) 
The 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...  
const math_Vector &  Gradient () 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 
this class implements the FletcherReevesPolak_Ribiere minimization algorithm of a function of multiple variables. Knowledge of the function's gradient is required.
math_FRPR::math_FRPR  (  const math_MultipleVarFunctionWithGradient &  theFunction, 
const Standard_Real  theTolerance,  
const Standard_Integer  theNbIterations = 200 , 

const Standard_Real  theZEPS = 1.0e12 

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

virtual 
Destructor.
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 <<.
const math_Vector& math_FRPR::Gradient  (  )  const 
returns the gradient vector at the minimum. Exception NotDone is raised if the minimum was not found.
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.
Standard_Boolean math_FRPR::IsDone  (  )  const 
Returns true if the computations are successful, otherwise returns false.

virtual 
The 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_FRPR::Location  (  )  const 
returns the location vector of the minimum. Exception NotDone is raised if the minimum was not found.
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.
Standard_Real math_FRPR::Minimum  (  )  const 
returns the value of the minimum. Exception NotDone is raised if the minimum was not found.
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.
void math_FRPR::Perform  (  math_MultipleVarFunctionWithGradient &  theFunction, 
const math_Vector &  theStartingPoint  
) 
The solution F = Fi is found when 2.0 * abs(Fi  Fi1) <= Tolerance * (abs(Fi) + abs(Fi1) + ZEPS).

protected 

protected 

protected 

protected 

protected 

protected 