NAG AD Library e04gb_a1w_f (lsq_uncon_quasi_deriv_comp_a1w)
Note:a1w denotes that first order adjoints are computed in working precision; this has the corresponding argument type nagad_a1w_w_rtype.
Also available is the t1w (first order tangent linear) mode, the interface of which is implied by replacing a1w by t1w throughout this document.
Additionally, the p0w (passive interface, as alternative to the FL interface) mode is available and can be inferred by replacing of active types by the corresponding passive types.
The method of codifying AD implementations in the routine name and corresponding argument types is described in the NAG AD Library Introduction.
e04gb_a1w_f
is the adjoint version of the primal routine
e04gbf.
Depending on the value of ad_handle,
e04gb_a1w_f uses algorithmic differentiation or symbolic adjoints to compute adjoints of the primal.
The routine may be called by the names e04gb_a1w_f or nagf_opt_lsq_uncon_quasi_deriv_comp_a1w. The corresponding t1w and p0w variants of this routine are also available.
3Description
e04gb_a1w_f
is the adjoint version of the primal routine
e04gbf.
e04gbf is a comprehensive quasi-Newton algorithm for finding an unconstrained minimum of a sum of squares of nonlinear functions in variables . First derivatives are required. The routine is intended for functions which have continuous first and second derivatives (although it will usually work even if the derivatives have occasional discontinuities).
For further information see Section 3 in the documentation for e04gbf.
3.1Symbolic Adjoint
e04gb_a1w_f can provide symbolic adjoints by setting the symbolic mode as described in Section 3.2.2 in the X10 Chapter introduction. Please see Section 4 in the Introduction to the NAG AD Library for API description on how to use symbolic adjoints.
In comparison to the algorithmic adjoint, the user-supplied primal and adjoint callbacks need specific implementation to support symbolic adjoint computation. Please see Section 4.5 in the Introduction to the NAG AD Library and recall what primal and adjoint callbacks need to calculate in the case of an algorithmic adjoint.
Assuming the original user-supplied function evaluates
(1)
where is given by the w or by use of COMMON globals. The variables , and correspond to xc, fvec and fjac of lsqfun. The symbolic adjoint of e04gbf then also requires the following capability / modes:
(a)Function value evaluation only.
(b)Function value evaluation and adjoint computation w.r.t. xc only (corresponds to in the following equation), i.e.,
(2)
(c)Function value evaluation and adjoint computation w.r.t. only, i.e.,
(3)
Here is a placeholder for any user variable either passed via the user segment of w or via COMMON global variables.
3.1.1Mathematical Background
To be more specific, the symbolic adjoint solves
(4)
followed by an adjoint projection through the user-supplied adjoint routine
(5)
The Hessian as well as the mixed derivative tensor is computed using the user-supplied adjoint routine.
You can set or access the adjoints of output arguments x, fvec, fjac and fsumsq. The adjoints of all other output arguments are ignored.
e04gb_a1w_f increments the adjoints of the variable , where is given by the argument w or by use of COMMON globals (see (1)).
4References
Du Toit J, Naumann U (2017) Adjoint Algorithmic Differentiation Tool Support for Typical Numerical Patterns in Computational Finance
Giles M (2017) Collected Matrix Derivative Results for Forward and Reverse Mode Algorithmic Differentiation
Gill P E and Murray W (1978) Algorithms for the solution of the nonlinear least squares problem SIAM J. Numer. Anal.15 977–992
Naumann U, Lotz J, Leppkes K and Towara M (2017) Algorithmic Differentiation of Numerical Methods: Tangent and Adjoint Solvers for Parameterized Systems of Nonlinear Equations
5Arguments
In addition to the arguments present in the interface of the primal routine,
e04gb_a1w_f includes some arguments specific to AD.
A brief summary of the AD specific arguments is given below. For the remainder, links are provided to the corresponding argument from the primal routine.
A tooltip popup for all arguments can be found by hovering over the argument name in Section 2 and in this section.
selct enables you to specify whether the linear minimizations (i.e., minimizations of with respect to ) are to be performed by a routine which just requires the evaluation of the (), or by a routine which also requires the first derivatives of the ().