NOX Development
Public Member Functions
NOX::MeritFunction::SumOfSquares Class Reference

Sum of squares merit function. More...

#include <NOX_MeritFunction_SumOfSquares.H>

Inheritance diagram for NOX::MeritFunction::SumOfSquares:
Inheritance graph
[legend]
Collaboration diagram for NOX::MeritFunction::SumOfSquares:
Collaboration graph
[legend]

List of all members.

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, $ f(x) = \frac{1}{2}\| F(x) \|^2 $.
virtual void computeGradient (const NOX::Abstract::Group &group, NOX::Abstract::Vector &result) const
 Computes the gradient, $ g = \nabla f(x) = J(x)^T F(x) $.
virtual double computeSlope (const NOX::Abstract::Vector &dir, const NOX::Abstract::Group &grp) const
 Computes the slope, $ s(x,d) = d^T \nabla f(x) = d^T J(x)^T F(x) $.
virtual double computeQuadraticModel (const NOX::Abstract::Vector &dir, const NOX::Abstract::Group &grp) const
 Computes the quadratic model, $ m(x,d) = f(x) + \nabla f(x)^T d + d^T \nabla^2 f(x) d $.
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 string & name () const
 Returns the name of the merit function.

Detailed Description

Sum of squares merit function.

A basic merit function used in many nonlinear equation solvers:

\[ f = \frac{1}{2} \| F(x) \| ^2 \]

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


Member Function Documentation

void NOX::MeritFunction::SumOfSquares::computeQuadraticMinimizer ( const NOX::Abstract::Group grp,
NOX::Abstract::Vector result 
) const [virtual]
double NOX::MeritFunction::SumOfSquares::computeQuadraticModel ( const NOX::Abstract::Vector dir,
const NOX::Abstract::Group grp 
) const [virtual]
double NOX::MeritFunction::SumOfSquares::computeSlope ( const NOX::Abstract::Vector dir,
const NOX::Abstract::Group grp 
) const [virtual]

Computes the slope, $ s(x,d) = d^T \nabla f(x) = d^T J(x)^T F(x) $.

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(), is_null(), NOX::Abstract::Group::isGradient(), and NOX::Abstract::Group::isJacobian().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends