SDE 的无导数求解器有什么好处?

计算科学 随机 随机颂歌
2021-12-18 10:06:11

我正在尝试让自己熟悉SDE,并且一直在阅读有关该主题的一些评论论文。他们给人的印象是,大量工作已经投入到无导数的求解器中。据我了解,这意味着对于像

dX=f(X)dt+g(X)dW,
的衍生物fg该方法不需要(如果我错了,请纠正我)。

我可以理解,此属性在某些难以获得或在计算上不可行或不存在导数的应用程序中很有用。但是,我不希望此类问题与应用程序非常相关。

这向我表明,至少有以下一项适用:

  • 我缺少的无导数求解器还有一些其他相关优势。

  • 需要无导数求解器的问题(由于上述原因)比我认为的更相关。

  • 对无导数求解器的需求低于“供应”,即开发求解器的人对它们的关注。

它是哪一个?

2个回答

我可以理解,此属性在某些难以获得或在计算上不可行或不存在导数的应用程序中很有用。但是,我不希望此类问题与应用程序非常相关。

如果不知道导数的分析解决方案,则成本非常高且容易出错。计算雅可比是n2条目,但数值微分技术需要对每个条目进行多次函数调用。然后,为了做到这一点,数值微分技术在计算导数时必须除以一个小数,这会导致很多数值问题。

使用自动分化工具可以降低成本,但仍然很重要。因此,当没有规定分析雅可比矩阵时,最好远离需要导数的方法。

但是,我不希望此类问题与应用程序非常相关。

对于大多数来自生物学的非线性 SPDE 或大型 SDE(1000 个)系统,写出雅可比行列式几乎是不可能的并且容易出错。我会说这是相反的:期望提供一个分析雅可比行列式不是一个好主意。

还有一些其他的优点。Runge-Kutta 方法是无导数的方法,它们可以做很多系数优化。

对无导数求解器的需求低于“供应”,即开发求解器的人对它们的关注。

事实并非如此。DifferentialEquations.jl中,在KPS 随机泰勒级数方法之前实施了无导数方法,因为对于大多数用户而言,这将导致易用性和性能提高。也就是说,在微分方程领域,你总能找到一个反例,但情况并非如此,所以我确实计划实施一些明确使用导数的方法。但是,我相信大多数用户可能只会默认使用无导数方法,因为他们的认知负荷要低得多。

我不是专门研究随机微分方程的专家,但我认为我的答案仍然具有一定的价值。

  1. 正如您在问题中提到的那样,导数的计算可能具有挑战性。然而,这在多维情况下会更加明显,因为必须计算雅可比矩阵 (n2条目)。因此,非无导数求解器将遭受维数灾难。当方案需要高阶导数时,情况会变得更糟。
  2. 导数本身的计算通常会放大数值噪声。因此,例如,如果底层函数 (f或者g) 不是分析性的,导数中的误差可能会完全扭曲解。