Open CASCADE Technology  6.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Protected Attributes
math_NewtonMinimum Class Reference

#include <math_NewtonMinimum.hxx>

Inheritance diagram for math_NewtonMinimum:
Inheritance graph
[legend]

Public Member Functions

 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, <br>
      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>

Warning: Obsolete Constructor (because IsConverged can not be redefined
with this. )
More...

 
 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>

Warning: This constructor do not computation
More...

 
virtual void Delete ()
 
virtual ~math_NewtonMinimum ()
 
void Perform (math_MultipleVarFunctionWithHessian &F, const math_Vector &StartingPoint)
 Search the solution.
More...
 
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.
More...
 
Standard_Boolean IsDone () const
 Tests if an error has occured.
More...
 
Standard_Boolean IsConvex () const
 Tests if the Function is convexe during optimization.
More...
 
const math_VectorLocation () const
 
 returns the location vector of the minimum. <br>

Exception NotDone is raised if an error has occured.
More...

 
void Location (math_Vector &Loc) const
 
 outputs the location vector of the minimum in Loc. <br>

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.
More...

 
Standard_Real Minimum () const
 
 returns the value of the minimum. <br>

Exception NotDone is raised if the minimum was not found.
More...

 
const math_VectorGradient () const
 
 returns the gradient vector at the minimum. <br>

Exception NotDone is raised if an error has occured.the minimum was not found.
More...

 
void Gradient (math_Vector &Grad) const
 
 outputs the gradient vector at the minimum in Grad. <br>

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.
More...

 
Standard_Integer NbIterations () const
 
 returns the number of iterations really done in the <br>
     calculation of the minimum. <br>

The exception NotDone is raised if an error has occured.
More...

 
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 <<.
More...
 

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
 

Constructor & Destructor Documentation

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 
)

-- Given the  starting   point  StartingPoint, <br>
      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>

Warning: Obsolete Constructor (because IsConverged can not be redefined
with this. )

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 
)

         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>

Warning: This constructor do not computation

virtual math_NewtonMinimum::~math_NewtonMinimum ( )
inlinevirtual

Member Function Documentation

virtual void math_NewtonMinimum::Delete ( )
virtual
void math_NewtonMinimum::Dump ( Standard_OStream o) const

Prints on the stream o information on the current state
of the object.
Is used to redefine the operator <<.

const math_Vector& math_NewtonMinimum::Gradient ( ) const

 returns the gradient vector at the minimum. <br>

Exception NotDone is raised if an error has occured.the minimum was not found.

void math_NewtonMinimum::Gradient ( math_Vector Grad) const

 outputs the gradient vector at the minimum in Grad. <br>

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.

virtual Standard_Boolean math_NewtonMinimum::IsConverged ( ) const
virtual

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.

Reimplemented in FairCurve_Newton.

Standard_Boolean math_NewtonMinimum::IsConvex ( ) const

Tests if the Function is convexe during optimization.

Standard_Boolean math_NewtonMinimum::IsDone ( ) const

Tests if an error has occured.

const math_Vector& math_NewtonMinimum::Location ( ) const

 returns the location vector of the minimum. <br>

Exception NotDone is raised if an error has occured.

void math_NewtonMinimum::Location ( math_Vector Loc) const

 outputs the location vector of the minimum in Loc. <br>

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 math_NewtonMinimum::Minimum ( ) const

 returns the value of the minimum. <br>

Exception NotDone is raised if the minimum was not found.

Standard_Integer math_NewtonMinimum::NbIterations ( ) const

 returns the number of iterations really done in the <br>
     calculation of the minimum. <br>

The exception NotDone is raised if an error has occured.

void math_NewtonMinimum::Perform ( math_MultipleVarFunctionWithHessian F,
const math_Vector StartingPoint 
)

Search the solution.

Field Documentation

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_Boolean math_NewtonMinimum::NoConvexTreatement
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

The documentation for this class was generated from the following file: