|
Open CASCADE Technology
6.7.1
|
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 (math_MultipleVarFunctionWithGradient &F, const math_Vector &StartingPoint, const Standard_Real Tolerance, const Standard_Integer NbIterations=200, const Standard_Real ZEPS=1.0e-12) | |
Computes FRPR minimization function F from input vector <br> StartingPoint. The solution F = Fi is found when 2.0 * | |
| math_FRPR (math_MultipleVarFunctionWithGradient &F, const Standard_Real Tolerance, const Standard_Integer NbIterations=200, const Standard_Real ZEPS=1.0e-12) | |
Purpose <br> Initializes the computation of the minimum of F. | |
| virtual void | Delete () |
| virtual | ~math_FRPR () |
| void | Perform (math_MultipleVarFunctionWithGradient &F, const math_Vector &StartingPoint) |
Use this method after a call to the initialization constructor <br> to compute the minimum of function F. | |
| virtual Standard_Boolean | IsSolutionReached (math_MultipleVarFunctionWithGradient &F) |
| 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_Vector & | Location () const |
returns the location vector of the minimum. <br> 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. <br> Exception NotDone is raised if the minimum was not found. | |
| Standard_Real | Minimum () const |
returns the value of the minimum. <br> Exception NotDone is raised if the minimum was not found. | |
| const math_Vector & | Gradient () const |
returns the gradient vector at the minimum. <br> Exception NotDone is raised if the minimum was not found. | |
| void | Gradient (math_Vector &Grad) const |
outputs the gradient vector at the minimum in Grad. <br> Exception NotDone is raised if the minimum was not found. | |
| Standard_Integer | NbIterations () const |
returns the number of iterations really done during the <br> computation of the minimum. | |
| 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 Fletcher-Reeves-Polak_Ribiere minimization
algorithm of a function of multiple variables.
Knowledge of the function's gradient is required.
| math_FRPR::math_FRPR | ( | math_MultipleVarFunctionWithGradient & | F, |
| const math_Vector & | StartingPoint, | ||
| const Standard_Real | Tolerance, | ||
| const Standard_Integer | NbIterations = 200, |
||
| const Standard_Real | ZEPS = 1.0e-12 |
||
| ) |
Computes FRPR minimization function F from input vector <br>
StartingPoint. 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_FRPR::math_FRPR | ( | math_MultipleVarFunctionWithGradient & | F, |
| const Standard_Real | Tolerance, | ||
| const Standard_Integer | NbIterations = 200, |
||
| const Standard_Real | ZEPS = 1.0e-12 |
||
| ) |
Purpose <br>
Initializes the computation of the minimum of F.
Warning
A call to the Perform method must be made after this
initialization to compute the minimum of the function.
|
inlinevirtual |
|
virtual |
| 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. <br>
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. <br>
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 - Fi-1) <= Tolerance * (abs(Fi) + abs(Fi-1)) + 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. <br>
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. <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_FRPR::Minimum | ( | ) | const |
returns the value of the minimum. <br>
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 <br>
computation of the minimum.
Exception NotDone is raised if the minimum was not found.
| void math_FRPR::Perform | ( | math_MultipleVarFunctionWithGradient & | F, |
| const math_Vector & | StartingPoint | ||
| ) |
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
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
1.8.5