|
Open CASCADE Technology 6.5.2
|
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 | |
| void * | operator new (size_t, void *anAddress) |
| void * | operator new (size_t size) |
| void | operator delete (void *anAddress) |
| 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 |
| math_BissecNewton::math_BissecNewton | ( | math_FunctionWithDerivative & | F, |
| const Standard_Real | Bound1, | ||
| const Standard_Real | Bound2, | ||
| const Standard_Real | TolX, | ||
| const Standard_Integer | NbIterations = 100 |
||
| ) |
| 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::operator delete | ( | void * | anAddress | ) | [inline] |
| void* math_BissecNewton::operator new | ( | size_t | size | ) | [inline] |
| void* math_BissecNewton::operator new | ( | size_t | , |
| void * | anAddress | ||
| ) | [inline] |
| 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 |
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] |
1.7.4