Open CASCADE Technology Reference Manual 8.0.0
Loading...
Searching...
No Matches
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 (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.
 
virtual bool 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.
 
bool IsDone () const
 Tests if an error has occurred.
 
bool IsConvex () const
 Tests if the Function is convexe during optimization.
 
const math_VectorLocation () 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_VectorGradient () 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 <<.
 

Protected Attributes

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
 

Constructor & Destructor Documentation

◆ math_NewtonMinimum()

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.

◆ ~math_NewtonMinimum()

virtual math_NewtonMinimum::~math_NewtonMinimum ( )
virtual

Destructor.

Member Function Documentation

◆ Dump()

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

◆ GetStatus()

math_Status math_NewtonMinimum::GetStatus ( ) const

Returns the Status of computation. The exception NotDone is raised if an error has occurred.

◆ Gradient() [1/2]

const math_Vector & math_NewtonMinimum::Gradient ( ) const

returns the gradient vector at the minimum. Exception NotDone is raised if an error has occurred. The minimum was not found.

◆ Gradient() [2/2]

void math_NewtonMinimum::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.

◆ IsConverged()

virtual bool 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.

◆ IsConvex()

bool math_NewtonMinimum::IsConvex ( ) const

Tests if the Function is convexe during optimization.

◆ IsDone()

bool math_NewtonMinimum::IsDone ( ) const

Tests if an error has occurred.

◆ Location() [1/2]

const math_Vector & math_NewtonMinimum::Location ( ) const

returns the location vector of the minimum. Exception NotDone is raised if an error has occurred.

◆ Location() [2/2]

void math_NewtonMinimum::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.

◆ Minimum()

double math_NewtonMinimum::Minimum ( ) const

returns the value of the minimum. Exception NotDone is raised if the minimum was not found.

◆ NbIterations()

int math_NewtonMinimum::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.

◆ Perform()

void math_NewtonMinimum::Perform ( math_MultipleVarFunctionWithHessian & theFunction,
const math_Vector & theStartingPoint )

Search the solution.

◆ SetBoundary()

void math_NewtonMinimum::SetBoundary ( const math_Vector & theLeftBorder,
const math_Vector & theRightBorder )

Set boundaries.

Field Documentation

◆ Convex

bool math_NewtonMinimum::Convex
protected

◆ CTol

double math_NewtonMinimum::CTol
protected

◆ MinEigenValue

double math_NewtonMinimum::MinEigenValue
protected

◆ myIsBoundsDefined

bool math_NewtonMinimum::myIsBoundsDefined
protected

◆ myLeft

math_Vector math_NewtonMinimum::myLeft
protected

◆ myRight

math_Vector math_NewtonMinimum::myRight
protected

◆ nbiter

int math_NewtonMinimum::nbiter
protected

◆ NoConvexTreatement

bool math_NewtonMinimum::NoConvexTreatement
protected

◆ PreviousMinimum

double math_NewtonMinimum::PreviousMinimum
protected

◆ TheGradient

math_Vector math_NewtonMinimum::TheGradient
protected

◆ TheHessian

math_Matrix math_NewtonMinimum::TheHessian
protected

◆ TheLocation

math_Vector math_NewtonMinimum::TheLocation
protected

◆ TheMinimum

double math_NewtonMinimum::TheMinimum
protected

◆ TheStatus

math_Status math_NewtonMinimum::TheStatus
protected

◆ TheStep

math_Vector math_NewtonMinimum::TheStep
protected

◆ XTol

double math_NewtonMinimum::XTol
protected

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