Open CASCADE Technology 7.8.0
|
This class implements the Brent's method to find the minimum of a function of a single variable. No knowledge of the derivative is required. More...
#include <math_BrentMinimum.hxx>
Public Member Functions | |
math_BrentMinimum (const Standard_Real TolX, const Standard_Integer NbIterations=100, const Standard_Real ZEPS=1.0e-12) | |
This constructor should be used in a sub-class to initialize correctly all the fields of this class. | |
math_BrentMinimum (const Standard_Real TolX, const Standard_Real Fbx, const Standard_Integer NbIterations=100, const Standard_Real ZEPS=1.0e-12) | |
This constructor should be used in a sub-class to initialize correctly all the fields of this class. It has to be used if F(Bx) is known. | |
virtual | ~math_BrentMinimum () |
Destructor. | |
void | Perform (math_Function &F, const Standard_Real Ax, const Standard_Real Bx, const Standard_Real Cx) |
Brent minimization is performed on function F from a given bracketing triplet of abscissas Ax, Bx, Cx (such that Bx is between Ax and Cx, F(Bx) is less than both F(Bx) and F(Cx)) The solution is found when: abs(Xi - Xi-1) <= TolX * abs(Xi) + ZEPS;. | |
virtual Standard_Boolean | IsSolutionReached (math_Function &theFunction) |
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. | |
Standard_Boolean | IsDone () const |
Returns true if the computations are successful, otherwise returns false. | |
Standard_Real | Location () const |
returns the location value of the minimum. Exception NotDone is raised if the minimum was not found. | |
Standard_Real | Minimum () const |
returns the value of the minimum. Exception NotDone is raised if the minimum was not found. | |
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. | |
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 <<. | |
Protected Attributes | |
Standard_Real | a |
Standard_Real | b |
Standard_Real | x |
Standard_Real | fx |
Standard_Real | fv |
Standard_Real | fw |
Standard_Real | XTol |
Standard_Real | EPSZ |
This class implements the Brent's method to find the minimum of a function of a single variable. No knowledge of the derivative is required.
math_BrentMinimum::math_BrentMinimum | ( | const Standard_Real | TolX, |
const Standard_Integer | NbIterations = 100 , |
||
const Standard_Real | ZEPS = 1.0e-12 |
||
) |
This constructor should be used in a sub-class to initialize correctly all the fields of this class.
math_BrentMinimum::math_BrentMinimum | ( | const Standard_Real | TolX, |
const Standard_Real | Fbx, | ||
const Standard_Integer | NbIterations = 100 , |
||
const Standard_Real | ZEPS = 1.0e-12 |
||
) |
This constructor should be used in a sub-class to initialize correctly all the fields of this class. It has to be used if F(Bx) is known.
|
virtual |
Destructor.
void math_BrentMinimum::Dump | ( | Standard_OStream & | o | ) | const |
Prints on the stream o information on the current state of the object. Is used to redefine the operator <<.
Standard_Boolean math_BrentMinimum::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.
Standard_Real math_BrentMinimum::Location | ( | ) | const |
returns the location value of the minimum. Exception NotDone is raised if the minimum was not found.
Standard_Real math_BrentMinimum::Minimum | ( | ) | const |
returns the value of the minimum. Exception NotDone is raised if the minimum was not found.
Standard_Integer math_BrentMinimum::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_BrentMinimum::Perform | ( | math_Function & | F, |
const Standard_Real | Ax, | ||
const Standard_Real | Bx, | ||
const Standard_Real | Cx | ||
) |
Brent minimization is performed on function F from a given bracketing triplet of abscissas Ax, Bx, Cx (such that Bx is between Ax and Cx, F(Bx) is less than both F(Bx) and F(Cx)) The solution is found when: abs(Xi - Xi-1) <= TolX * abs(Xi) + ZEPS;.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |