分格式称之为六点对称格式,也称为Crank-Nicholson格式:
?1.8?1
?1uk?ukjj??kkkk?1k?1k?1a?uj?1?2uj?uj?1uj?1?2uj?uj?1?????fj 222?hh???
?fj?f?xj??
?1.8?2
进一步, ?1.8??1
?u0j??j???xj?,
kk=uN=0 u0rk?1rk?1rkrk?1k??=+??1?ruj?1+?1?r?ukuuuu+?fj jj22j?12j?12j?1
按层计算:首先,取k?0,则利用初值u0j??j???xj?和边值
kk=uN=0,来确定出第一层的u1j,j?0,1,?,N?1,即求解方程u0组:
r1rrr00???+1?ruj?1+?1?r?u1j?u1j?1=u0uu+?fj j222j?12j?1
kkj?0,1,?,N?1,u0=uN=0。求出u1j,在由?1.8??1,取k?1,可利用u1j,
?解出u2j,j?0,1,?,N?1。如此下去,即可逐层算出所有ukj,
k?0,1,?,M?1。
若记
?u?2uLu??a2?t?x
L?h3?ukj??1uk?ukjj?kkkk?1k?1k?1a?uj?1?2uj?uj?1uj?1?2uj?uj?1??????fj 222?hh???在(x,t)?(xj,(tk?tk?1)/2)处作Taylor 展开,可以算出截断误差为 (1.7)
(四)Richardson格式
?3??2?h2?。+ Rkj?u??Lhu?xj,tk???Lu?j=O?k
(1.10) 进一步 ?1.10??1
?1?1uk?ukjj2??akkukj?1?2uj?uj?1h2+fj
k?1kkk?12r=(+)+?2uukuuujjj?1j?1j+2?fj
这是三层显式差分格式。显然截断误差的阶为O??2?h2?。为使计算能够逐层进行,除初值u0j外,还要用到u1j。它可以用其他双层格式提供。
Richardson格式的矩阵形式为:
?uk?1?Cuk?uk?1??f,k?1,?,M?1?u0?? ??u1另算?其中
?2???1C??2r??0????0??10??2?1??????0? ???12?1??0?12???0
2 稳定性与收敛性
抛物方程的两层差分格式可以统一写成向量形式: (2.1)
AUk?1?BUk??F
kTAB是N?1阶矩阵。其中Uk?(u1k,?uN我们假?1), F?(f1,?,fN?1),和
定A可逆,即(2.1)是唯一可解的。对于显格式,A等于单
?Uk?位矩阵I。三层格式可以通过引入新变量W??k?1?化成两层
?U?k格式。
假设差分解的初始值(其实可以是任一层的值)有误差,
以后各层计算没有误差,让我们来考察初始误差对以后各层的影响。令?Uk?和?Vk?分别是以U0和V0为初始值由差分格式(2.1)得到的两组差分解,则Wk?Uk?Vk满足 (2.2) 因此,按初值稳定应该意味着Wk义:
假设F?0,我们称差分格式(2.1)按初值稳定,如果存在正常数?0和K,使得以下不等式成立: (2.2)
?U0?RN?1, 0????0, 0?k??T
Uk?KU0AWk?1?BWk
?KW0。这就导致如下定
,
这里
?是RN?1上的某一个范数,例如
?N?12?U???hju??j?1?1/2
类似地,假设U0?0,我们称差分格式(2.1)按右端稳定,如果存在正常数?0和K,使得以下不等式成立: (2.2)
Uk?KF, ?0????0, 0?k??T
可以证明,差分格式若按初值稳定,则一定按右端稳定。前面讨论的向前差分格式(1.4)当网比r?1时稳定,当r?12因此,这时我们简单地称差分格式稳定。
2时不稳定。这就意味着给定空间步长h以后,时间步长?必须足够小,才能保证稳定。而向后差分格式(1.6)和Grank-Nicholson格式(1.8)则对任何网比r都是稳定的,
时间步长?可以取得大一些,从而提高运算效率。Richardson格式则对任意网比都是不稳定的。因此,虽然Richardson格式是个显格式,截断误差又很小,但是却不可用。
如果某个差分格式的截断误差当?和h趋于0时随之趋于
0,则称这个差分格式是相容的。可以证明:若差分格式是相容的和稳定的,则它是收敛的,并且差分解与微分解之间误差的阶等于截断误差的阶。因此,当网比r?1时,向前差
2分格式(1.4)有收敛阶O(??h2)。对任何网比,向后差分格式(1.6)有收敛阶O(??h2),而Crank-Nicholson格式(1.8)有收敛阶O(?2?h2)。
3.高维抛物方程差分法
考虑如下二维抛物方程的差分格式。
??u?2u?2u??t??x2??y2, x,y?(0,l), t?0?? ?u(x,y,0)??(x,y)?u(0,y,t)?u(l,y,t)?u(x,0,t)?u(x,l,t)?0???(3.1)
取空间步长h?l/N,时间步长??0。作两族平行与坐标轴的网线x?xj?jh,y?yk?kh,其中j,k?0,1,?,N,将矩形区域(0,l)?(0,l)分割成N2个小矩形。记unjk为网格节点(xj,yk,tn)上的差分解。 前述各种一维差分格式都可以直接用于以(3.1)为代表的二维以至更高维的抛物方程。例如,向前差分格式成为 (3.2)
?1nun?ujkjk??nnun?2u?uj?1k,jkj?k1,h2?nnun?2u?ujk?,1jkjk?h2 ,1
n?0,1?,T?,?j1;k ??,1N,? ,1实际计算时,先令n?0,利用已知的u0jk??(xj,yk)等等,对
j,k?1,?,N?1,用(3.2)算出u1jk。而由边值条件,补充得到
1111n?1,利用已知的第u0,k?uN,k?uj,0?uj,N?0。下一步,令
1层的
差分解?u1jk?类似地算出第2层的差分解?u1jk?。以此类推,直到n?T?1。
? 各种隐格式,例如向后差分格式和Crank-Nicholson格
式,也可以类似地推广用于高维情形。每次计算新的一层差分解时,同样需要求解一个线性方程组。但是,这个线性方程组不再是三对角的,方程组阶数为O(Np),其中p是抛物方程的维数。因此,求解成本大大增加,甚至导致无法求解。为了克服这一困难,人们提出了各种降维技巧,局部地把高维问题化成一维问题求解。下面给出的求解二维抛物方程的LOD格式(局部一维格式)就是其中一例。 (3.3a) (3.3b) 其中
?u?2xmjkmmumj?1,k?2uj?ku?1j,?1/2nun?ujkjk?/2?12n??x(ujkh21/2njk?u)
?1n?1/2unjk?ujk?/2T?12n?1n?1/2?(ujk?ujk) 2yhj,k?1,?,N?1
n?0,1?,??,;1
h2?,
k2yu?mjkumj,k?1?2umj?kum?,jh2 1kLOD格式的计算步骤可以总结如下:
1) 令n?0。 2)
k?1。
3) 求解三对角线性方程组(3.3a)得到差分解
?un?1/21,kn?1/2n?1/2,u2,,?,uNk?1,k?。
4) 若k?N,则k增加1,转步骤3)。否则转5)。 5) 令j?1。
6) 求解三对角线性方程组(3.3b)得到差分解
?unj,1n,unj,2,?,uj,N?1?。
7) 若j?N,则j增加1,转步骤6)。否则转8)。 8) 若n?T/?,则n增加1,转步骤2)。否则结束。
LOD格式的基本想法是,由第n层计算n?1/2层时,对
k?1,?,N?1,依次固定y?yk,然后计算y?yk这条直线上各个
网点上的近似值;因为这时y不变,所以原来的二维微分方程退化为关于x的一维微分方程。接着,当由第n层计算n?1/2层时,则依次固定x?xj。LOD格式可以直接推广到任意维抛物方程。LOD格式对任意网比都是稳定的,截断误差阶和收敛阶是O(?2?h2)。