OCC Main Page | FoundationClasses | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals

FoundationClasses
TKMath
math


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

#include <math_BrentMinimum.hxx>


Public Member Functions

void * operator new (size_t, void *anAddress)
void * operator new (size_t size)
void operator delete (void *anAddress)
Standard_EXPORT 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.
.
Standard_EXPORT 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.
.
Standard_EXPORT math_BrentMinimum (math_Function &F, const Standard_Real Ax, const Standard_Real Bx, const Standard_Real Cx, const Standard_Real TolX, const Standard_Integer NbIterations=100, const Standard_Real ZEPS=1.0e-12)
 Given a bracketing triplet of abscissae Ax, Bx, Cx
(such as Bx is between Ax and Cx, F(Bx) is
less than both F(Bx) and F(Cx)) the Brent minimization is done
on the function F.
The tolerance required on F is given by Tolerance.
The solution is found when :
abs(Xi - Xi-1) <= TolX * abs(Xi) + ZEPS;
The maximum number of iterations allowed is given by NbIterations.
.
Standard_EXPORT 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))
Warning
The initialization constructors must have been called
before the call to the Perform method.
.
virtual Standard_EXPORT Standard_Boolean IsSolutionReached (math_Function &F)
 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.

Standard_EXPORT 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

Private Attributes

Standard_Boolean Done
Standard_Integer iter
Standard_Integer Itermax
Standard_Boolean myF


Constructor & Destructor Documentation

Standard_EXPORT math_BrentMinimum::math_BrentMinimum const Standard_Real  TolX,
const Standard_Integer  NbIterations = 100,
const Standard_Real  ZEPS = 1.0e-12
 

Standard_EXPORT math_BrentMinimum::math_BrentMinimum const Standard_Real  TolX,
const Standard_Real  Fbx,
const Standard_Integer  NbIterations = 100,
const Standard_Real  ZEPS = 1.0e-12
 

Standard_EXPORT math_BrentMinimum::math_BrentMinimum math_Function F,
const Standard_Real  Ax,
const Standard_Real  Bx,
const Standard_Real  Cx,
const Standard_Real  TolX,
const Standard_Integer  NbIterations = 100,
const Standard_Real  ZEPS = 1.0e-12
 


Member Function Documentation

Standard_EXPORT void math_BrentMinimum::Dump Standard_OStream o  )  const
 

Standard_Boolean math_BrentMinimum::IsDone  )  const [inline]
 

virtual Standard_EXPORT Standard_Boolean math_BrentMinimum::IsSolutionReached math_Function F  )  [virtual]
 

Standard_Real math_BrentMinimum::Location  )  const [inline]
 

Standard_Real math_BrentMinimum::Minimum  )  const [inline]
 

Standard_Integer math_BrentMinimum::NbIterations  )  const [inline]
 

void math_BrentMinimum::operator delete void *  anAddress  )  [inline]
 

void* math_BrentMinimum::operator new size_t  size  )  [inline]
 

void* math_BrentMinimum::operator new size_t  ,
void *  anAddress
[inline]
 

Standard_EXPORT void math_BrentMinimum::Perform math_Function F,
const Standard_Real  Ax,
const Standard_Real  Bx,
const Standard_Real  Cx
 


Field Documentation

Standard_Real math_BrentMinimum::a [protected]
 

Standard_Real math_BrentMinimum::b [protected]
 

Standard_Boolean math_BrentMinimum::Done [private]
 

Standard_Real math_BrentMinimum::EPSZ [protected]
 

Standard_Real math_BrentMinimum::fv [protected]
 

Standard_Real math_BrentMinimum::fw [protected]
 

Standard_Real math_BrentMinimum::fx [protected]
 

Standard_Integer math_BrentMinimum::iter [private]
 

Standard_Integer math_BrentMinimum::Itermax [private]
 

Standard_Boolean math_BrentMinimum::myF [private]
 

Standard_Real math_BrentMinimum::x [protected]
 

Standard_Real math_BrentMinimum::XTol [protected]
 


The documentation for this class was generated from the following files:
Generated on Mon Aug 25 13:12:45 2008 for OpenCASCADE by  doxygen 1.4.1