Hessian

View page source

Hessian: Easy Driver

Syntax

hes = f . Hessian ( x , w )
hes = f . Hessian ( x , l )

Purpose

We use \(F : \B{R}^n \rightarrow \B{R}^m\) to denote the AD Function corresponding to f . The syntax above sets hes to the Hessian The syntax above sets h to the Hessian

\[hes = \dpow{2}{x} \sum_{i=1}^m w_i F_i (x)\]

The routine sparse_hessian may be faster in the case where the Hessian is sparse.

f

The object f has prototype

ADFun < Base > f

Note that the ADFun object f is not const (see Hessian Uses Forward below).

x

The argument x has prototype

const Vector & x

(see Vector below) and its size must be equal to n , the dimension of the Domain space for f . It specifies that point at which to evaluate the Hessian.

l

If the argument l is present, it has prototype

size_t l

and is less than m , the dimension of the Range space for f . It specifies the component of F for which we are evaluating the Hessian. To be specific, in the case where the argument l is present,

\[\begin{split}w_i = \left\{ \begin{array}{ll} 1 & i = l \\ 0 & {\rm otherwise} \end{array} \right.\end{split}\]

w

If the argument w is present, it has prototype

const Vector & w

and size \(m\). It specifies the value of \(w_i\) in the expression for h .

hes

The result hes has prototype

Vector hes

(see Vector below) and its size is \(n * n\). For \(j = 0 , \ldots , n - 1\) and \(\ell = 0 , \ldots , n - 1\)

\[hes [ j * n + \ell ] = \DD{ w^{\rm T} F }{ x_j }{ x_\ell } ( x )\]

Vector

The type Vector must be a SimpleVector class with elements of type Base . The routine CheckSimpleVector will generate an error message if this is not the case.

Hessian Uses Forward

After each call to Forward , the object f contains the corresponding Taylor coefficients . After a call to Hessian , the zero order Taylor coefficients correspond to f . Forward (0, x ) and the other coefficients are unspecified.

Example

The routines hessian.cpp and hes_lagrangian.cpp are examples and tests of Hessian . They return true , if they succeed and false otherwise.