|
Open CASCADE Technology
6.7.1
|
This class implements the Broyden-Fletcher-Goldfarb-Shanno variant of
Davidson-Fletcher-Powell minimization algorithm of a function of
multiple variables.Knowledge of the function's gradient is required.
More...
#include <math_BFGS.hxx>

Public Member Functions | |
| math_BFGS (math_MultipleVarFunctionWithGradient &F, const math_Vector &StartingPoint, const Standard_Real Tolerance=1.0e-8, const Standard_Integer NbIterations=200, const Standard_Real ZEPS=1.0e-12) | |
| Given the starting point StartingPoint, the Broyden-Fletcher-Goldfarb-Shanno variant of Davidson-Fletcher-Powell minimization is done on the function F. The tolerance required on F is given by Tolerance. 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_BFGS (math_MultipleVarFunctionWithGradient &F, const Standard_Real Tolerance=1.0e-8, const Standard_Integer NbIterations=200, const Standard_Real ZEPS=1.0e-12) | |
Initializes the computation of the minimum of F. <br> Warning | |
| virtual void | Delete () |
| virtual | ~math_BFGS () |
| void | Perform (math_MultipleVarFunctionWithGradient &F, const math_Vector &StartingPoint) |
| Is used internally by the constructors. More... | |
| virtual Standard_Boolean | IsSolutionReached (math_MultipleVarFunctionWithGradient &F) const |
| This method is called at the end of each iteration to check if the solution is found. It can be redefined in a sub-class to implement a specific test to stop the iterations. 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 |
Returns the value of 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 in the <br>
calculation of the minimum. <br>
The exception NotDone is raised if the minimum was not found. | |
| 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... | |
This class implements the Broyden-Fletcher-Goldfarb-Shanno variant of
Davidson-Fletcher-Powell minimization algorithm of a function of
multiple variables.Knowledge of the function's gradient is required.
| math_BFGS::math_BFGS | ( | math_MultipleVarFunctionWithGradient & | F, |
| const math_Vector & | StartingPoint, | ||
| const Standard_Real | Tolerance = 1.0e-8, |
||
| const Standard_Integer | NbIterations = 200, |
||
| const Standard_Real | ZEPS = 1.0e-12 |
||
| ) |
Given the starting point StartingPoint,
the Broyden-Fletcher-Goldfarb-Shanno variant of Davidson-Fletcher-Powell
minimization is done on the function F.
The tolerance required on F is given by Tolerance.
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_BFGS::math_BFGS | ( | math_MultipleVarFunctionWithGradient & | F, |
| const Standard_Real | Tolerance = 1.0e-8, |
||
| const Standard_Integer | NbIterations = 200, |
||
| const Standard_Real | ZEPS = 1.0e-12 |
||
| ) |
Initializes the computation of the minimum of F. <br>
Warning
A call to the Perform method must be made after this
initialization to effectively compute the minimum of the
function F.
|
inlinevirtual |
|
virtual |
| void math_BFGS::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_BFGS::Gradient | ( | ) | const |
Returns the gradient vector at the minimum. <br>
Exception NotDone is raised if the minimum was not found.
| void math_BFGS::Gradient | ( | math_Vector & | Grad | ) | const |
Returns the value of 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_BFGS::IsDone | ( | ) | const |
Returns true if the computations are successful, otherwise returns false.
|
virtual |
This method is called at the end of each iteration to check if the
solution is found.
It can be redefined in a sub-class to implement a specific test to
stop the iterations.
Reimplemented in GeomInt_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfWLApprox, GeomInt_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfWLApprox, AppDef_Gradient_BFGSOfMyGradientbisOfBSplineCompute, AppDef_Gradient_BFGSOfMyGradientOfCompute, AppDef_Gradient_BFGSOfTheGradient, BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox, BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox, GeomInt_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfWLApprox, AppDef_BSpGradient_BFGSOfMyBSplGradientOfBSplineCompute, and BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox.
| const math_Vector& math_BFGS::Location | ( | ) | const |
returns the location vector of the minimum. <br>
Exception NotDone is raised if the minimum was not found.
| void math_BFGS::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_BFGS::Minimum | ( | ) | const |
returns the value of the minimum. <br>
Exception NotDone is raised if the minimum was not found.
| Standard_Integer math_BFGS::NbIterations | ( | ) | const |
Returns the number of iterations really done in the <br>
calculation of the minimum. <br>
The exception NotDone is raised if the minimum was not found.
| void math_BFGS::Perform | ( | math_MultipleVarFunctionWithGradient & | F, |
| const math_Vector & | StartingPoint | ||
| ) |
Is used internally by the constructors.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
1.8.5