NOX Development
|
Sum of squares merit function. More...
#include <NOX_MeritFunction_SumOfSquares.H>
Public Member Functions | |
SumOfSquares (const Teuchos::RCP< NOX::Utils > &u) | |
Constructor. | |
virtual | ~SumOfSquares () |
Destructor. | |
virtual double | computef (const NOX::Abstract::Group &grp) const |
Computes the merit function, ![]() | |
virtual void | computeGradient (const NOX::Abstract::Group &group, NOX::Abstract::Vector &result) const |
Computes the gradient, ![]() | |
virtual double | computeSlope (const NOX::Abstract::Vector &dir, const NOX::Abstract::Group &grp) const |
Computes the slope, ![]() | |
virtual double | computeQuadraticModel (const NOX::Abstract::Vector &dir, const NOX::Abstract::Group &grp) const |
Computes the quadratic model, ![]() | |
virtual void | computeQuadraticMinimizer (const NOX::Abstract::Group &grp, NOX::Abstract::Vector &result) const |
Computes the vector in the steepest descent direction that minimizes, the quadratic model. | |
virtual const std::string & | name () const |
Returns the name of the merit function. | |
![]() | |
Generic () | |
Default Constructor. | |
virtual | ~Generic () |
Destructor. | |
Sum of squares merit function.
A basic merit function used in many nonlinear equation solvers:
Where the norm is the 2-Norm using the NOX::Abstract::Vector's inner product.
This is the default merit function used in nox.
This merit function is taken from: J. E. Dennis Jr. and Robert B. Schnabel, "Numerical Methods for Unconstrained Optimization and Nonlinear Equations," Prentice Hall, 1983
|
virtual |
Computes the merit function,
Implements NOX::MeritFunction::Generic.
References NOX::Abstract::Group::getNormF(), and NOX::Abstract::Group::isF().
|
virtual |
Computes the gradient,
Implements NOX::MeritFunction::Generic.
References NOX::Abstract::Group::applyJacobianTranspose(), NOX::Abstract::Group::getF(), NOX::Abstract::Group::isF(), NOX::Abstract::Group::isJacobian(), and NOX::Abstract::Group::Ok.
|
virtual |
Computes the vector in the steepest descent direction that minimizes, the quadratic model.
Computes the vector result:
Implements NOX::MeritFunction::Generic.
References NOX::Abstract::Group::applyJacobian(), NOX::Abstract::Vector::clone(), NOX::Abstract::Group::getF(), NOX::Abstract::Vector::innerProduct(), NOX::Abstract::Group::isF(), NOX::Abstract::Group::isJacobian(), NOX::Abstract::Group::Ok, NOX::Abstract::Vector::scale(), and NOX::ShapeCopy.
|
virtual |
Computes the quadratic model,
We approximate
Implements NOX::MeritFunction::Generic.
References NOX::Abstract::Group::applyJacobian(), NOX::Abstract::Vector::clone(), and NOX::Abstract::Group::getF().
|
virtual |
Computes the slope,
If the Jacobian is not computed in the grp
object, then the slope can be approximated using directional derivatives. More information can be found in the method computeSlopeWithoutJac.
Implements NOX::MeritFunction::Generic.
References NOX::Abstract::Vector::clone(), NOX::Abstract::Group::getF(), NOX::Abstract::Vector::innerProduct(), NOX::Abstract::Group::isGradient(), and NOX::Abstract::Group::isJacobian().
|
virtual |
Returns the name of the merit function.
Implements NOX::MeritFunction::Generic.