math_BrentMinimum Class Reference

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. More...

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. More...

virtual ~math_BrentMinimum ()
Destructor. More...

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;. More...

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. More...

Standard_Boolean IsDone () const
Returns true if the computations are successful, otherwise returns false. More...

Standard_Real Location () const
returns the location value of the minimum. Exception NotDone is raised if the minimum was not found. 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 on the stream o information on the current state of the object. Is used to redefine the operator <<. More...

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

Detailed Description

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() [1/2]

 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() [2/2]

 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.

◆ ~math_BrentMinimum()

 virtual math_BrentMinimum::~math_BrentMinimum ( )
virtual

Destructor.

◆ Dump()

 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 <<.

◆ IsDone()

 Standard_Boolean math_BrentMinimum::IsDone ( ) const

Returns true if the computations are successful, otherwise returns false.

◆ IsSolutionReached()

 virtual Standard_Boolean math_BrentMinimum::IsSolutionReached ( math_Function & theFunction )
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.

◆ Location()

 Standard_Real math_BrentMinimum::Location ( ) const

returns the location value of the minimum. Exception NotDone is raised if the minimum was not found.

◆ Minimum()

 Standard_Real math_BrentMinimum::Minimum ( ) const

returns the value of the minimum. Exception NotDone is raised if the minimum was not found.

◆ NbIterations()

 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.

◆ Perform()

 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;.

◆ a

 Standard_Real math_BrentMinimum::a
protected

◆ b

 Standard_Real math_BrentMinimum::b
protected

◆ EPSZ

 Standard_Real math_BrentMinimum::EPSZ
protected

◆ fv

 Standard_Real math_BrentMinimum::fv
protected

◆ fw

 Standard_Real math_BrentMinimum::fw
protected

◆ fx

 Standard_Real math_BrentMinimum::fx
protected

◆ x

 Standard_Real math_BrentMinimum::x
protected

◆ XTol

 Standard_Real math_BrentMinimum::XTol
protected

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