跳到主要内容

常微分方程数值解

阐述

对于常微分方程

u=f(u,p,t)u'=f(u,p,t)

我们可以选取合适的步长 Δt\Delta t 来近似求解这一方程。评价一个方法是否好,要考虑到

  • 阶数:该方法的结果在前几阶与解的 Taylor 展开相同
  • 截断项系数:表明在 Δt\Delta t 较大时,误差是否大 

实例

Euler 方法

  • 显式:un+1=un+Δtf(un,p,t)u_{n+1}=u_n+\Delta tf(u_n,p,t)
  • 隐式:un+1=un+Δtf(un+1,p,t)u_{n+1}=u_n+\Delta tf(u_{n+1},p,t) 

Runge-Kutta 类方法

{k1=f(un,p,t)k2=f(un+a21k1Δt,p,t+Δtc2)un+1=un+(b1k1++bsks)Δt\begin{cases} k_1=f(u_n,p,t)\\ k_2=f(u_n+a_{21}k_1\Delta t, p, t+\Delta tc_2)\\ \vdots\\ u_{n+1}=u_n+(b_1k_1+\cdots+b_sk_s)\Delta t \end{cases}

其中比较有名的

性质

线性稳定性分析

考虑简单的方程 u=αuu'=\alpha u,对于 Euler 方法来说有 un+1=(1+z)unu_{n+1}=(1+z)u_n,因此稳定区域为

隐式 Euler 方法的稳定区域为

而 2 阶、4 阶的稳定区域为

刚性问题

刚性问题是指同时存在两个不同特征时间尺度的问题,这意味着必须用较小的时间尺度来对运动方程来积分,同时必须运行较长时间才能得到有意思的现象。

刚性问题可以用 Jacobi 矩阵的条件数来近似。

相关内容

参考文献