Open CASCADE Technology  6.9.1
Public Member Functions | Protected Attributes
math_BissecNewton Class Reference

This class implements a combination of Newton-Raphson and bissection methods to find the root of the function between two bounds. Knowledge of the derivative is required. More...

#include <math_BissecNewton.hxx>

Public Member Functions

 math_BissecNewton (const Standard_Real theXTolerance)
 Constructor. More...
 
void Perform (math_FunctionWithDerivative &F, const Standard_Real Bound1, const Standard_Real Bound2, const Standard_Integer NbIterations=100)
 A combination of Newton-Raphson and bissection methods is done to find the root of the function F between the bounds Bound1 and Bound2 on the function F. The tolerance required on the root is given by TolX. The solution is found when: abs(Xi - Xi-1) <= TolX and F(Xi) * F(Xi-1) <= 0 The maximum number of iterations allowed is given by NbIterations. More...
 
virtual Standard_Boolean IsSolutionReached (math_FunctionWithDerivative &theFunction)
 This method is called at the end of each iteration to check if the solution has been found. It can be redefined in a sub-class to implement a specific test to stop the iterations. More...
 
Standard_Boolean IsDone () const
 Tests is the root has been successfully found. More...
 
Standard_Real Root () const
 returns the value of the root. Exception NotDone is raised if the minimum was not found. More...
 
Standard_Real Derivative () const
 returns the value of the derivative at the root. Exception NotDone is raised if the minimum was not found. More...
 
Standard_Real Value () const
 returns the value of the function at the root. 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 redifine the operator <<. More...
 
void Delete () const
 Destructor alias. More...
 
virtual ~math_BissecNewton ()
 

Protected Attributes

math_Status TheStatus
 
Standard_Real XTol
 
Standard_Real x
 
Standard_Real dx
 
Standard_Real f
 
Standard_Real df
 

Detailed Description

This class implements a combination of Newton-Raphson and bissection methods to find the root of the function between two bounds. Knowledge of the derivative is required.

Constructor & Destructor Documentation

math_BissecNewton::math_BissecNewton ( const Standard_Real  theXTolerance)

Constructor.

Parameters
theXTolerance- algorithm tolerance.
virtual math_BissecNewton::~math_BissecNewton ( )
virtual

Member Function Documentation

void math_BissecNewton::Delete ( ) const

Destructor alias.

Standard_Real math_BissecNewton::Derivative ( ) const

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

void math_BissecNewton::Dump ( Standard_OStream o) const

Prints on the stream o information on the current state of the object. Is used to redifine the operator <<.

Standard_Boolean math_BissecNewton::IsDone ( ) const

Tests is the root has been successfully found.

virtual Standard_Boolean math_BissecNewton::IsSolutionReached ( math_FunctionWithDerivative theFunction)
virtual

This method is called at the end of each iteration to check if the solution has been found. It can be redefined in a sub-class to implement a specific test to stop the iterations.

void math_BissecNewton::Perform ( math_FunctionWithDerivative F,
const Standard_Real  Bound1,
const Standard_Real  Bound2,
const Standard_Integer  NbIterations = 100 
)

A combination of Newton-Raphson and bissection methods is done to find the root of the function F between the bounds Bound1 and Bound2 on the function F. The tolerance required on the root is given by TolX. The solution is found when: abs(Xi - Xi-1) <= TolX and F(Xi) * F(Xi-1) <= 0 The maximum number of iterations allowed is given by NbIterations.

Standard_Real math_BissecNewton::Root ( ) const

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

Standard_Real math_BissecNewton::Value ( ) const

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

Field Documentation

Standard_Real math_BissecNewton::df
protected
Standard_Real math_BissecNewton::dx
protected
Standard_Real math_BissecNewton::f
protected
math_Status math_BissecNewton::TheStatus
protected
Standard_Real math_BissecNewton::x
protected
Standard_Real math_BissecNewton::XTol
protected

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