\(\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}} }\)
forward_one¶
View page sourceFirst Order Forward Mode: Derivative Values¶
Syntax¶
Forward
(1, x1 )Purpose¶
We use \(F : \B{R}^n \rightarrow \B{R}^m\) to denote the AD Function corresponding to f . The result of the syntax above is
where \(F^{(1)} (x0)\) is the Jacobian of \(F\) evaluated at x0 .
f¶
The object f has prototype
ADFun
< Base > f
Note that the ADFun object f is not const
.
Before this call to Forward
, the value returned by
f .
size_order
()
must be greater than or equal one. After this call it will be will be two (see size_order ).
x0¶
The vector x0 in the formula
corresponds to the previous call to forward_zero using this ADFun object f ; i.e.,
f .
Forward
(0, x0 )
If there is no previous call with the first argument zero, the value of the Independent variables during the recording of the AD sequence of operations is used for x0 .
x1¶
The argument x1 has prototype
const
Vector & x1
(see Vector below) and its size must be equal to n , the dimension of the Domain space for f .
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.
Example¶
The file forward.cpp contains an example and test of this operation.
Special Case¶
This is special case of forward_order where
and \(o( t^q ) * t^{-q} \rightarrow 0\) as \(t \rightarrow 0\). For this special case, \(q = 1\), \(x^{(0)}\) = x0 , \(x^{(1)}\) = x1 , \(X(t) = x^{(0)} + x^{(1)} t\), and
Taking the derivative with respect to \(t\), at \(t = 0\), we obtain
which agrees with the specifications for y1 in the Purpose above.