5.2 显式差分格式
5.2.1 差分格式的建立
为了用差分方法求解 (5.1.1)∼(5.1.3),考虑求解区域
Ω={(x,t)|0⩽x⩽1,0<t⩽T}
我们先将求解区域 Ω 进行剖分。取正整数 m 和 n,并记 xi=ih,0⩽i⩽m,同时 tk=kτ,0⩽k⩽n。其中,h=1/m 和 τ=1/n,分别称 h 和 τ 为空间步长和时间步长。
用两簇平行直线
x=xi,0⩽i⩽m
t=tk,0⩽k⩽n
可将 Ω 分割成矩形网格。记 Ωh={xi|0⩽i⩽m},Ωτ={tk|0⩽k⩽n},Ωhτ=Ωh×Ωτ。称 (xi,tk) 为结点,称在 t=tk 上的结点 {(xi,tk)|0⩽i⩽m} 为第 k 层结点。对于定义在 Ωhτ 上的网格函数
v={vki|0⩽i⩽m,0⩽k⩽n}
采用 4.2 节中的记号。此外,我们记
δ2t=1τ2(vk+1i−2vki+vk−1i)
定义在 Ωhτ 上的网格函数
U={Uki|0⩽i⩽m,0⩽k⩽n}
其中 Uki 为
Uki=u(xi,tk),0⩽i⩽m,0⩽k⩽n
在结点 (xi,tk) 上考虑定解问题 (5.1.1),有
∂2u(xi,tk)∂t2−a2∂2u(xi,tk)∂x2=f(xi,tk),1⩽i⩽m−1,1⩽k⩽n−1(5.2.1)
将
∂2u(xi,tk)∂x2=u(xi−1,tk)−2u(xi,tk)+u(xi+1,tk)h2−h212∂4u(ξik,tk)∂x4=δ2xUki−h212∂4u(ξik,tk)∂x4,xi−1<ξik<xi+1(5.2.2)
和
∂2u(xi,tk)∂t2=u(xi,tk−1)−2u(xi,tk)+u(xi,tk+1)τ2−τ212∂4u(xi,ηik)∂t4=δ2tUki−τ212∂4u(xi,ηik)∂t4,tk−1<ηik<tk+1(5.2.3)
代入式 (5.2.1) 可得
δ2tUki−a2δ2xUki=f(xi,tk)+τ212∂4u(xi,ηik)∂t4−a2h212∂4u(ξik,tk)∂x4,1⩽i⩽m−1,1⩽k⩽n−1(5.2.4)
由初值条件 (5.1.2),我们有
U0i=φ(xi),1⩽i⩽m−1(5.2.5)
由方程 (5.1.1) 可知(貌似需要函数 f 连续)
∂2u(x,0)∂t2=a2∂2u(x,0)∂x2+f(x,0)=a2φ′′(x)+f(x,0)
根据带积分余项的 Taylor 展开式以及 (5.1.2) 可得
U1i=u(xi,t0)+τ∂u(xi,t0)∂t+12τ2∂2u(xi,t0)∂t2+12∫τ0(τ−t)2∂3u(xi,t)∂t3dt=φ(xi)+τψ(xi)+12τ2[a2φ′′(xi)+f(xi,t0)]+12∫τ0(τ−t)2∂3u(xi,t)∂t3dt,1⩽i⩽m−1(5.2.6)
由边值条件 (5.1.3) 有
Uk0=α(tk),Ukm=β(tk),0⩽k⩽n(5.2.7)
在式 (5.2.4)∼(5.2.7) 中略去小量项
R(1)ik=τ212∂4u(xi,ηik)∂t4−a2h212∂4u(ξik,tk)∂x4,1⩽i⩽m−1,1⩽k⩽n−1(5.2.8)
和小量项
r(1)i=12∫τ0(τ−t)2∂3u(xi,t)∂t3dt,1⩽i⩽m−1(5.2.9)
并用 uki 代替 u(xi,tk),可对问题 (5.1.1)∼(5.1.3) 建立如下差分格式:
δ2tuki−a2δ2xuki=f(xi,tk),1⩽i⩽m−1,1⩽k⩽n−1(5.2.10)
u0i=φ(xi),1⩽i⩽m−1(5.2.11)
u1i=φ(xi)+τψ(xi)+τ22[a2φ′′(xi)+f(xi,t0)],1⩽i⩽m−1(5.2.12)
uk0=α(tk),ukm=β(tk),0⩽k⩽n(5.2.13)
差分格式 (5.2.10)∼(5.2.13) 的结点图见下图,它是一个三层五点显式差分格式。
注意,我们可以
5.2.2 差分格式的求解
我们记
uk=(uk0,uk1,⋯,ukm)
则由 (5.2.11)∼(5.2.13) 可知 u0 和 u1 已完全确定,现设 uk−1 和 uk 是确定的。令 s 为步长比,定义如下:
s=aτh
则由式子 (5.2.10) 可得
uk+1i=s2uki−1+2(1−s2)uki+s2uki+1−uk−1i+τ2f(xi,tk),1⩽i⩽m−1
由此可将式 (4.2.10) 进一步写成如下矩阵形式:
⎡⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢⎣uk+11uk+12⋮uk+1m−2uk+1m−1⎤⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥⎦=⎡⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢⎣2(1−s2)s2s22(1−s2)s2⋱⋱⋱s22(1−s2)s2s22(1−s2)⎤⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥⎦⎡⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢⎣uk1uk2⋮ukm−2ukm−1⎤⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥⎦−⎡⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢⎣uk−11uk−12⋮uk−1m−2uk−1m−1⎤⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥⎦+⎡⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢⎣τ2f(x1,tk)+s2uk0τ2f(x2,tk)⋮τ2f(xm−2,tk)τ2f(xm−1,tk)+s2ukm⎤⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥⎦,1⩽k⩽n−1
5.2.3 差分格式解的先验估计式
下述定理给出了差分格式解的先验估计式。
定理 5.2.1
考虑如下差分方程组
δ2tuki−a2δ2xuki=fki,1⩽i⩽m−1,1⩽k⩽n−1(5.2.14)
u0i=φi,1⩽i⩽m−1(5.2.15)
u1i=ψi,1⩽i⩽m−1(5.2.16)
uk0=0,ukm=0,0⩽k⩽n(5.2.17)
设 {uki} 为上述差分方程组的解,则当 s<1 时,有
(1−s2)hm−1∑i=1(δtuk+1i)2+a2|uk+12|21⩽e32kτ[hm−1∑i=1(δtu12i)2+a2hm−1∑i=0(δxu1i+12)⋅(δxu0i+12)+3τ2(1−s2)k∑l=1∥gl∥2],0⩽k⩽n−1(5.2.18)
其中
∥gk∥2=hm−1∑i=1(gki)2
证明:
证毕。
5.2.4 差分格式解的存在性与唯一性
5.2.5 差分格式解的收敛性与稳定性
【推荐】国内首个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,普通电脑可用
· 按钮权限的设计及实现