3.2 五点差分格式
3.2.1 五点差分格式的建立
(1) 建立差分格式
将区间 [a,b] 做 m 等分,记
h1=b−am,xi=a+ih1,i=0,⋯,m
将区间 [c,d] 做 n 等分,记
h2=d−cn,yj=c+jh2,j=0,⋯,n
称 h1 为 x 方向步长,h2 为 y 方向步长。用两簇平行线 x=xi 与 y=yj 将区域 Ω 剖分为 mn 个小矩形,称两簇直线的交点 (xi,yj) 为网格结点。
所有结点构成集合
Ωh={(xi,yj)|0⩽i⩽m,0⩽j⩽n}
所有内结点构成集合
˚Ωh={(xi,yj)|1⩽i⩽m−1,1⩽j⩽n−1}
所有边界结点构成集合
Γh=Ωh∖˚Ωh
为方便记
ω={(i,j)|(xi,yj)∈˚Ωh},γ={(i,j)|(xi,yj)∈Γh},
记
Sh={v|v={vij|∀i,∀j}为Ωh上的网格函数}
设 v={vij|0⩽i⩽m,0⩽j⩽n}∈Sh,引进如下记号:
Dxvij=1h1(vi+1,j−vij),D¯xvij=1h1(vij−vi−1,j),
Dyvij=1h2(vi,j+1−vij),D¯yvij=1h2(vij−vi,j−1),
δ2xvij=1h1(Dxvij−D¯xvij),δ2yvij=1h2(Dyvij−D¯yvij)
∥v∥∞=max∀i,j|vij|
在结点处考虑边值问题 (3.1.1),(3.1.2) 有
−[∂2u∂x2(xi,yj)+∂2u∂y2(xi,yj)]=f(xi,yj),(i,j)∈ω(3.2.1)
u(xi,yj)=φ(xi,yj),(i,j)∈γ(3.2.2)
定义 Ωh 上的网格函数
U={Uij|0⩽i⩽m,0⩽j⩽n},Uij=u(xi,yj)
二阶导数用二阶中心差商来近似,由 引理 2.2.1 可知
∂2u∂x2(xi,yj)=1h21[u(xi−1,yj)−2u(xi,yj)+u(xi+1,yj)]−h2112∂4u∂x4(ξij,yj)=δ2xUij−h2112∂4u∂x4(ξij,yj),xi−1<ξij<xi+1
∂2u∂y2(xi,yj)=1h22[u(xi,yj−1)−2u(xi,yj)+u(xi,yj+1)]−h2212∂4u∂y4(xi,ηij)=δ2yUij−h2212∂4u∂y4(xi,ηij),yj−1<ηij<yj+1
代入式 (3.2.1),可得
−(δ2xUij+δ2yUij)=f(xi,yj)−h2112∂4u∂x4(ξij,yj)−h2212∂4u∂y4(xi,ηij),(i,j)∈ω(3.2.3)
Uij=φ(xi,yj),(i,j)∈γ(3.2.4)
在上式中略去小量项
Rij=−h2112∂4u∂x4(ξij,yj)−h2212∂4u∂y4(xi,ηij)(3.2.5)
用 uij 代替 Uij 得到如下差分格式
−(δ2xuij+δ2yuij)=f(xi,yj),(i,j)∈ω(3.2.6)
uij=φ(xi,yj),(i,j)∈γ(3.2.7)
(2) 局部截断误差
称 Rij 为差分格式 (3.2.5) 的局部截断误差,它表示为差分格式 (3.2.5) 用精确解代替近似解后等式两边之差,即
Rij=−1h21[u(xi−1,yj)−2u(xi,yj)+u(xi+1,yj)]−1h22[u(xi,yj−1)−2u(xi,yj)+u(xi,yj+1)]−f(xi,yj)
记
M4=max{max(x,y)∈¯Ω∣∣∣∂4u∂x4(x,y)∣∣∣,max(x,y)∈¯Ω∣∣∣∂4u∂y4(x,y)∣∣∣}(3.2.8)
则有
|Rij|⩽(h21+h22)12M4,1⩽i⩽m−1,1⩽j⩽n−1(3.2.9)
局部截断误差可以反映差分格式对原方程的近似程度,由上式显然可知当 M4<∞ 时,差分格式 (3.2.5) 与微分方程 (3.1.1) 是相容的。
3.2.2 差分格式的求解
差分格式 (3.2.6),(3.2.7) 是以 (uij) 可视为未知量的线性方程组,式 (3.2.6) 可改写为
−1h22ui,j−1−1h21ui−1,j+2(1h21+1h22)uij−1h21ui+1,j−1h22ui,j+1=f(xi,yj),(i,j)∈ω(3.2.10)
我们考虑将原始的差分格式写成两种形式:线性方程组与矩阵方程。
(1) 线性方程组形式
记
uj=⎡⎢
⎢
⎢
⎢
⎢⎣u1ju2j⋮um−1,j⎤⎥
⎥
⎥
⎥
⎥⎦,0⩽j⩽n
利用式 (3.2.7) 可将式 (3.2.10) 改写为
Duj−1+Cuj+Duj+1=fj,1⩽j⩽n−1(3.2.11)
其中,
C=⎡⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢⎣2(1h21+1h22)−1h21−1h212(1h21+1h22)−1h21⋱⋱⋱−1h212(1h21+1h22)−1h21−1h212(1h21+1h22)⎤⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥⎦
D=⎡⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢⎣−1h22−1h22⋱−1h22−1h22⎤⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥⎦,fj=⎡⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢⎣f(x1,yj)+1h21φ(x0,yj)f(x2,yj)⋮f(xm−2,yj)f(xm−1,yj)+1h21φ(xm,yj)⎤⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥⎦
将式 (3.2.11) 进一步改写成
⎡⎢
⎢
⎢
⎢
⎢
⎢
⎢⎣CDDCD⋱⋱⋱DCDDC⎤⎥
⎥
⎥
⎥
⎥
⎥
⎥⎦⎡⎢
⎢
⎢
⎢
⎢
⎢
⎢⎣u1u2⋮un−2un−1⎤⎥
⎥
⎥
⎥
⎥
⎥
⎥⎦=⎡⎢
⎢
⎢
⎢
⎢
⎢
⎢⎣f1−Du0f2⋮fn−2fn−1−Dun⎤⎥
⎥
⎥
⎥
⎥
⎥
⎥⎦(3.2.12)
上述线性方程组的系数矩阵是一个三对角块矩阵,每一行至多有 5 个非零元素,通常称这种绝大多数元素为 0 的矩阵为稀疏矩阵。常用迭代法求解以大型稀疏矩阵为系数矩阵的线性方程组。
(2) 矩阵方程形式
可以将式 (3.2.6) 写成
1h21[−12−1]⎡⎢⎣ui−1,juijui+1,j⎤⎥⎦+1h22[ui,j−1uijui,j+1]⎡⎢⎣−12−1⎤⎥⎦=f(xi,yj)
进一步写成
1h21Am−1X+1h22XAn−1=f+1h21uub+1h22ulr(3.2.13)
其中,
Ak=⎡⎢
⎢
⎢
⎢
⎢
⎢
⎢⎣2−1−12−1⋱⋱⋱−12−1−12⎤⎥
⎥
⎥
⎥
⎥
⎥
⎥⎦k×kX=⎡⎢
⎢
⎢
⎢
⎢⎣u11u12⋯u1,n−1u21u22⋯u2,n−1⋮⋮⋱⋮um−1,1um−1,2⋯um−1,n−1⎤⎥
⎥
⎥
⎥
⎥⎦
ulr=⎡⎢
⎢
⎢
⎢
⎢⎣u100⋯0u1,nu200⋯0u2,n⋮⋮⋱⋮⋮um−1,00⋯0um−1,n⎤⎥
⎥
⎥
⎥
⎥⎦,uub=⎡⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢⎣u01u02⋯u0,n−100⋯0⋮⋮⋱⋮00⋯0um1um2⋯um,n−1⎤⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥⎦
f=⎡⎢
⎢
⎢
⎢
⎢⎣f11f12⋯f1,n−1f21f22⋯f2,n−1⋮⋮⋱⋮fm−1,1fm−1,2⋯fm−1,n−1⎤⎥
⎥
⎥
⎥
⎥⎦,fij=f(xi,yj)
式 (3.2.13) 可写成矩阵方程形式
AX+XB=C(3.2.14)
A=1h21Am−1,B=1h22An−1,C=f+1h21uub+1h22ulr
(3) 性质
记式 (3.2.12) 的系数矩阵为 G,即
G=⎡⎢
⎢
⎢
⎢
⎢
⎢
⎢⎣CDDCD⋱⋱⋱DCDDC⎤⎥
⎥
⎥
⎥
⎥
⎥
⎥⎦
我们可以发现,线性方程组与矩阵方程是等价的,它们之间具体的关系可用下述定理描述。
定理 3.2.1
对式 (3.2.11) 有
AX+XB=C⟺[Kron(I,A)+Kron(BT,I)]vec(X)=vec(C)
其中第一个单位矩阵的阶数等于矩阵 X 的列数;第二个单位矩阵的阶数等于矩阵 X 的行数。vec 表示将矩阵用列拉直的方式变为列向量。Kron 为两矩阵的 kronecker 积。
表示为线性方程组时,可以发现系数矩阵不仅是一个稀疏矩阵,还具有良好的代数性质。
定理 3.2.2
式 (3.2.9) 的系数矩阵 G 为对称正定矩阵。
证明:系数矩阵 G 显然是一个对称矩阵。只需再证明该矩阵正定。
证毕。
(4) 求解的数值算法
由 (3.2.9) 的线性方程组形式可以看出,该线性方程组的系数矩阵是一个三对角块矩阵,每一行至多有 5 个非零元素,通常称这种绝大多数元素为零的矩阵为稀疏矩阵。常用迭代法求解以大型稀疏矩阵为系数矩阵的线性方程组。
- Jacobi 迭代法 对 k=0,1,2,⋯,计算
u(k+1)ij=[f(xi,yj)+1h22u(k)i,j−1+1h21u(k)i−1,j+1h21u(k)i+1,j+1h22u(k)i,j+1]/[2(1h21+1h22)],i=1,⋯,m−1,j=1,⋯,n−1
- Gauss-Seidel 迭代法 对 k=0,1,2,⋯,计算
u(k+1)ij=[f(xi,yj)+1h22u(k+1)i,j−1+1h21u(k+1)i−1,j+1h21u(k)i+1,j+1h22u(k)i,j+1]/[2(1h21+1h22)],i=1,⋯,m−1,j=1,⋯,n−1
3.2.3 差分格式解的先验估计式
我们可以应用极值原理来给出差分方程组的解的先验估计式。
设 u={uij|0⩽i⩽m,0⩽j⩽n} 为 Ωh 上的网格函数,简记
(Lhu)ij=−(δ2xuij+δ2yuij),(i,j)∈ω
定理 3.2.3
设 u={uij|0⩽i⩽m,0⩽j⩽n} 为 Ωh 上的网格函数,如果我们有如下式子成立
(Lhu)ij⩽0,(i,j)∈ω
则我们有
max(i,j)∈wuij⩽max(i,j)∈γuij
证明:用反证法。设
max(i,j)∈wuij>max(i,j)∈γuij
令 max(i,j)∈wuij=M,则一定存在 (i0,j0)∈ω 使得 ui0,j0=M,且 ui0−1,j0、ui0+1,j0、ui0,j0−1、ui0,j0+1 中至少有一个值小于 M。
因此我们可得
(Lhu)i0,j0=2(1h21+1h22)ui0,j0−1h21(ui0−1,j0+ui0+1,j0)−1h22(ui0,j0−1+ui0,j0+1)>2(1h21+1h22)M−1h21(M+M)−1h22(M+M)=0
与条件矛盾。
证毕。
下面利用上述的极值原理给出差分格式解的先验估计式。
定理 3.2.4
给定差分方程组
−(δ2xuij+δ2yuij)=fij,(i,j)∈ω
uij=φij,(i,j)∈γ
设 {uij} 为上述差分方程组的解,则有
max(i,j)∈ω|uij|⩽max(i,j)∈γ|φij|+14[(b−a2)2+(d−c2)2]max(i,j)∈ω|fij|
上式中 (b−a2)2+(d−c2)2 为 Ω 的外接圆半径的平方。
证明:我们记
C=max(i,j)∈ω|fij|
证毕。
3.2.4 差分格式解的存在性与唯一性
定理 3.2.5
差分格式 (3.2.6)∼(3.2.7) 的解存在且唯一。
证明:由于差分格式 (3.2.6) 与 (3.2.7) 是线性的,考虑其齐次方程组
−(δ2xuij+δ2yuij)=0,(i,j)∈ω(3.2.15)
uij=0,(i,j)∈γ(3.2.16)
设 ∥u∥∞=M>0,则由 (3.2.16) 知,存在 (i,j)∈ω 使得 |ui0,j0|=M,且 |ui0−1,j0|、|ui0+1,j0|、|ui0,j0−1|、|ui0,j0+1| 中至少有一个小于 M,考虑式 (3.2.15) 中 (i,j)=(i0,j0) 的等式,有
(2h21+2h22)ui0,j0=1h21(ui0−1,j0+ui0+1,j0)+1h22(ui0,j0−1+ui0,j0+1)
将上式两边取绝对值可得
(2h21+2h22)M⩽1h21(|ui0−1,j0|+|ui0+1,j0|)+1h22(|ui0,j0−1|+|ui0,j0+1|)<(2h21+2h22)M
矛盾。故 M=0,因而差分格式的解是存在且唯一的。
证毕。
3.2.5 差分格式解的收敛性与稳定性
(1) 收敛性
给出差分格式的收敛性相关的定理。
定理 3.2.6
设 {u(x,y)|a⩽x⩽b,c⩽y⩽d} 是定解问题 (3.1.1) 和 (3.1.2) 的解,{uij|0⩽i⩽m,0⩽j⩽n} 为差分格式 (3.2.5) 和 (3.2.6) 的解,则有
max(i,j)∈ω∣∣u(xi,yj)−uij∣∣⩽M448[(b−a2)2+(d−c2)2](h21+h22)
其中 M4 由式 (3.2.8) 定义。
证明:我们记
eij=u(xi,yj)−uij,(i,j)∈ω∪γ
将式 (3.2.3)、(3.2.4) 分别与式 (3.2.6)、(3.2.7) 相减,得误差方程为
−(δ2xeij+δ2yeij)=Rij,(i,j)∈ω(3.2.17)
eij=0,(i,j)∈γ(3.2.18)
其中 Rij 由式 (3.2.5) 定义,由式 (3.2.9) 可知,有
max(i,j)∈ω|Rij|⩽M412(h21+h22)
应用定理 3.2.4 可得
max(i,j)∈ω|eij|⩽14[(b−a2)2+(d−c2)2]max(i,j)∈ω|Rij|⩽M448[(b−a2)2+(d−c2)2](h21+h22)
证毕。
(2) 稳定性
假设在应用差分格式 (3.2.6) 和 (3.2.7) 时,计算右端函数 f(xi,yj) 有误差 fij,计算边界值有误差 φij,考虑如下差分格式
−(δ2xvij+δ2yvij)=f(xi,yj)+fij,(i,j)∈ω(3.2.19)
vij=φ(xi,yj)+φij,(i,j)∈γ(3.2.20)
设 {vij} 为上述差分格式的解,我们记
εij=vij−uij,(i,j)∈ω∪γ
将式 (3.2.19)、(3.2.20) 与式 (3.2.6)、(3.2.7) 相减,得到
−(δ2xεij+δ2yεij)=fij,(i,j)∈ω(3.2.21)
εij=φij,(i,j)∈γ(3.2.22)
应用定理 3.2.4 可得
max(i,j)∈ω|εij|⩽max(i,j)∈γ|φij|+14[(b−a2)2+(d−c2)2]max(i,j)∈ω|fij|
由上式可知,当 |φij| 和 |fij| 是小量时,max(i,j)∈ω|εij| 也为小量。此时我们称差分格式 (3.2.6)、(3.2.7) 关于边界值和右端函数是稳定的。
同时我们称得到的式 (3.2.21)、(3.2.22) 为摄动误差方程组,可见它的形式与差分格式 (3.2.6)、(3.2.7) 是一样的,综合以上,我们可以得到如下定理。
定理 3.2.7
差分格式 (3.2.6)、(3.2.7) 在下述意义下关于边界值和右端函数是稳定的,设 {uij} 为
−(δ2xuij+δ2yuij)=fij,(i,j)∈ω
uij=φij,(i,j)∈γ
的解,则有
max(i,j)∈ω|uij|⩽max(i,j)∈γ|φij|+14[(b−a2)2+(d−c2)2]max(i,j)∈ω|fij|
证明:见上段关于摄动误差方程组的叙述。
证毕。
3.2.6 Richardson 外推法(待定,不知道是否该写这节)
??
【推荐】国内首个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,普通电脑可用
· 按钮权限的设计及实现