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, . More... | |
virtual double | computeQuadraticModel (const NOX::Abstract::Vector &dir, const NOX::Abstract::Group &grp) const |
Computes the quadratic model, . More... | |
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. More... | |
virtual const std::string & | name () const |
Returns the name of the merit function. | |
Public Member Functions inherited from NOX::MeritFunction::Generic | |
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 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(), Teuchos::is_null(), 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(), NOX::Abstract::Group::getF(), and Teuchos::is_null().
|
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(), Teuchos::is_null(), NOX::Abstract::Group::isGradient(), and NOX::Abstract::Group::isJacobian().