不同 Runge-Kutta 方法的权衡情况如何

计算科学 微分方程 龙格库塔 刚性
2021-11-29 11:18:25

有很多 Runge-Kutta 方法,包括Dormand-Prince 45、Cash-Karp 54、Fehlberge 78。

他们之间有比较吗?例如

  • 每种方法牺牲了什么?

  • 不同 RK 方法的一般权衡是什么?

  • 哪种方法适合什么模型?

  • 当我们有一个不光滑的解决方案时,Cash-Karp 方法如何执行?

  • 当我们有一个非光滑的解决方案时,Dormand-Prince 方法如何?

1个回答

有很多 Runge Kutta 方法,包括

  • 冬眠王子 45
  • 现金卡普 54
  • 费尔贝格(原文如此)78

他们之间有比较吗?

嗯,当然。以下是一些要比较的特征:

  • 该方法是隐式的还是显式的?(你所有的例子都是显式的 RK 方法。)
  • 收敛的顺序是什么?是否有任何嵌入式误差估计器?有多少,按什么顺序排列?
  • 它有几个阶段?
  • 需要多少功能评估?对于隐式方法,涉及多少线性求解?
  • 什么是稳定区域?A稳定吗?L-稳定?

我对这些方法的相对简单的理解是:

  • Dormand-Prince 4(5) 是一种带有 5 阶误差估计器的 4 阶方法,旨在最小化 5 阶解中的误差,这在使用 5 阶解继续积分时更可取
  • Fehlberg 方法应该最小化低阶解(在你的情况下是 7 阶解)中的误差;一般来说,相同顺序的 Dormand-Prince 方法应该表现更好
  • 我听说过 Cash-Karp 离散化,但与 Dormand-Prince 方法相比,我没有发现任何声称有任何优势或劣势的来源

每种方法牺牲了什么?

不同 RK 方法的一般权衡是什么?

您应该查看(或构建!)您有兴趣调查的问题和积分器的工作精度图。Hairer 和 Wanner 有一些例子。

哪种方法适合什么模型?

同样,您应该查看工作精度图。对于一个非常粗略的近似,您需要针对非刚性问题的显式 Runge-Kutta 方法(假设您想要使用 Runge-Kutta 方法),而对于刚性问题,您可能需要一个隐式 Runge-库塔法。每个时间步精度较高的方法可能比精度较低的方法在更严格的误差容限下表现更好。然而,最好的方法是(非常)依赖于问题的。