\(\newcommand{\W}[1]{ \; #1 \; }\) \(\newcommand{\R}[1]{ {\rm #1} }\) \(\newcommand{\B}[1]{ {\bf #1} }\) \(\newcommand{\D}[2]{ \frac{\partial #1}{\partial #2} }\) \(\newcommand{\DD}[3]{ \frac{\partial^2 #1}{\partial #2 \partial #3} }\) \(\newcommand{\Dpow}[2]{ \frac{\partial^{#1}}{\partial {#2}^{#1}} }\) \(\newcommand{\dpow}[2]{ \frac{ {\rm d}^{#1}}{{\rm d}\, {#2}^{#1}} }\)
Hessian¶
View page sourceHessian: Easy Driver¶
Syntax¶
Hessian
( x , w )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
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,
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\)
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.