2.2 差分格式
列出几个常用的数值微分公式。
引理 2.2.1
设 h>0 和 c 为常数
- 如果 g(x)∈C2[c−h,c+h],则有
g(c)=12[g(c−h)+g(c+h)]−h22g′′(ξ0),c−h<ξ0<c+h;(2.2.1)
- 如果 g(x)∈C2[c,c+h],则有
g′(c)=1h[g(c+h)−g(c)]−h2g′′(ξ1),c<ξ1<c+h;(2.2.2)
- 如果 g(x)∈C2[c−h,c],则有
g′(c)=1h[g(c)−g(c−h)]+h2g′′(ξ2),c−h<ξ2<c;(2.2.3)
- 如果 g(x)∈C3[c−h,c+h],则有
g′(c)=12h[g(c+h)−g(c−h)]−h26g′′′(ξ3),c−h<ξ3<c+h;(2.2.4)
- 如果 g(x)∈C4[c−h,c+h],则有
g′′(c)=1h2[g(c+h)−2g(c)+g(c−h)]−h212g(4)(ξ4),c−h<ξ4<c+h;(2.2.5)
- 如果 g(x)∈C3[c,c+h],则有
g′′(c)=2h[g(c+h)−g(c)h−g′(c)]−h3g′′′(ξ5),c<ξ3<c+h;(2.2.6)
- 如果 g(x)∈C6[c−h,c+h],则有
112[g′′(c−h)+10g′′(c)+g′′(c+h)]=1h2[g(c+h)−2g(c)+g(c−h)]+h4240g(6)(ξ6),c−h<ξ6<c+h;(2.2.7)
2.2.1 差分格式的建立
(1) 建立差分格式
无特殊说明,均假设所考虑的微分方程定解问题存在具有所需阶数的光滑解。
用有限差分法解两点边值问题的第一步是将求解区间 [a,b] 进行网格剖分。将区间 [a,b] 做 m 等分。
记网格步长
h=(b−a)/m
记网格格点
xi=a+ih,0⩽i⩽m
记网格
Ωh={xi|0⩽i⩽m}
称定义在网格 Ωh 上的函数为网格函数。设 v={vi|0⩽i⩽m} 为 Ωh 上的网格函数,记
δxvi−12=1h(vi−vi−1),δ2xvi=1h(δxvi+12−δxvi−12),D+vi=1h(vi+1−vi),D−vi=1h(vi−vi−1),
现在我们在网格格点上考虑定解问题 (2.1.1) 和 (2.1.2),有
−u′′(xi)+q(xi)u(xi)=f(xi),1⩽i⩽m−1(2.2.8)
u(x0)=α,u(xm)=β(2.2.9)
定义网格函数 U={Ui|Ui=u(xi),0⩽i⩽m},由式 (2.2.5) 可得
u′′(xi)=1h2[u(xi−1)−2u(xi)+u(xi+1)]−h212u(4)(ξi)=δ2xUi−h212u(4)(ξi)xi−1⩽ξi⩽xi
得到
−δ2xUi+q(xi)Ui=f(xi)−h212u(4)(ξi),1⩽i⩽m−1(2.2.10)
U0=α,Um=β(2.2.11)
忽略小量项 −h212u(4)(ξi),有如下近似等式:
−δ2xUi+q(xi)Ui≈f(xi),1⩽i⩽m−1(2.2.12)
U0=α,Um=β(2.2.13)
在上式中用 ui 代替 Ui,并用 = 代替 ≈,可得
−δ2xui+q(xi)ui=f(xi),1⩽i⩽m−1(2.2.14)
u0=α,um=β(2.2.15)
将式 (2.2.14) 和式 (2.2.15) 称为求解问题 (2.1.1) 和 (2.1.2) 的差分格式。建立差分格式的过程称为离散化过程。
(2) 局部截断误差
式 (2.2.14) 和式 (2.2.15) 中共有 m+1 个方程,m+1 个待定量 u0,u1,⋯,um。最后的目标是求出 (u0,u1,⋯,um),然后用求得的 ui 作为 u(xi) 的近似值。
如果我们在 (2.2.14) 式中用精确的 Ui 去代替 ui,则我们只能得到近似等式 (2.2.12),称两边的差为局部截断误差。即下式:
Ri=−δ2xUi+q(xi)Ui−f(xi)
一般来说,Ri 与 h 相关,即 Ri=Ri(h),又由 (2.2.10) 可知
Ri=−h212u(4)(ξi),xi−1<ξi<xi+1
上式表明局部截断误差恰好是建立差分格式时丢掉的小量项,它反映了差分格式 (2.2.14) 对原方程的近似程度。
max1⩽i⩽m−1|Ri|→0,(h→0)
当上式成立时,我们称差分格式 (2.2.14) 和 (2.2.15) 与微分方程 (2.1.1) 和 (2.1.2) 是相容的(相容性)。
差分格式建立后,我们自然会问,差分格式是否存在解(存在性)?差分格式如果存在解,解是否唯一(唯一性)?差分格式的解能否作为微分方程定解问题的近似解(收敛性)?计算过程中的误差对解的影响如何(稳定性)?此外,我们将存在性、唯一性和稳定性统称为适定性。我们可以根据需求在不同的函数空间中提出适当的适定性要求。
2.2.2 差分格式的求解
将式 (2.2.14) 两边同乘以 h2,可得
−1h[1h(ui+1−ui)−1h(ui−ui−1))]×h2+q(xi)uih2=f(xi)h2,1⩽i⩽m−1
进一步得到
−ui−1+[q(xi)h2+2]ui−ui+1=f(xi)h2,1⩽i⩽m−1
对差分格式表示式 (2.2.14) 和式 (2.2.15),用矩阵可重新表示为
⎡⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢⎣10−1q(x1)h2+2−1⋱⋱⋱−1q(xm−1)h2+2−101⎤⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥⎦⎡⎢
⎢
⎢
⎢⎣u0u1⋮um⎤⎥
⎥
⎥
⎥⎦=⎡⎢
⎢
⎢
⎢
⎢
⎢
⎢⎣αh2f(x1)⋮h2f(xm−1)β⎤⎥
⎥
⎥
⎥
⎥
⎥
⎥⎦
上述矩阵为三对角矩阵,可以使用追赶法进行求解。
2.2.3 差分格式解的先验估计式
差分格式解的先验估计式在差分格式的分析中起着关键的作用。
记
Vh={v|v={vi|0⩽i⩽m}为Ωh上的网格函数}
˚Vh={v|v={vi|0⩽i⩽m}为Ωh上的网格函数,且v0=vm=0}
设 v∈Vh,引进如下记号
∥v∥∞=max0⩽i⩽m|vi|
∥v∥=
⎷h(12v20+m−1∑i=1v2i+12v2m)
|v|1=
⎷hm∑i=1(δxvi−12)2
∥v∥1=√∥v∥2+|v|21
则 ∥v∥∞,∥v∥ 和 ∥v∥1 均为 Vh 上的范数,分别成为无穷范数,2 范数和 H1 范数。其中,|v|1 是 Vh 上的半范数,但为 ˚Vh 上的范数,称为差商的 2 范数。
引理 2.2.2
- 设 u={ui|0⩽i⩽m}∈Vh,v={vi|0⩽i⩽m}∈Vh,则有
−hm−1∑i=1(δ2xui)vi=hm∑i=1(δxui−12)(δxvi−12)+D+u0v0−D−umvm(2.2.16)
hm−1∑i=1(−δ2xui)vi=|v|21(2.2.17)
∥v∥∞⩽√b−a2|v|1,∥v∥⩽b−a√6|v|1(2.2.18)
- 设 v∈˚Vh,则对任意 ε>0 有
∥v∥2∞⩽ε|v|21+14ε∥v∥2,(2.2.19)
|v|21⩽4h2∥v∥2(2.2.20)
∥v∥2∞⩽ε|v|21+(1ε+1b−a)∥v∥2(2.2.21)
根据上述引理中给出的不等式,我们估计差分格式的数值解。
定理 2.2.1
设 v={vi|0⩽i⩽m} 为下述差分格式的解
−δ2xvi+q(xi)vi=fi,0⩽i⩽m(2.2.22)
v0=0,vm=0(2.2.23)
则有
|v|1⩽b−a√6∥f∥(2.2.24)
∥v∥∞⩽(b−a)22√6∥f∥∞(2.2.25)
其中,
∥f∥=
⎷hm−1∑i=1f2i,∥f∥∞=max1⩽i⩽m−1|fi|
证明: 将式 (2.2.22) 两边同乘以 hvi,并对 i 求和,得到
hm−1∑i=1(−δ2xvi)vi+hm−1∑i=1q(xi)v2i=hm−1∑i=1fivi,(2.2.26)
由引理 2.2.2 得到
hm−1∑i=1(−δ2xui)vi=|v|21
又 q(x)⩾0,故
hm−1∑i=1q(xi)v2i⩾0
由 Cauchy-Schwarz 不等式,有
hm−1∑i=1fivi⩽
⎷hm−1∑i=1f2i
⎷hm−1∑i=1v2i=∥f∥⋅∥v∥
因此有
∥v∥21⩽∥f∥⋅∥v∥⩽∥f∥⋅b−a√6|v|1
得到
|v|1⩽b−a√6∥f∥
此外,根据引理 2.2.2 中第三点可以得到
∥v∥∞⩽√b−a2|v|1⩽√b−a2b−a√6∥f∥⩽(b−a)22√6∥f∥∞
证毕。
2.2.4 差分格式解的存在唯一性
我们给出差分格式解的存在唯一性定理。
定理 2.2.2
差分格式 (2.2.14) 与 (2.2.15) 的解是存在唯一的。
证明:考虑差分格式 (2.2.14) 与 (2.2.15)
−δ2xui+q(xi)ui=f(xi),1⩽i⩽m−1
u0=α,um=β
本质是个线性方程组,且该线性方程组的未知数个数等于方程个数等于 m−1,因此只要证明系数矩阵可逆或者证明相应的齐次线性方程组只有零解。
令上式的 f(xi)=0,α=0,β=0,此时线性方程组右端项为零,由差分解的先验估计式定理 2.2.1 得 ∥u∥∞=0,因此齐次线性方程组只有零解,差分格式解存在唯一。
2.2.5 差分格式解的收敛性和稳定性
根据解的先验估计式给出关于差分格式解的收敛性和稳定性一些解释。
(1) 收敛性
定理 2.2.3
设 {u(x)|a⩽x⩽b} 为定解问题 (2.1.1) 和 (2.2.2)的解,{ui|0⩽i⩽m} 为差分格式 (2.1.14) 和 (2.1.15) 的解,记
ei=u(xi)−ui,0⩽i⩽m
则有
∥e∥∞⩽M4(b−a)224√6h2,M4=maxa⩽x⩽b|u(4)(x)|
证明:
将式 (2.2.10),(2.2.11) 与式 (2.2.14),(2.2.15) 相减得误差方程
−δ2xei+q(xi)ei=Ri,1⩽i⩽m−1
e0=0,em=0
由差分格式先验估计式定理 2.2.1 得
∥e∥∞⩽(b−a)22√6∥Ri∥∞⩽(b−a)22√6h212maxa⩽x⩽b|u(4)(x)|⩽(b−a)2h224√6M4
证毕。
定义 2.2.1
如果 ∥e∥∞=O(hp),则称差分格式在范数 ∥⋅∥ 下是 p 阶收敛的。
由定义知,差分格式 (2.2.14),(2.2.15) 在无穷范数 ∥⋅∥∞ 下是二阶收敛的。
(2) 稳定性
实际计算中,误差不可避免。例如计算 f(xi) 时可能会有一个小的误差 gi,考虑差分格式如下:
−δ2xvi+q(xi)vi=f(xi)+gi,1⩽i⩽m−1(2.2.27)
v0=α,vm=β(2.2.28)
设 v=(v0,v1,⋯,vm) 为上述差分方程的解。
记
εi=vi−ui,0⩽i⩽m
将式 (2.2.27),(2.2.28) 与式 (2.2.14),(2.2.15) 相减,得
−δ2xεi+q(xi)εi=gi,1⩽i⩽m−1(2.2.29)
ε0=0,εm=0(2.2.30)
称式 (2.2.29),(2.2.30) 为摄动方程。它的形式与式 (2.2.14),(2.2.15) 类似。由差分格式先验估计式定理 2.2.1,有
∥ε∥∞⩽(b−a)22√6max1⩽i⩽m−1|gi|
由上式可以看出当右端项很小时,∥ε∥∞ 也很小。由此归纳为如下定理:
定理 2.2.4
差分格式 (2.2.14),(2.2.15) 在下述意义下对右端函数是稳定的:给定差分格式
−δ2xui+q(xi)ui=fi,1⩽i⩽m−1
u0=0,um=0
记 {ui|0⩽i⩽m} 为上述差分格式的解,则有
∥u∥∞⩽(b−a)22√6max1⩽i⩽m−1|fi|
2.2.6 Richardson 外推法
(1) 示例
设未知量 p 的一个近似式为 p0(h),当 h→0 时,若 p0(h) 与 p 之间的存在如下关系
p0(h)=p+αh2+O(h4)(2.2.31)
其中 α 为与 h 无关的非零常数,称上式为 p0(h) 的一个渐进展开式。
p0(h)−p=αh2+O(h4)
称上式 p0(h) 为 p 的二阶近似值。
在式 (2.2.31) 中用 h/2 代替 h,得到
p0(h2)=p+α(h2)2+O((h2)4)(2.2.32)
可见 p0(h/2) 也是 p 的一个二阶近似值。现在用 4/3 乘以式 (2.2.32) 得到的式子减去 1/3 乘以式 (2.2.31) 得到的式子,可得
43p0(h2)−13p0(h)=p+O(h4)(2.2.33)
取 p1(h) 作为 p 的又一近似值,可见它比 p0(h/2) 和 p0(h) 具有更高的误差项。
我们把 (2.2.33) 称为 Richardson 外推公式,而把这种从低精度的近似值 p0(h) 和 p0(h/2) 经过线性组合得到高精度近似值的方法称为 Richardson 外推法。
(2) 差分方法中的外推法
在差分方法中,外推法也是有效的。记 h 为步长,所得差分格式 (2.2.14) 和 (2.2.15) 的解为 ui(h),0⩽i⩽m,我们有下述定理。
定理 2.2.5
给定两点边值问题
−w′′(x)+q(x)w(x)=112u(4)(x),a<x<b(2.2.34)
w(x)=0,w(b)=0(2.2.35)
设上述问题具有光滑解 u(x),则
max0⩽i⩽m∣∣∣u(xi)−[43u2i(h2)−13ui(h)]∣∣∣=O(h4)
其中,h 为步长,xi=a+ih。
2.2.7 紧差分格式
(1) 紧差分格式的构造
考虑函数 u(x+h) 的展开
u(x+h)=u(x)+u′(x)h+u′′(x)2h2+u′′′(x)6h3+⋯
记 D 为微分算子,上式可形式写成
u(x+h)=ehDu(x)
由此可得
u(x+h)−2u(x)+u(x−h)h2=ehD−2+e−hDh2u(x)=2(D22!+h2D44!+h4D66!+⋯)u(x)=u′′(x)+h212u(4)(x)+h4360u(6)+⋯
从而得
u′′(x)=u(x+h)−2u(x)+u(x−h)h2−h212u(4)(x)−h4360u(6)−⋯=δ2xu(xi)−h212u(4)(xi)−h4360u(6)(xi)+O(h6)
对上式两边求导可得
u(4)(xi)=δ2xu′′(xi)−h212u(6)(xi)+O(h4)
由以上两式得到
112[u′′(xi−1)+10u′′(xi)+u′′(xi+1)]=δ2xu(xi)+h4240u(6)(xi)+O(h6)
设 w={wi|0⩽i⩽m}∈Vh,定义算子
Awi=⎧⎨⎩112(wi−1+10wi+wi+1),i=1,⋯,m−1wi,i=0,m
在节点 xi 处考虑微分方程
−u′′(xi)+q(xi)u(xi)=f(xi),i=1,⋯,m−1
用算子 A 作用到上式,得
−Au′′(xi)+A[q(xi)u(xi)]=Af(xi),1⩽i⩽m−1
由于
Au′′(xi)=δ2xu(xi)+h4240u(6)(xi)+O(h6)
因此有
−δ2xUi+A[q(xi)Ui]=Af(xi)+h4240u(6)(xi)+O(h6),1⩽i⩽m−1
忽略小量项得到
−δ2xUi+A[q(xi)Ui]≈Af(xi)
用 ui 代替 Ui,结合边界条件,得到如下差分格式
−δ2xui+Aq(xi)ui=Af(xi),i=1,⋯,m−1(2.2.36)
u0=α,um=β(2.2.37)
可以证明差分格式 (2.2.36),(2.2.37) 是唯一可解的,并且上述差分格式在无穷范数下是四阶收敛的且是稳定的。
用 xi−1,xi,xi+1 三点所构造的差分格式中差分格式 (2.2.36),(2.2.37) 的精度达到最高阶 O(h4),称其为紧差分格式。
(2) 紧差分格式的求解
对式 (2.2.36) 进行算子展开,得到
−ui−1−2ui+ui+1h2+112[q(xi−1)ui−1+10q(xi)ui+q(xi+1)ui+1]=112[f(xi−1)+10f(xi)+f(xi+1)]
关于 ui 进行系数合并
(−1+h212q(xi−1))ui−1+(2+10h212q(xi))ui+(−1+h212q(xi+1))ui+1=h212[f(xi−1)+10f(xi)+f(xi+1)],i=1,⋯,m−1
根据上式以及边界条件可把差分格式写成线性方程组,与之前线性方程组方程形式一致,仍然采用追赶法求解。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现