Open CASCADE Technology 7.8.0
Public Member Functions | Protected Attributes
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.
 
 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
 

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.

Constructor & Destructor Documentation

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

Member Function Documentation

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

Field Documentation

◆ 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: