The complex-step derivative approximation

被引:436
作者
Martins, JRRA
Sturdza, P
Alonso, JJ
机构
[1] Univ Toronto, Inst Aerosp Studies, Toronto, ON M3H 5T6, Canada
[2] Stanford Univ, Dept Aeronaut & Aeronaut, Stanford, CA 94305 USA
来源
ACM TRANSACTIONS ON MATHEMATICAL SOFTWARE | 2003年 / 29卷 / 03期
关键词
algorithms; performance; automatic differentiation; forward mode; complex-step derivative approximation; overloading; gradients; sensitivities;
D O I
10.1145/838250.838251
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
The complex-step derivative approximation and its application to numerical algorithms are presented. Improvements to the basic method are suggested that further increase its accuracy and robustness and unveil the connection to algorithmic differentiation theory. A general procedure for the implementation of the complex-step method is described in detail and a script is developed that automates its implementation. Automatic implementations of the complex-step method for Fortran and C/C++ are presented and compared to existing algorithmic differentiation tools. The complex-step method is tested in two large multidisciplinary solvers and the resulting sensitivities are compared to results given by finite differences. The resulting sensitivities are shown to be as accurate as the analyses. Accuracy, robustness, ease of implementation and maintainability make these complex-step derivative approximation tools very attractive options for sensitivity analysis.
引用
收藏
页码:245 / 262
页数:18
相关论文
共 39 条