|
Open CASCADE Technology
6.7.1
|
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 (math_MultipleVarFunction &F, const math_Vector &StartingPoint, const math_Matrix &StartingDirections, const Standard_Real Tolerance, const Standard_Integer NbIterations=200, const Standard_Real ZEPS=1.0e-12) | |
| Computes Powell minimization on the function F given StartingPoint, and an initial matrix StartingDirection 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). The maximum number of iterations allowed is given by NbIterations. More... | |
| math_Powell (math_MultipleVarFunction &F, const Standard_Real Tolerance, const Standard_Integer NbIterations=200, const Standard_Real ZEPS=1.0e-12) | |
| is used in a sub-class to initialize correctly all the fields of this class. More... | |
| virtual void | Delete () |
| virtual | ~math_Powell () |
| void | Perform (math_MultipleVarFunction &F, const math_Vector &StartingPoint, const math_Matrix &StartingDirections) |
Use this method after a call to the initialization constructor <br> to compute the minimum of function F. | |
| virtual Standard_Boolean | IsSolutionReached (math_MultipleVarFunction &F) |
solution F = Fi is found when : <br> 2.0 * abs(Fi - Fi-1) <= Tolerance * (abs(Fi) + abs(Fi-1)) + ZEPS. | |
| 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. | |
| 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 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 | ( | math_MultipleVarFunction & | F, |
| const math_Vector & | StartingPoint, | ||
| const math_Matrix & | StartingDirections, | ||
| const Standard_Real | Tolerance, | ||
| const Standard_Integer | NbIterations = 200, |
||
| const Standard_Real | ZEPS = 1.0e-12 |
||
| ) |
Computes Powell minimization on the function F given
StartingPoint, and an initial matrix StartingDirection
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). The maximum
number of iterations allowed is given by NbIterations.
| math_Powell::math_Powell | ( | math_MultipleVarFunction & | F, |
| const Standard_Real | Tolerance, | ||
| const Standard_Integer | NbIterations = 200, |
||
| const Standard_Real | ZEPS = 1.0e-12 |
||
| ) |
is used in a sub-class to initialize correctly all the fields
of this class.
|
inlinevirtual |
|
virtual |
| 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 : <br>
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_Powell::Location | ( | ) | const |
returns the location vector of the minimum. <br>
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. <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_Powell::Minimum | ( | ) | const |
Returns the value of the minimum. <br>
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 <br>
computation of the minimum.
Exception NotDone is raised if the minimum was not found.
| void math_Powell::Perform | ( | math_MultipleVarFunction & | F, |
| const math_Vector & | StartingPoint, | ||
| const math_Matrix & | StartingDirections | ||
| ) |
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