Automated Generation of High-Order Partial Derivative Models

A standard problem in science and engineering consists of developing mathematics and sensitivity models for complex applications for optimizing a candidate design. A chain rule-based evaluation technique is presented for analytically evaluating partial derivatives of nonlinear functions and differential equations defined by a high-level language. A coordinate embedding strategy is introduced that replaces all scalar variables with higher-dimensional objects. The higher-dimensional objects are defined by a concatenation of the original scalar and its Jacobian, Hessian, and higher-order partials. Exact sensitivity models are recovered for arbitrarily complex mathematical models. An operator-overloading technique is used to define generalized operators for basic and standard library functions. The generalized operators encode the chain rule of calculus and store the results of partial derivative calculations in the artificial dimensions used to redefine the scalar operations. Hidden operations automatically generate and evaluate exact first- through fourth-order partial derivative models, which are accurate to the working precision of the machine. The new algorithm replaces a normally complex, error-prone, time-consuming, and labor-intensive process for producing the partials with an automatic procedure. Module functions encapsulate new data types, and extended mathematic and library functions for handling vector, matrix, and tensor operations. Matrix operations are shown to generalize easily. The algorithm has broad potential for impacting the design and use of mathematical programming tools for applications in science and engineering. Several applications are presented that demonstrate the effectiveness of the methods.

[1]  Leonard Meirovitch,et al.  Methods of analytical dynamics , 1970 .

[2]  P. Likins Analytical Dynamics and Nonrigid Spacecraft Simulation , 1974 .

[3]  J. Junkins,et al.  Optimal Spacecraft Rotational Maneuvers , 1986 .

[4]  Edmund Taylor Whittaker,et al.  A Treatise on the Analytical Dynamics of Particles and Rigid Bodies: INDEX OF TERMS EMPLOYED , 1988 .

[5]  William H. Press,et al.  Numerical Recipes: FORTRAN , 1988 .

[6]  Andreas Griewank,et al.  ADIFOR - Generating Derivative Codes form Fortran Programs , 1992, Sci. Program..

[7]  Shirish Chinchalkar The Application of Automatic Differentiation to Problems in Engineering Analysis , 1993 .

[8]  Paul D. Hovland,et al.  ADIFOR 2.0 user`s guide (Revision B) , 1995 .

[9]  Loren P. Meissner FORTRAN 90 , 1995 .

[10]  Maryam Shayegan Hastings,et al.  She Does Math!: Mathematics and Computer Science , 1995 .

[11]  Andreas Griewank,et al.  Algorithm 755: ADOL-C: a package for the automatic differentiation of algorithms written in C/C++ , 1996, TOMS.

[12]  Larry R. Nyhoff,et al.  Introduction to Fortran 90 for engineers and scientists , 1996 .

[13]  Thomas F. Coleman,et al.  The Efficient Computation of Sparse Jacobian Matrices Using Automatic Differentiation , 1998, SIAM J. Sci. Comput..

[14]  Peter Eberhard,et al.  Automatic differentiation of numerical integration algorithms , 1999, Math. Comput..

[15]  Thomas F. Coleman,et al.  ADMIT-1: automatic differentiation and MATLAB interface toolbox , 2000, TOMS.

[16]  L. Petzold,et al.  Software and algorithms for sensitivity analysis of large-scale differential algebraic systems , 2000 .

[17]  L. Dixon,et al.  Automatic differentiation of algorithms , 2000 .

[18]  Stavros C. Farantos,et al.  auto_deriv: Tool for automatic differentiation of a Fortran code☆ , 2000 .

[19]  Peter Eberhard,et al.  Jacobian motion and its derivatives , 2001 .

[20]  Jerzy Karczmarczuk Functional Differentiation of Computer Programs , 2001, High. Order Symb. Comput..

[21]  David Elizondo,et al.  Automatic versus manual model differentiation to compute sensitivities and solve non-linear inverse problems , 2002 .

[22]  Paul I. Barton,et al.  Hidden Discontinuities and Parametric Sensitivity Calculations , 2001, SIAM J. Sci. Comput..