Introduction to Automatic Differentiation and MATLAB Object-Oriented Programming

被引:134
作者
Neidinger, Richard D. [1 ]
机构
[1] Davidson Coll, Dept Math, Davidson, NC 28035 USA
关键词
automatic differentiation; MATLAB; object-oriented programming; OOP; numerical analysis; computational differentiation; algorithmic differentiation; evaluating derivatives; EFFICIENT;
D O I
10.1137/080743627
中图分类号
O29 [应用数学];
学科分类号
070104 ;
摘要
An introduction to both automatic differentiation and object-oriented programming can enrich a numerical analysis course that typically incorporates numerical differentiation and basic MATLAB computation. Automatic differentiation consists of exact algorithms on floating-point arguments. This implementation overloads standard elementary operators and functions in MATLAB with a derivative rule in addition to the function value; for example, sin u will also compute (cos u) * u', w here u and u' are numerical values. These methods are mostly one-line programs that operate on a class of value-and-derivative objects, providing a simple example of object-oriented programming in MATLAB using the new(as of release 2008a) class definition structure. The resulting powerful tool computes derivative values and multivariable gradients, and is applied to Newton's method for root-finding in both single and multivariable settings. To compute higher-order derivatives of a single-variable function, another class of series objects keeps Taylor polynomial coefficients up to some order. Overloading multiplication on series objects is a combination (discrete convolution) of coefficients. This idea leads to algorithms for other operations and functions on series objects. A survey of more advanced topics in automatic differentiation includes an introduction to the reverse mode (our implementation is forward mode) and considerations in arbitrary-order multivariable series computation.
引用
收藏
页码:545 / 563
页数:19
相关论文
共 23 条
  • [1] [Anonymous], COLL MATH J
  • [2] [Anonymous], 1996, Computational Differentiation: Techniques, Applications and Tools
  • [3] Anton H., 2005, Calculus: Early transcendentals single variable, V8th
  • [4] BERZ M, 1991, SIAM PROC S, P147
  • [5] BISCHOF CH, 2008, LECT NOTES COMPUT SC, V64
  • [6] BUCKER HM, 2005, LECT NOTES COMPUT SC, V50
  • [7] Burden RL, 2005, NUMERICAL ANAL
  • [8] ATOMFT - SOLVING ODES AND DAES USING TAYLOR-SERIES
    CHANG, YF
    CORLISS, G
    [J]. COMPUTERS & MATHEMATICS WITH APPLICATIONS, 1994, 28 (10-12) : 209 - 233
  • [9] Corliss G., 2002, AUTOMATIC DIFFERENTI
  • [10] Flanders H, 2002, AUTOMATIC DIFFERENTIATION OF ALGORITHMS: FROM SIMULATION TO OPTIMIZATION, P319