数值积分的概念

一、常微分方程(ODE)基础概念

  1. ODE定义

    • g(t,y,y,,y(k))=0g(t, y, y', \cdots, y^{(k)}) = 0,其中 y=y(t)y = y(t) 是未知函数。
    • k阶显式ODEy(k)=f(t,y,y,,y(k1))y^{(k)} = f(t, y, y', \cdots, y^{(k-1)})
  2. 高阶ODE化一阶方程组

    • 变量代换:设 u1=y,u2=y,,uk=y(k1)u_1 = y, u_2 = y', \cdots, u_k = y^{(k-1)}

      {u1=u2u2=u3uk=f(t,u1,,uk)\begin{cases} u_1' = u_2 \\ u_2' = u_3 \\ \vdots \\ u_k' = f(t, u_1, \dots, u_k) \end{cases}

    • 例(牛顿第二定律)

      my=F(t,y,y){u1=u2u2=1mF(t,u1,u2)my'' = F(t, y, y') \rightarrow \begin{cases} u_1' = u_2 \\ u_2' = \frac{1}{m} F(t, u_1, u_2) \end{cases}

  3. 初值问题(IVP)
    y=f(t,y),y(t0)=y0,tt0 y' = f(t, y), \quad y(t_0) = y_0, \quad t \geq t_0

    • 解的唯一性由初始条件保证。
  4. 稳定性分类(定义8.1)

    • 稳定:初值扰动 δ\delta 导致解偏差 Δy(t)\Delta y(t) 有界。
    • 渐近稳定limtΔy(t)=0\lim_{t \to \infty} \Delta y(t) = 0
    • 不稳定Δy(t)\Delta y(t) \to \infty
    • 模型问题分析y=λyy' = \lambda y,解 y(t)=y0eλ(tt0)y(t) = y_0 e^{\lambda(t-t_0)}
      • 稳定当 Re(λ)0\operatorname{Re}(\lambda) \leq 0;渐近稳定当 Re(λ)<0\operatorname{Re}(\lambda) < 0
    • 非线性问题局部稳定性
      • 雅可比矩阵 J=fyJ = \frac{\partial f}{\partial y},特征值 λk\lambda_k 满足 Re(λk)0\operatorname{Re}(\lambda_k) \leq 0 则局部稳定。

二、数值解法基本概念

  1. 离散变量法

    • 步进计算:t0<t1<<tnt_0 < t_1 < \cdots < t_n,步长 hn=tn+1tnh_n = t_{n+1} - t_n
    • 近似解序列 y0,y1,,yny_0, y_1, \dots, y_n
  2. 方法分类

    类型 公式形式 特点
    单步法 yn+1=G(yn)y_{n+1} = G(y_n) 仅依赖前一步
    多步法(k步) yn+1=G(yn,,ynk)y_{n+1} = G(y_n, \dots, y_{n-k}) 依赖前k步
    显式 yn+1y_{n+1} 不隐式出现 直接计算
    隐式 yn+1y_{n+1} 出现在方程中 需迭代求解(如牛顿法)
  3. 局部截断误差(LTE)(定义8.3)

    • 假设 yni=y(tni)y_{n-i} = y(t_{n-i}) 精确,则 ln+1=y(tn+1)yn+1l_{n+1} = y(t_{n+1}) - y_{n+1}
    • p阶精度ln+1=O(hp+1)l_{n+1} = O(h^{p+1})
  4. 整体误差

    • en=yny(tn)e_n = y_n - y(t_n)
    • 定理:若方法稳定且局部截断误差 O(hp+1)O(h^{p+1}),则整体误差 en=O(hp)e_n = O(h^p)

三、单步法数值解法

1. 欧拉法(显式)

  • 公式yn+1=yn+hf(tn,yn)y_{n+1} = y_n + h f(t_n, y_n)
  • 推导
    • 数值微分(向前差分):y(tn)y(tn+1)y(tn)hy'(t_n) \approx \frac{y(t_{n+1}) - y(t_n)}{h}
    • 数值积分(左矩形):tntn+1fdshf(tn,y(tn))\int_{t_n}^{t_{n+1}} f ds \approx h f(t_n, y(t_n))
  • 精度ln+1=O(h2)l_{n+1} = O(h^2)1阶精度
  • 稳定性分析(模型问题 y=λyy' = \lambda y):
    • 递推式:yn+1=(1+hλ)yny_{n+1} = (1 + h\lambda) y_n
    • 稳定条件:1+hλ1|1 + h\lambda| \leq 1
    • 稳定区域:复平面中 hλh\lambda 在圆盘 z+11|z+1| \leq 1 内(见Page 15图示)。

2. 向后欧拉法(隐式)

  • 公式yn+1=yn+hf(tn+1,yn+1)y_{n+1} = y_n + h f(t_{n+1}, y_{n+1})
  • 稳定性(模型问题):
    • yn+1=11hλyny_{n+1} = \frac{1}{1 - h\lambda} y_n,稳定条件 11hλ1\left| \frac{1}{1 - h\lambda} \right| \leq 1 恒成立(Re(λ)0\operatorname{Re}(\lambda) \leq 0 时)。
      无条件稳定(A-stable)
  • 精度ln+1=O(h2)l_{n+1} = O(h^2) → 1阶精度(推导见Page 22)。

3. 梯形法(隐式)

  • 公式yn+1=yn+h2[f(tn,yn)+f(tn+1,yn+1)]y_{n+1} = y_n + \frac{h}{2} \left[ f(t_n, y_n) + f(t_{n+1}, y_{n+1}) \right]
  • 稳定性(模型问题):
    • yn+1=2+hλ2hλyny_{n+1} = \frac{2 + h\lambda}{2 - h\lambda} y_n,稳定当 Re(hλ)0\operatorname{Re}(h\lambda) \leq 0无条件稳定
  • 精度ln+1=O(h3)l_{n+1} = O(h^3)2阶精度

四、Runge-Kutta(R-K)方法

1. 显式R-K公式

  • 一般形式

    yn+1=yn+hi=1rciki,{k1=f(tn,yn)ki=f(tn+λih,yn+hj=1i1μijkj)y_{n+1} = y_n + h \sum_{i=1}^{r} c_i k_i, \quad \begin{cases} k_1 = f(t_n, y_n) \\ k_i = f\left( t_n + \lambda_i h, y_n + h \sum_{j=1}^{i-1} \mu_{ij} k_j \right) \end{cases}

  • 参数确定:通过泰勒展开匹配精度阶(例:2级R-K见Page 29)。

2. 常用公式

  • 改进欧拉法(2级2阶)

    {k1=f(tn,yn)k2=f(tn+h,yn+hk1)yn+1=yn+h2(k1+k2)\begin{cases} k_1 = f(t_n, y_n) \\ k_2 = f(t_n + h, y_n + h k_1) \\ y_{n+1} = y_n + \frac{h}{2} (k_1 + k_2) \end{cases}

  • 经典4级4阶R-K

    {k1=f(tn,yn)k2=f(tn+h2,yn+h2k1)k3=f(tn+h2,yn+h2k2)k4=f(tn+h,yn+hk3)yn+1=yn+h6(k1+2k2+2k3+k4)\begin{cases} k_1 = f(t_n, y_n) \\ k_2 = f(t_n + \frac{h}{2}, y_n + \frac{h}{2} k_1) \\ k_3 = f(t_n + \frac{h}{2}, y_n + \frac{h}{2} k_2) \\ k_4 = f(t_n + h, y_n + h k_3) \\ y_{n+1} = y_n + \frac{h}{6} (k_1 + 2k_2 + 2k_3 + k_4) \end{cases}

  • 精度与稳定性
    • r级显式R-K最高阶数:r(当 r4r \leq 4 时)。
    • 稳定区域:模型问题下 ϕ(hλ)1|\phi(h\lambda)| \leq 1(例:2阶R-K要求 h2/λh \leq -2/\lambda)。

五、多步法

1. 线性多步法公式

yn+1=i=1mαiyn+1i+hi=0mβif(tn+1i,yn+1i)y_{n+1} = \sum_{i=1}^{m} \alpha_i y_{n+1-i} + h \sum_{i=0}^{m} \beta_i f(t_{n+1-i}, y_{n+1-i})

  • 显式β0=0\beta_0 = 0隐式β00\beta_0 \neq 0

2. 系数确定方法

  • 泰勒展开法
    • y(tn+1)y(t_{n+1})tn+1t_{n+1} 泰勒展开,匹配系数使低阶项为零。
    • 相容性条件(1阶精度):
      αi=1,iαi=βi \sum \alpha_i = 1, \quad \sum i \alpha_i = \sum \beta_i
  • 单项式代入法
    • y(t)=tky(t) = t^kk=0,1,,pk=0,1,\dots,p)代入公式,解方程组。

3. 常用多步法

类型 公式 阶数 稳定阈值
Adams显式 yn+1=yn+h24(55fn59fn1+37fn29fn3)y_{n+1} = y_n + \frac{h}{24} (55f_n - 59f_{n-1} + 37f_{n-2} - 9f_{n-3}) 4 3/10-3/10
Adams隐式 yn+1=yn+h24(9fn+1+19fn5fn1+fn2)y_{n+1} = y_n + \frac{h}{24} (9f_{n+1} + 19f_n - 5f_{n-1} + f_{n-2}) 4 3-3
BDF隐式 yn+1=αiyn+1i+hβ0fn+1y_{n+1} = \sum \alpha_i y_{n+1-i} + h \beta_0 f_{n+1} 变阶 大稳定区域
  • 定理8.4:m步Adams法,显式阶数 mm,隐式阶数 m+1m+1
  • 启动问题:需用单步法计算前 mm 步。

六、稳定性与收敛性

1. 数值稳定性定义(定义8.2)

  • 扰动 δn\delta_n 引起的后续误差 δmδn|\delta_m| \leq |\delta_n|

2. 收敛性条件

  • 单步法:若满足相容性 φ(t,y,0)=f(t,y)\varphi(t,y,0) = f(t,y) 且 Lipschitz 连续,则收敛。
  • 多步法:需满足根条件(特征多项式根 ri1|r_i| \leq 1 且模1根为单根)。

3. 刚性(Stiff)问题

  • 特征:解变化缓慢,但附近解变化快(Re(λk)0\operatorname{Re}(\lambda_k) \ll 0)。
  • 适用方法:隐式法(如向后欧拉、BDF)。

示例:双联摆问题。

[10000100002cos(Δu)00cos(Δu)1]u=[u3u42gsinu1sin(Δu)u42gsinu2+sin(Δu)u32],Δu=u1u2\begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 2 & \cos(\Delta u) \\ 0 & 0 & \cos(\Delta u) & 1 \end{bmatrix} \mathbf{u}' = \begin{bmatrix} u_3 \\ u_4 \\ -2g \sin u_1 - \sin(\Delta u) u_4^2 \\ -g \sin u_2 + \sin(\Delta u) u_3^2 \end{bmatrix}, \quad \Delta u = u_1 - u_2


数值积分的概念
https://xiao-ao-jiang-hu.github.io/2025/06/02/numerical-analysis/numerical-analysis8/
作者
wst
发布于
2025年6月2日
许可协议