Prev Next Index-> contents reference index search external Up-> pycppad ad_function hessian pycppad-> install get_started.py example ad_variable ad_function two_levels.py runge_kutta_4 whats_new license ad_function-> independent adfun abort_recording forward reverse jacobian hessian optimize hessian-> hessian.py Headings-> Syntax Purpose f x w H Example

Driver for Computing Hessian in a Range Direction

Syntax
H = f.hessian(x, w)

Purpose
This routine computes the Hessian of the weighted sum $$w_0 * F_0 (x) + \cdots + w_{m-1} * F_{m-1} (x)$$ where $F : \B{R}^n \rightarrow \B{R}^m$ is the function corresponding to the adfun object f .

f
The object f must be an adfun object. We use level for the AD ad level of this object.

x
The argument x is a numpy.array with one dimension (i.e., a vector) with length equal to the domain size n for the function f . It specifies the argument value at which the derivative is computed. If the AD level for f is zero, all the elements of x must be either int or instances of float. If the AD level for f is one, all the elements of x must be a_float objects.

w
The argument w is a numpy.array with one dimension (i.e., a vector) with length equal to the range size m for the function f . It specifies the argument value at which the derivative is computed. If the AD level for f is zero, all the elements of w must be either int or instances of float. If the AD level for f is one, all the elements of w must be a_float objects.

H
The return value H is a numpy.array with two dimensions (i.e., a matrix). Both its first and second dimension size (row and column size) are equal to n (the number of domain components in the function f ). It is set to the Hessian; i.e., $$H = w_0 * F_0^{(2)} (x) + \cdots + w_{m-1} * F_{m-1}^{(2)} (x)$$ If the AD level for f is zero, all the elements of H will be instances of float. If the AD level for f is one, all the elements of H will be a_float objects.

Example
The file hessian.py contains an example and test of this operation.
Input File: pycppad/adfun.cpp