在保持弱正性和弱单调性的同时求解 ODE

计算科学
2021-11-30 01:31:08

我有一个系统N形式的 ODE,

M(z,F(z))F(z)=Φ(z,F(z))
其中质量矩阵是M(z,F):R×RNRN×NΦ(z,F):R×RNRN是(潜在的)非线性的。初始条件是F(0)=0N. 我需要解决这个任意大的问题z,但它是固定的,所以我可以选择一些zmax.

几点注意事项:

  • M(z,F)是对角线,但它是渐近奇异的(即,当时,一些对角线接近)。这就是为什么我将其保留为质量矩阵形式的原因,但我可以通过除以对角线轻松地将其写为z0F(z)=Φ(z,F)
  • 这来自 CDF中的平稳 Kolmogorov Forward 方程(其中方程是分布中的一个额外离散状态,但我认为这在这里并不重要)。这导致对解决方案的一些关键要求: F(z)N
    • F(0)=0N因为分布的最小支持度为0
    • 弱正性表示所有都是有效的 CDF,其中实践中唯一的将处于初始条件。F(z)0z0
    • 弱单调性所有,因为 PDF 不能为负数。F(z)0z
    • 收敛以确保这是一个有效的 CDF。(实际上,,但我可以通过其他方式处理这个问题)limzF(z)<limzn=1NFn(z)=1

这是IVP还是BVP?在不解释设置的细节的情况下,简短的回答是我可以选择更方便和更强大的那个。

问题: 解决这个问题的最佳数值算法(或 ODE 的变换)是什么?特别是,我希望保持积极性和单调性,并且我怀疑随着变大,收敛要求会使问题变得僵硬(这也可能与奇异质量矩阵有关)。z

我愿意为了稳健性而牺牲速度(甚至准确性),但更愿意使用带有现成软件的算法。

1个回答

我假设精确解满足正性和单调性条件。

保证这些属性的最稳健的方法是向后欧拉方法。它将在任意大的步长下保持积极性和单调性。事实上,如果精确解满足,反向欧拉也将保留它。它只是一阶准确的,因此为了准确起见,您可能需要采取小步长。F(z)1

对于任意非线性,已知不存在在任意步长下保持正性的二阶方法Φ

如果您可以证明在前向 Euler 步长下保留了正性(显然,步长有一些上限),那么可以使用强稳定性保持 (SSP) 类方法来获得更高阶的准确性,但是您将拥有处理对时间步长的限制,并且由于渐近奇异性,您无论如何都可能失去高阶精度。