本文由手写笔记《高级数值分析》扫描件的 LaTeX 转录稿改写而来,公式以红色保留原稿的红笔重点标记。
3.1 初值问题与离散化
考虑一阶常微分方程初值问题
y′=f(x,y),x0≤x≤b,y(x0)=y0.
其积分形式为
y(x)=y0+∫x0xf(t,y(t))dt.
取 N+1 个节点
a≤x0<x1<⋯<xN≤b,hn=xn+1−xn,
分别记精确解为 y(x0),…,y(xN),数值解为
y0,…,yN。数值格式一般写成
yn+1=g(yn,yn−1,…,yn−k+1,xn,hn).
只含相邻一步未知量的格式称为单步法;含有前面 k 个网格值的格式称为 k 步法。若右端只含已知量,则为显式格式,否则为隐式格式。
3.1.1 局部截断误差与阶
将精确解代入数值格式,定义局部截断误差
Tn+1(h)=y(xn+1)−g(y(xn),y(xn−1),…,y(xn−k+1),xn,hn).
若
Tn+1(h)=O(hp+1),
则称该方法具有 p 阶局部精度(或 p 阶)。
3.2 一致性、稳定性与收敛性
设一步格式写成
yn+1=yn+hΦ(xn,yn,h),
其中 Φ 称为增量函数。若
Φ(x,y,0)=f(x,y),
则称该格式与微分方程相容(或一致)。等价地,一致性可表述为
h→0lim0≤n≤NmaxhTn+1(h)=0.
若存在与 h 无关的常数 K>0 和 h0>0,使任意两组初值所产生的数值解满足
∣yn−yn∣≤K0≤j≤n−1max∣yj−yj∣,0<h≤h0,
则称该格式稳定。收敛性定义为
h→0lim0≤n≤Nmax∣yn−y(xn)∣=0.
在通常的 Lipschitz 条件下,一致性与稳定性蕴含收敛性;若局部截断误差为 O(hp+1),则全局误差为 O(hp)。
3.3 常用单步方法
由积分形式对 [xn,xn+1] 作不同求积近似,可得下列格式。
3.3.1 Euler 方法
向前 Euler 法(显式 Euler 法):
yn+1=yn+hf(xn,yn).
向后 Euler 法(隐式 Euler 法):
yn+1=yn+hf(xn+1,yn+1).
梯形法:
yn+1=yn+2h[f(xn,yn)+f(xn+1,yn+1)].
*改进 Euler 法(Heun 形式)*先作预测
yn+1=yn+hf(xn,yn),
再校正为
yn+1=yn+2h[f(xn,yn)+f(xn+1,yn+1)].
3.4 绝对稳定性
考察测试方程
y′=λy,λ∈C,Reλ<0,y(0)=y0.
将数值格式代入后得到差分方程。对一步法可写成
yn+1=R(z)yn,z=hλ,
其中 R(z) 为稳定函数;对多步法则得到关于增长因子 η 的特征方程。若所有特征根满足 ∣η∣<1(单位圆上的根至多为单根),则称该格式在 z=hλ 处绝对稳定。满足该条件的 z 的集合称为绝对稳定域(边界由 ∣R(z)∣=1 给出)。
3.5 积分型方法
更一般地,可把一步格式写成局部积分公式
yn+1=yn+hΦ(xn,yn,h),
其中 Φ 由对积分
∫xnxn+1f(x,y(x))dx
的数值求积得到。例如左端点、右端点和梯形求积分别给出向前 Euler、向后 Euler 和梯形法。若求积公式对光滑函数的误差为 O(hp+1),则相应微分方程格式具有 p 阶局部精度。
3.6 Runge–Kutta 方法
对积分形式
y(xn+h)−y(xn)=∫xnxn+hf(x,y(x))dx
作求积近似,可得 Runge–Kutta(简称 RK)方法。其一般的显式 m 阶段形式为
yn+1K0Ki=yn+hi=0∑m−1aiKi,=f(xn,yn),=f(xn+cih,yn+hj=0∑i−1bijKj),i=1,…,m−1.
一致性要求
i=0∑m−1ai=1,ci=j=0∑i−1bij.
例如二阶显式 RK(中点格式)为
yn+1K0K1=yn+hK1,=f(xn,yn),=f(xn+2h,yn+2hK0).
RK 方法的系数常用 Butcher 表表示:
c0c1⋮cm−1b00b10⋮bm−1,0a0b11⋮bm−1,1a1⋱⋯⋯bm−1,m−1am−1
(显式方法的对角线及其上方系数为零)。经典四阶 RK 方法的 Butcher 表为
02121102100612103113161
相应计算公式为
yn+1K0K1K2K3=yn+6h(K0+2K1+2K2+K3),=f(xn,yn),=f(xn+2h,yn+2hK0),=f(xn+2h,yn+2hK1),=f(xn+h,yn+hK2).
经典四阶 RK 方法具有四阶精度,并且相容、稳定且收敛。
3.7 线性多步法
3.7.1 一般形式
线性 k 步法的一般形式定义为
yn+k=i=0∑k−1αiyn+i+hi=0∑kβifn+i,fn+i=f(xn+i,yn+i).
其中 αi,βi 为常数。若 βk=0,则格式为显式;若 βk=0,则为隐式。使用 k 步法时,需要先由单步法求出 k−1 个初始值。
将上式写成算子形式,定义第一特征多项式与第二特征多项式
ρ(ξ)=ξk−i=0∑k−1αiξi,σ(ξ)=i=0∑kβiξi.
则线性多步法可记为
ρ(E)yn=hσ(E)fn,
其中 E 为移位算子。
3.7.2 Adams 格式与 BDF 格式
Adams 格式只使用最近的函数值,常写为
yn+k=yn+k−1+hi=0∑kβifn+i.
当右端不含 fn+k 时得到 Adams–Bashforth 显式格式;含有 fn+k 时得到 Adams–Moulton 隐式格式。预测–校正方法(PCE)通常先用 Adams–Bashforth 预测,再用 Adams–Moulton 校正。Milne–Simpson 与 Hamming 方法也是常见的预测–校正格式,但 Milne 与 Simpson 格式的稳定性相对较差。
后向差分格式(backward differentiation formula,BDF)可写为
yn+k=i=0∑k−1αiyn+i+hβkfn+k.
常用的 Gear–BDF 系数如下:
格式BDF1BDF2BDF3BDF4α013411182548α1−1−31−119−2536α21122516α3−253βk1321162512
3.7.3 多步法的性能与 Dahlquist 等价定理
对线性多步法,定义
ρ(ξ)=ξk−i=0∑k−1αiξi,σ(ξ)=i=0∑kβiξi.
由定义,格式一致(相容)的充要条件为
ρ(1)=0,ρ′(1)=σ(1).
零稳定性由根条件刻画:若 ρ(ξ)=0 的全部根满足
∣ξ∣≤1,
且单位圆上的根均为单根,则称该多步法零稳定;否则称其不零稳定。根条件保证舍入误差不会随步数无限放大。
定理 3.1(Dahlquist 等价定理)
在线性多步法的一般假设下,方法收敛当且仅当它一致且零稳定。特别地,一致性与零稳定性共同保证
0≤n≤Nmax∣yn−y(xn)∣⟶0(h→0).
若方法满足根条件,则其对初值扰动和局部误差稳定;若再满足一致性,则由 Dahlquist 等价定理可知方法收敛。通常局部截断误差为 O(hp+1) 时,全局误差为 O(hp)。
3.8 绝对稳定性与刚性问题
对测试方程
y′=λy,
将线性多步格式代入,并记 hˉ=hλ,得到
yn+k=i=0∑k−1αiyn+i+hˉi=0∑kβiyn+i.
若设 yn=ηn,则增长因子满足特征方程
ρ(η)−hˉσ(η)=0,ρ(η)=ηk−i=0∑k−1αiηi,σ(η)=i=0∑kβiηi.
当给定 hˉ∈C 时,若该方程的全部根满足
∣ηi(hˉ)∣≤1,
且单位圆上的根为单根,则称格式在 hˉ 处绝对稳定;所有这类 hˉ 构成绝对稳定域。
以显式 Euler 法为例,格式化为
yn+1=(1+hˉ)yn,
故其绝对稳定条件为
∣1+hˉ∣≤1.
这说明当 λ 为负实数时,步长必须满足 −2≤hλ≤0;复数情形则对应复平面上以 −1 为圆心、半径为 1 的圆盘。
3.9 常微分方程组
一阶常微分方程组可写成
⎩⎨⎧y1′=f1(x,y1,…,ym),y2′=f2(x,y1,…,ym), ⋮ym′=fm(x,y1,…,ym),⟺{y′=f(x,y),y(x0)=y0.
特别地,m 阶方程
y(m)=f(x,y,y′,…,y(m−1))
可令
y1=y,y2=y′,…,ym=y(m−1),
化为
⎩⎨⎧y1′=y2,y2′=y3, ⋮ym−1′=ym,ym′=f(x,y1,…,ym),
初值为
y1(x0)=y0,y2(x0)=y0′,…,ym(x0)=y0(m−1).
3.10 刚性常微分方程
对方程组 y′=f(x,y),记 Jacobi 矩阵
J=∂y∂f.
若 J 的全部特征值满足 Reλi<0,而且不同特征值的衰减尺度相差很大,则称该问题为刚性 ODE。通常用刚性指标
S=mini∣Reλi∣maxi∣Reλi∣
衡量刚性程度。刚性问题的稳定性往往由最大的负特征值限制步长,而解的长期行为又由最小的衰减率决定,因此显式方法可能要求远小于精度所需的步长;此时宜采用隐式 Euler、BDF 等具有较大稳定域的方法。
3.11 积分方程形式与配点法
初值问题的积分形式为
y(x)=y0+∫x0xf(t,y(t))dt.
取基函数 ϕ0,…,ϕm,用
ym(x)=j=0∑majϕj(x)
近似 y(x),定义残量
R(x;a)=ym(x)−y0−∫x0xf(t,ym(t))dt.
在配置点 xk 上令 R(xk;a)=0,得到关于系数 a 的非线性方程组。展开写成
R(xk;a)=j=0∑majϕj(xk)−y0−∫x0xkf(t,j=0∑majϕj(t))dt=0,k=0,…,m.
该方法称为配点法;积分可用数值求积计算。
3.12 Galerkin 方法
Galerkin 方法取试验函数 p0,…,pm,要求残量对每个试验函数正交:
∫x0bpi(x)R(x;a)dx=0,i=0,…,m.
代入残量得到
j=0∑maj∫x0bpi(x)ϕj(x)dx−y0∫x0bpi(x)dx−∫x0bpi(x)∫x0xf(t,j=0∑majϕj(t))dtdx=0.
记
Gij=∫x0bpi(x)ϕj(x)dx,si=∫x0bpi(x)dx,
则在 f 线性或经线性化后可写成矩阵方程
Ga=s;
一般非线性情形则形成关于 a 的非线性方程组,可用 Newton 法等求解。
3.12.0.0.1 残量最小化
还可直接令
amin∥R∥22=amin∫x0b∣R(x;a)∣2dx,∂ai∂∥R∥22=0,
这给出与 Galerkin 正交条件等价的正规方程。对于向量方程组,以上过程逐分量进行,或直接以向量残量
R(x)=ym′(x)−f(x,ym(x))
构造相应的配点、Galerkin 或最小二乘离散系统。