Automatic Differentiation for Computational Finance
Automatic differentiation (AD) is a powerful technique allowing to compute derivatives of a function given by a (potentially very large) piece of code. The basic principles of AD and some available tools implementing this technology are reviewed. AD is superior to divided differences because AD-generated derivative values are free of approximation errors, and superior to symbolic differentiation because code of very high complexity can be handled, in contrast to computer algebra systems whose applicability is limited to rather simple functions. In addition, the cost for computing gradients of scalar-valued functions with either divided differences or symbolic differentiation grows linearly with the number of variables, whereas the so-called reverse mode of AD can compute such gradients at constant cost.
KeywordsGradients Forward and reverse mode Higher-order derivatives Operator overloading Code transformation AD tools
Unable to display preview. Download preview PDF.
- Abate, J., Bischof, C., Carle, A., and Roh, L. (1997). Algorithms and design for a second-order automatic differentiation module. In Proc. Int. Symposium on Symbolic and Algebraic Computing (ISSAC ‘87), pages 149–155, New York. Association of Computing Machinery.Google Scholar
- Berz, M., Bischof, C., Corliss, G., and Griewank, A. (1996). Computational Differentiation: Techniques, Applications, and Tools. SIAM, Philadelphia.Google Scholar
- Bischof, C., Carle, A., Corliss, G., Griewank, A., and Hovland, P. (1992). ADIFOR: Generating derivative codes from Fortran programs. Scientific Programming, 1 (1): 11–29.Google Scholar
- Bischof, C. H. and Bäcker, H. M. (2000). Computing Derivatives of Computer Programs. In Grotendorst, J., editor, Modern Methods and Algorithms of Quantum Chemistry: Proceedings, Second Edition, volume 3 of NIC Series, pages 315–327. NIC Directors, Jülich.Google Scholar
- Carle, A. and Fagan, M. (2000). Private communication.Google Scholar
- Corliss, G., Faure, C., Griewank, A., Hascoët, L., and Naumann, U., editors (2002). Automatic Differentiation of Algorithms: From Simulation to Optimization. Springer. To appear.Google Scholar
- Griewank, A. (2000). Evaluating Derivatives —Principles and Techniques of Automatic Differentiation. SIAM, Philadelphia.Google Scholar
- Griewank, A. and Corliss, G. (1991). Automatic Differentiation of Algorithms. SIAM, Philadelphia.Google Scholar
- Hovland, P. and Norris, B. (2001). A distributed application server for automatic differentiation. In Proc. 15th Int. Parallel and Distributed Processing Symposium,pages 1849–1856. IEEE.Google Scholar