2差分格式的构造
§2. 差分格式的构造 1.
差分格式
对于描述流体流动的微分方程定解问题,用差分来近似方程及定解条件中的导数,就可以构造出该定解问题的差分格式。
【例】波动方程初边值定解问题
2ìï抖uï=ï2ï抖tïïïïïïïu(a,t)=ïïïïíïïïu(x,0)=ïïïïïïïï¶uï=ïïïî¶tt=0
2
c
2
u
, a#x2x
b , t 0
ga(t) , u(b,t)=gb(t) , t>0
ϕ0(x) , a
(注)根据特征线理论,边值函数 gat 和 gbt 依赖于初始条件,不能随便给,否则会与初始条件矛盾,导致问题无解,这在数学上叫做定解条件的相容性。这里假定上面所给的定解条件是相容的。
计算区域的离散化:假设求解到 t=T 时刻,则问题的求解区域为
()
()
a#xb ,0#tT 。为了进行差分近似,取定自然数 M(作为空
间网格的数目)和 N(作为时间网格的数目),空间 x 方向的步长取为
Dx=
b-aM ,时间 t 方向的步长取为 Dt=T
N
,记 tn=nDt ,
(n=,2,1,0,LN) xj=a+jDx ,(j=,2,1,0,
LM)
求解区域里像 (xj,tn)
这样的点称作网格点。
定解问题的离散化:在网格点 (xnj,t)
处列出方程
抖2
u
n
2
n
2
u
抖t2
=c
j
x2 j
对方程中的二阶时间导数和二阶空间导数,都采用中心差分近似,即¶2
un
(x+1j,tn)-2u(xnj,t)+u(
xj,tn-1
)禗t2
=
u+O(Dt2
)
j
t2
¶2
un
u(xnj+1,t)-2u(xj,tn)+u(
xj-1,tn
)禗x2
=
x2
+O(Dx2
)
j
代入原方程,就有
u(xj,tn+1)-2u(xj,tn)+u(
xn-1
j,t)Dt2
+O(Dt
2
)
=c
2
u(xj+1,tn)-2u(xnn
j,t)+u(
xj-1,t)
Dt2
+O(Dx
2
)
略去误差项,得
uxj,tn+1-2uxj,tn+uxj,tn-1
Dt2
»c
()()())
nnn
ux,t-2ux,t+ux,tj+1jj-12
()()(
Dx2
n
用 un 表示 的近似解(j=0,1,2,L,M ,n=0,1,2,L,N),ux,tjj
()
我们希望这一近似解能够使上述近似表达式还原成精确成立的等式(这样才能确切地使用它),也就是要求 un 满足 j
+1nn-1
un-2u+ujjj
nnn
u-2u+ujj-12j+1
Dt
2
=c
Dx
2
此式是一个差分方程,称为原方程的差分近似。
(注)因为是在网格点 xj,tn 处列出的方程,所以在近似时间导数时,空间自变量 x 的取值固定在 x=xj 处,而在近似空间导数时,时间自变量 t 的取值固定在 t=tn 时刻。
上述导出差分方程的过程比较繁琐,但我们可以把这一过程总结为: “用近似解的差分表达式代替原方程中的(偏)导数,得到其差分近似”。
对定解条件中的一阶时间导数,在网格点 xj,tn 处有向前差分近似
()
()
¶u
禗t
=
j
uxj,t1-uxj,t0
t
()(
)+ Dt
()
于是就有
uxj,t1-uxj,t0
Dt
略去误差项,得
()(
)+ODt
()=ϕ(x)
1
j
uxj,t1-uxj,t0
Dt
()(
)»ϕ
1
(x)
j
我们希望近似解也能够使上述近似表达式还原成精确成立的等式,也就是
要求 u1 和 满足 ujj
u1-ujj
Dt
=ϕ1(xj)
此式也是一个差分方程,称为定解条件的差分近似。
上述过程也可以总结为:
“用近似解的差分表达式代替定解条件中的(偏)导数,得到其差分近似”。
将上述两个过程综合在一起(如果原定解问题中还有其他含有偏导数的关系式,需将多个这样的过程综合在一起),就是
“用近似解的差分表达式代替定解问题中的(偏)导数,得到其差分近似”。 这样做的结果,将得到一组代数关系式,称为定解问题的差分近似,也叫作定解问题的差分格式,简称“格式”。
(注)由于定解问题中的每一个偏导数都有多种差分近似,所以一个定解问题可以有多个不同的差分格式。
具体到这里的定解问题,上面的过程给出如下的格式
n+1nn-1nnnìïu-2u+uu-2u+uïjjjjj-12j+1ï=cï22ïDtDxïïïï j=1,2,L,M-1 , n=1,2,L,N-1ïïïïïnnnn
íu0=gat , uM=gbt , n=1,2,L,N-1 ïïïï0ïu=ϕ0(xj) , j=1,2,L,M-1jïïïï10ïu-uïjjï=ϕ1(xj) , j=1,2,L,M-1ïïïîDt
()()
将它改写成便于计算的形式
0ìïu=ϕ0(xj) , j=1,2,L,M-ïjïïïï10ïu=u+Dtϕ1(xj) , j=1,2,L,M-jjïïïï2ïï骣Dt÷nïn+1nnnn-1çíuj=2uj+çc÷u-2u+u-u÷j+1jj-1jïç桫Dx÷ïïïïï j=1,2,L,M-1 , n=1,2,L,N-ïïïïïnnnnïu=gt , u=gt , n=1,2,L,N-ïaMbïî0
11
()
11
()()
其求解步骤如下:
t=0时刻(n=0) :uj0=ϕ0xj
t=t1时刻(n=1) :u1=u+Dtϕ1(xj) ,(j=1,2,L,M-1) jj
()
11
u0=gat1 ,uM=gbt1
()()
)
骣Dt÷1211102
÷cu-2u+u-u t=t时刻(n=2) :uj=2uj+çç÷j+1jj-1jç桫Dx÷
2
(
,(j=1,2,L,M-1)
22
u0=gat2 ,uM=gbt2
()()
一般地,如果已经求出 t=tn-1 和 t=tn 两个时刻的近似解,则
+1
t=tn+1时刻:un
j
骣Dt÷nnnnn-1
÷=2uj+çcu-2u+u-u ç÷j+1jj-1jç桫Dx÷
2
()
,(j=1,2,L,M-1)
n+1n+1
u0=gatn+1 ,uM=gbtn+1
()()
对 n=1,2,L,N-1 反复进行这一步骤,直到求出 t=tN=T 时刻的近似解。