An Efficient Overloaded Implementation of Forward Mode Automatic Differentiation in MATLAB
Shaun A Forth
Published in
ACM Transactions on Mathematical Software (TOMS) Volume 32, Issue 2 (June 2006) pp 195-222
Abstract
The MAD package described here facilitates the evaluation of
first derivatives of multi-dimensional functions that are defined by computer
codes written in MATLAB. The underlying algorithm is the well-known forward
mode of automatic differentiation implemented via operator
overloading on variables of the class fmad. The main distinguishing feature of
this MATLAB implementation is the separation of the linear combination of
derivative vectors into a separate derivative vector class derivvec. This
allows for the straightforward performance optimisation of the overall package.
Additionally by internally using a matrix (two-dimensional) representation of
arbitrary dimension directional derivatives we may utilise MATLAB's sparse
matrix class to propagate sparse directional derivatives for MATLAB code
which uses arbitrary dimension arrays. On several examples the package is shown
to be more efficient than Verma's ADMAT package.
Download
Authors' PDF, copyright ACM. Posted here by permission of ACM for
your personal use. Not for redistribution.
saf_toms06.pdf
ACM Portal Entry: http://doi.acm.org/10.1145/1141885.1141888