![]() |
Open CASCADE Technology Reference Manual 8.0.0
|
Algorithm of Optimization used to make "FairCurve". More...
#include <FairCurve_Newton.hxx>

Public Member Functions | |
| FairCurve_Newton (const math_MultipleVarFunctionWithHessian &theFunction, const double theSpatialTolerance=1.0e-7, const double theCriteriumTolerance=1.0e-7, const int theNbIterations=40, const double theConvexity=1.0e-6, const bool theWithSingularity=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. | |
| bool | IsConverged () const override |
| 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. | |
Public Member Functions inherited from math_NewtonMinimum | |
| math_NewtonMinimum (const math_MultipleVarFunctionWithHessian &theFunction, const double theTolerance=Precision::Confusion(), const int theNbIterations=40, const double theConvexity=1.0e-6, const bool theWithSingularity=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 does not perform computation. | |
| void | Perform (math_MultipleVarFunctionWithHessian &theFunction, const math_Vector &theStartingPoint) |
| Search the solution. | |
| virtual | ~math_NewtonMinimum () |
| Destructor. | |
| bool | IsDone () const |
| Tests if an error has occurred. | |
| bool | 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 occurred. | |
| void | Location (math_Vector &Loc) const |
| outputs the location vector of the minimum in Loc. Exception NotDone is raised if an error has occurred. Exception DimensionError is raised if the range of Loc is not equal to the range of the StartingPoint. | |
| void | SetBoundary (const math_Vector &theLeftBorder, const math_Vector &theRightBorder) |
| Set boundaries. | |
| double | 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 occurred. 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. | |
| int | NbIterations () const |
| returns the number of iterations really done in the calculation of the minimum. The exception NotDone is raised if an error has occurred. | |
| math_Status | GetStatus () const |
| Returns the Status of computation. The exception NotDone is raised if an error has occurred. | |
| 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 <<. | |
Additional Inherited Members | |
Protected Attributes inherited from math_NewtonMinimum | |
| math_Status | TheStatus |
| math_Vector | TheLocation |
| math_Vector | TheGradient |
| math_Vector | TheStep |
| math_Matrix | TheHessian |
| double | PreviousMinimum |
| double | TheMinimum |
| double | MinEigenValue |
| double | XTol |
| double | CTol |
| int | nbiter |
| bool | NoConvexTreatement |
| bool | Convex |
| bool | myIsBoundsDefined |
| math_Vector | myLeft |
| math_Vector | myRight |
Algorithm of Optimization used to make "FairCurve".
| FairCurve_Newton::FairCurve_Newton | ( | const math_MultipleVarFunctionWithHessian & | theFunction, |
| const double | theSpatialTolerance = 1.0e-7, | ||
| const double | theCriteriumTolerance = 1.0e-7, | ||
| const int | theNbIterations = 40, | ||
| const double | theConvexity = 1.0e-6, | ||
| const bool | theWithSingularity = 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.
|
overridevirtual |
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.
Reimplemented from math_NewtonMinimum.