NOX  Development
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Member Functions | List of all members
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]

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

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


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