Open CASCADE Technology: math_Powell Class Reference

Open CASCADE Technology 6.8.0

- Main Page
- Related Pages
- Namespaces
- Data Structures
- Files

- Data Structures
- Data Structure Index
- Class Hierarchy
- Data Fields

Public Member Functions | Protected Attributes
math_Powell Class Reference

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 to compute the minimum of function F. Warning The initialization constructor must have been called before the Perform method is called. More...
virtual Standard_Boolean | IsSolutionReached (math_MultipleVarFunction &F)
| 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. 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...
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 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

## Detailed Description

This class implements the Powell method to find the minimum of function of multiple variables (the gradient does not have to be known).

## Constructor & Destructor Documentation

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.

virtual math_Powell::~math_Powell | ( |  | ) |
| inlinevirtual

## Member Function Documentation

virtual void math_Powell::Delete | ( |  | ) |
| 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 Standard_Boolean math_Powell::IsSolutionReached | ( | math_MultipleVarFunction & | F | ) |
| 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.

Standard_Real math_Powell::Minimum | ( |  | ) | const

Returns the value of the minimum. 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 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 to compute the minimum of function F. Warning The initialization constructor must have been called before the Perform method is called.

## Field Documentation

Standard_Real math_Powell::EPSZ
| protected

Standard_Real math_Powell::PreviousMinimum
| protected

math_Vector math_Powell::TheLocation
| protected

Standard_Real math_Powell::TheLocationError
| protected

Standard_Real math_Powell::TheMinimum
| protected

Standard_Real math_Powell::XTol
| protected

The documentation for this class was generated from the following file:

- math_Powell.hxx