The Art of Differentiating Computer Programs
- 1 RWTH Aachen University, Aachen, Germany
Description
This is the first entry-level book on algorithmic (also known as automatic) differentiation (AD), providing fundamental rules for the generation of first- and higher-order tangent-linear and adjoint code. The author covers the mathematical underpinnings as well as how to apply these observations to real-world numerical simulation programs.
Readers will find
• many examples and exercises, including hints to solutions;
• the prototype AD tools dco and dcc for use with the examples and exercises;
• first- and higher-order tangent-linear and adjoint modes for a limited subset of C/C++, provided by the derivative code compiler dcc.
• a supplementary website containing sources of all software discussed in the book, additional exercises and comments on their solutions (growing over the coming years), links to other sites on AD, and errata.
Keywords: Algorithmic Differentiation, Adjoints, Sensitivity Analysis, Nonlinear Programming, Derivative Code Compiler
Table of Contents
- Front Matter FREE [ PDF ]
- 1. Motivation and Introduction [ PDF ]
- 2. First Derivative Code [ PDF ]
- 3. Higher Derivative Code [ PDF ]
- Back Matter FREE [ PDF ]
Excerpt
“How sensitive are the values of the outputs of my computer program with respect to changes in the values of the inputs? How sensitive are these first-order sensitivities with respect to changes in the values of the inputs? How sensitive are the second-order sensitivities with respect to changes in the values of the inputs? …”
Computational scientists, engineers, and economists as well as quantitative analysts in computational finance tend to ask these questions on a regular basis. They write computer programs in order to simulate diverse real-world phenomena. The underlying mathematical models often depend on a possibly large number of (typically unknown or uncertain) parameters. Values for the corresponding inputs of the numerical simulation programs can, for example, be the result of (typically error-prone) observations and measurements. If very small perturbations in these uncertain values yield large changes in the values of the outputs, then the feasibility of the entire simulation becomes questionable. Nobody should make decisions based on such highly uncertain data.
©2012 SIAM






This Publication
Scitation
SPIN
Scitopia
Google Scholar
PubMed