Open CASCADE Technology 6.6.0
|
Algorithme of Optimization used to make "FairCurve"
#include <FairCurve_Newton.hxx>
Public Member Functions | |
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 (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 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: This constructor do not computation | |
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. |
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 |
||
) |
-- 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::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.