![]() |
Open CASCADE Technology Reference Manual 8.0.0
|
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 double theTolerance, const int theNbIterations=200, const double theZEPS=1.0e-12) | |
| Constructor. Initialize new entity. | |
| virtual | ~math_Powell () |
| Destructor. | |
| 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 - Fi-1) =< Tolerance * (abs(Fi) + abs(Fi-1) + ZEPS). | |
| virtual bool | IsSolutionReached (math_MultipleVarFunction &theFunction) |
| 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. | |
| bool | IsDone () const |
| Returns true if the computations are successful, otherwise returns false. | |
| const math_Vector & | Location () const |
| returns the location vector of the minimum. 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. 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. | |
| double | Minimum () const |
| Returns the value of the minimum. Exception NotDone is raised if the minimum was not found. | |
| int | 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 | Dump (Standard_OStream &o) const |
| Prints information on the current state of the object. Is used to redefine the operator <<. | |
Protected Attributes | |
| math_Vector | TheLocation |
| double | TheMinimum |
| double | TheLocationError |
| double | PreviousMinimum |
| double | XTol |
| double | 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 double | theTolerance, | ||
| const int | theNbIterations = 200, | ||
| const double | theZEPS = 1.0e-12 ) |
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 <<.
| bool 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 - 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. 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.
| double math_Powell::Minimum | ( | ) | const |
Returns the value of the minimum. Exception NotDone is raised if the minimum was not found.
| int 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 - Fi-1) =< Tolerance * (abs(Fi) + abs(Fi-1) + ZEPS).
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |