如何确定非线性 ODE 的 Runge-Kutta 方法的稳定性?

计算科学 稳定 龙格库塔
2021-11-28 13:09:11

我正在研究达芬方程的参数

x¨+δx˙+αx+βx3=γcosωt,

其中是实参数并且用通常的方式替换,想法是整合系统δ,α,β,γωx˙:=dx/dtxu,x˙v

u˙=v ,
v˙=γcosωtδvαuβu3

使用四阶龙格-库塔法我选择这个几乎是因为它是标准的。我的问题是:

1)如何确定此方法是否完全适用于该问题?问题是否僵硬,我应该选择不同的方法吗?

这当然因为达芬方程对大多数参数没有解析解这一事实而变得复杂。

2)我如何确定要使用的步长 - 即。如何估计给定步长导致的误差?(我非常想避免实施自适应步长。)

被指出torads好的参考将不胜感激!最好的问候,\T

2个回答

您可以应用线性稳定性分析。也就是说,对于给定的,则计算右侧的线性化 u) 。如果它们相差几个数量级,问题就很棘手。乍一看,我没想到会这样。u=(x,v)Df(u)u=f(u)

您可以通过以一半大小再次运行问题来确定一个好的步长。如果结果很接近,你就完成了。您的要求有多接近。或者您使用像 Dormand-Prince 这样的嵌入式方法来估计局部误差。这也是 Matlab 中的 ode45。

这些都是大多数关于 ODE 求解器的书籍中讨论的标准问题。我会推荐海尔和万纳。