Open CASCADE Technology
6.5.4
|
Algorithme of Optimization used to make "FairCurve"
#include <FairCurve_Newton.hxx>
Public Member Functions | |
DEFINE_STANDARD_ALLOC | FairCurve_Newton (math_MultipleVarFunctionWithHessian &F, const math_Vector &StartingPoint, const Standard_Real SpatialTolerance=1.0e-7, const Standard_Real CriteriumTolerance=1.0e-2, 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. ) | |
FairCurve_Newton (math_MultipleVarFunctionWithHessian &F, const Standard_Real SpatialTolerance=1.0e-7, 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 Standard_Boolean | IsConverged () const |
This method is called at the end of each iteration to check the convergence : || Xi+1 - Xi || < SpatialTolerance/100 Or || Xi+1 - Xi || < SpatialTolerance and |F(Xi+1) - F(Xi)| < CriteriumTolerance * |F(xi)| It can be redefined in a sub-class to implement a specific test. |
DEFINE_STANDARD_ALLOC FairCurve_Newton::FairCurve_Newton | ( | math_MultipleVarFunctionWithHessian & | F, |
const math_Vector & | StartingPoint, | ||
const Standard_Real | SpatialTolerance = 1.0e-7 , |
||
const Standard_Real | CriteriumTolerance = 1.0e-2 , |
||
const Standard_Integer | NbIterations = 40 , |
||
const Standard_Real | Convexity = 1.0e-6 , |
||
const Standard_Boolean | WithSingularity = Standard_True |
||
) |
FairCurve_Newton::FairCurve_Newton | ( | math_MultipleVarFunctionWithHessian & | F, |
const Standard_Real | SpatialTolerance = 1.0e-7 , |
||
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 Standard_Boolean FairCurve_Newton::IsConverged | ( | ) | const [virtual] |
Reimplemented from math_NewtonMinimum.