快速链式法则算法

计算科学 算法
2021-11-30 17:15:22

假设我有两个功能fg, 与导数g在点x及其衍生物f在点g(x)可用的。

计算导数最快的方法是什么fg(x)?

1个回答

对于实值函数 g(x),您可以执行以下操作,

dfdx=dfdgdgdxdfdgIm{g(x+iϵ)}ϵ
在哪里i是虚数。Im{z}给出复数 z 的虚部.

您可以用任何可以对复数进行运算的语言来实现它。你可以有非常小的ϵ, 有小的截断误差O(ϵ2) 并避免减法取消错误。我不知道它有多快,但实施起来非常快。

有关更多详细信息,请参阅,

乡绅,威廉;Trapp, George使用复变量估计实函数的导数,SIAM Rev. 40, No.1, 110-112 (1998)。ZBL0913.65014