Open CASCADE Technology
6.5.4
|
#include <math_NewtonMinimum.hxx>
Public Member Functions | |
DEFINE_STANDARD_ALLOC | math_NewtonMinimum (math_MultipleVarFunctionWithHessian &F, const math_Vector &StartingPoint, const Standard_Real Tolerance=1.0e-7, const Standard_Integer NbIterations=40, const Standard_Real Convexity=1.0e-6, const Standard_Boolean WithSingularity=Standard_True) |
-- Given the starting point StartingPoint, The tolerance required on the solution is given by Tolerance. Iteration are stopped if (!WithSingularity) and H(F(Xi)) is not definite positive (if the smaller eigenvalue of H < Convexity) or IsConverged() returns True for 2 successives Iterations. Warning: Obsolete Constructor (because IsConverged can not be redefined with this. ) | |
math_NewtonMinimum (math_MultipleVarFunctionWithHessian &F, const Standard_Real Tolerance=1.0e-7, const Standard_Integer NbIterations=40, const Standard_Real Convexity=1.0e-6, const Standard_Boolean WithSingularity=Standard_True) | |
The tolerance required on the solution is given by <br> Tolerance. <br> Iteration are stopped if <br> (!WithSingularity) and H(F(Xi)) is not definite <br> positive (if the smaller eigenvalue of H < Convexity) <br> or IsConverged() returns True for 2 successives Iterations. <br> | |
virtual void | Delete () |
virtual | ~math_NewtonMinimum () |
void | Perform (math_MultipleVarFunctionWithHessian &F, const math_Vector &StartingPoint) |
Search the solution. | |
virtual Standard_Boolean | IsConverged () const |
This method is called at the end of each iteration to check the convergence : || Xi+1 - Xi || < Tolerance or || F(Xi+1) - F(Xi)|| < Tolerance * || F(Xi) || It can be redefined in a sub-class to implement a specific test. | |
Standard_Boolean | IsDone () const |
Tests if an error has occured. | |
Standard_Boolean | IsConvex () const |
Tests if the Function is convexe during optimization. | |
const math_Vector & | Location () const |
returns the location vector of the minimum. Exception NotDone is raised if an error has occured. | |
void | Location (math_Vector &Loc) const |
outputs the location vector of the minimum in Loc. Exception NotDone is raised if an error has occured. Exception DimensionError is raised if the range of Loc is not equal to the range of the StartingPoint. | |
Standard_Real | Minimum () const |
returns the value of the minimum. Exception NotDone is raised if the minimum was not found. | |
const math_Vector & | Gradient () const |
returns the gradient vector at the minimum. Exception NotDone is raised if an error has occured.the minimum was not found. | |
void | Gradient (math_Vector &Grad) const |
outputs the gradient vector at the minimum in Grad. Exception NotDone is raised if the minimum was not found. Exception DimensionError is raised if the range of Grad is not equal to the range of the StartingPoint. | |
Standard_Integer | NbIterations () const |
returns the number of iterations really done in the calculation of the minimum. The exception NotDone is raised if an error has occured. | |
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 <<. | |
Protected Attributes | |
math_Status | TheStatus |
math_Vector | TheLocation |
math_Vector | TheGradient |
math_Vector | TheStep |
math_Matrix | TheHessian |
Standard_Real | PreviousMinimum |
Standard_Real | TheMinimum |
Standard_Real | MinEigenValue |
Standard_Real | XTol |
Standard_Real | CTol |
Standard_Integer | nbiter |
Standard_Boolean | NoConvexTreatement |
Standard_Boolean | Convex |
DEFINE_STANDARD_ALLOC math_NewtonMinimum::math_NewtonMinimum | ( | math_MultipleVarFunctionWithHessian & | F, |
const math_Vector & | StartingPoint, | ||
const Standard_Real | Tolerance = 1.0e-7 , |
||
const Standard_Integer | NbIterations = 40 , |
||
const Standard_Real | Convexity = 1.0e-6 , |
||
const Standard_Boolean | WithSingularity = Standard_True |
||
) |
math_NewtonMinimum::math_NewtonMinimum | ( | math_MultipleVarFunctionWithHessian & | F, |
const Standard_Real | Tolerance = 1.0e-7 , |
||
const Standard_Integer | NbIterations = 40 , |
||
const Standard_Real | Convexity = 1.0e-6 , |
||
const Standard_Boolean | WithSingularity = Standard_True |
||
) |
virtual math_NewtonMinimum::~math_NewtonMinimum | ( | ) | [inline, virtual] |
virtual void math_NewtonMinimum::Delete | ( | ) | [virtual] |
void math_NewtonMinimum::Dump | ( | Standard_OStream & | o | ) | const |
const math_Vector& math_NewtonMinimum::Gradient | ( | ) | const |
void math_NewtonMinimum::Gradient | ( | math_Vector & | Grad | ) | const |
virtual Standard_Boolean math_NewtonMinimum::IsConverged | ( | ) | const [virtual] |
Reimplemented in FairCurve_Newton.
Standard_Boolean math_NewtonMinimum::IsConvex | ( | ) | const |
Standard_Boolean math_NewtonMinimum::IsDone | ( | ) | const |
const math_Vector& math_NewtonMinimum::Location | ( | ) | const |
void math_NewtonMinimum::Location | ( | math_Vector & | Loc | ) | const |
Standard_Real math_NewtonMinimum::Minimum | ( | ) | const |
void math_NewtonMinimum::Perform | ( | math_MultipleVarFunctionWithHessian & | F, |
const math_Vector & | StartingPoint | ||
) |
Standard_Boolean math_NewtonMinimum::Convex [protected] |
Standard_Real math_NewtonMinimum::CTol [protected] |
Standard_Real math_NewtonMinimum::MinEigenValue [protected] |
Standard_Integer math_NewtonMinimum::nbiter [protected] |
Standard_Real math_NewtonMinimum::PreviousMinimum [protected] |
math_Vector math_NewtonMinimum::TheGradient [protected] |
math_Matrix math_NewtonMinimum::TheHessian [protected] |
math_Vector math_NewtonMinimum::TheLocation [protected] |
Standard_Real math_NewtonMinimum::TheMinimum [protected] |
math_Status math_NewtonMinimum::TheStatus [protected] |
math_Vector math_NewtonMinimum::TheStep [protected] |
Standard_Real math_NewtonMinimum::XTol [protected] |