Open CASCADE Technology Reference Manual 8.0.0
Loading...
Searching...
No Matches
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 double theXTolerance)
 Constructor.
 
void Perform (math_FunctionWithDerivative &F, const double Bound1, const double Bound2, const int 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 bool 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.
 
bool IsDone () const
 Tests is the root has been successfully found.
 
double Root () const
 returns the value of the root. Exception NotDone is raised if the minimum was not found.
 
double Derivative () const
 returns the value of the derivative at the root. Exception NotDone is raised if the minimum was not found.
 
double 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 redefine the operator <<.
 
virtual ~math_BissecNewton ()
 Destructor.
 

Protected Attributes

math_Status TheStatus
 
double XTol
 
double x
 
double dx
 
double f
 
double 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::math_BissecNewton ( const double theXTolerance)

Constructor.

Parameters
theXTolerance- algorithm tolerance.

◆ ~math_BissecNewton()

virtual math_BissecNewton::~math_BissecNewton ( )
virtual

Destructor.

Member Function Documentation

◆ Derivative()

double math_BissecNewton::Derivative ( ) const

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

◆ Dump()

void math_BissecNewton::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()

bool math_BissecNewton::IsDone ( ) const

Tests is the root has been successfully found.

◆ IsSolutionReached()

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

◆ Perform()

void math_BissecNewton::Perform ( math_FunctionWithDerivative & F,
const double Bound1,
const double Bound2,
const int 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.

◆ Root()

double math_BissecNewton::Root ( ) const

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

◆ Value()

double 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

◆ df

double math_BissecNewton::df
protected

◆ dx

double math_BissecNewton::dx
protected

◆ f

double math_BissecNewton::f
protected

◆ TheStatus

math_Status math_BissecNewton::TheStatus
protected

◆ x

double math_BissecNewton::x
protected

◆ XTol

double math_BissecNewton::XTol
protected

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