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

#include <math_BissecNewton.hxx>

Public Member Functions

 math_BissecNewton (math_FunctionWithDerivative &F, const Standard_Real Bound1, const Standard_Real Bound2, const Standard_Real TolX, 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.

virtual Standard_Boolean IsSolutionReached (math_FunctionWithDerivative &F)
 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.

Standard_Boolean IsDone () const
 Tests is the root has been successfully found.

Standard_Real Root () const
 returns the value of the root.
Exception NotDone is raised if the minimum was not found.

Standard_Real Derivative () const
 returns the value of the derivative at the root.
Exception NotDone is raised if the minimum was not found.

Standard_Real Value () const
 returns the value of the function at the root.
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 redifine the operator <<.

Protected Member Functions

void Perform (math_FunctionWithDerivative &F, const Standard_Real Bound1, const Standard_Real Bound2, const Standard_Integer NbIterations)

Protected Attributes

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

Constructor & Destructor Documentation

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

Member Function Documentation

Standard_Real math_BissecNewton::Derivative ( ) const
void math_BissecNewton::Dump ( Standard_OStream o) const
Standard_Boolean math_BissecNewton::IsDone ( ) const
virtual Standard_Boolean math_BissecNewton::IsSolutionReached ( math_FunctionWithDerivative F) [virtual]
void math_BissecNewton::Perform ( math_FunctionWithDerivative F,
const Standard_Real  Bound1,
const Standard_Real  Bound2,
const Standard_Integer  NbIterations 
) [protected]
Standard_Real math_BissecNewton::Root ( ) const
Standard_Real math_BissecNewton::Value ( ) const

Field Documentation


The documentation for this class was generated from the following file:
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines