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

virtual ~math_BissecNewton ()
Destructor. More...

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

## ◆ math_BissecNewton()

 math_BissecNewton::math_BissecNewton ( const Standard_Real theXTolerance )

Constructor.

Parameters
 theXTolerance - algorithm tolerance.

## ◆ ~math_BissecNewton()

 virtual math_BissecNewton::~math_BissecNewton ( )
virtual

Destructor.

## ◆ Derivative()

 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.

## ◆ 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 redifine the operator <<.

## ◆ IsDone()

 Standard_Boolean math_BissecNewton::IsDone ( ) const

Tests is the root has been successfully found.

## ◆ IsSolutionReached()

 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.

## ◆ Perform()

 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.

## ◆ Root()

 Standard_Real math_BissecNewton::Root ( ) const

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

## ◆ Value()

 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.

## ◆ df

 Standard_Real math_BissecNewton::df
protected

## ◆ dx

 Standard_Real math_BissecNewton::dx
protected

## ◆ f

 Standard_Real math_BissecNewton::f
protected

## ◆ TheStatus

 math_Status math_BissecNewton::TheStatus
protected

## ◆ x

 Standard_Real math_BissecNewton::x
protected

## ◆ XTol

 Standard_Real math_BissecNewton::XTol
protected

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