抛物型方程有限差分法
抛物方程差分法的构造在空间方向上与椭圆方程类似,在时间方向上用一阶差商代替代替一阶微商。然后在时间方向上逐层求解。特别当空间维数较高时,可以使用局部一维格式大大降低计算量。
1. 简单差分法
考虑一维模型热传导方程 (1.1)
?u?2u?a2?f(x),0?t?T ?t?x其中a为常数。f(x)是给定的连续函数。(1.1)的定解问题分两类:
第一,初值问题(Cauchy 问题):求足够光滑的函数u?x,t?,满足方程(1.1)和初始条件: (1.2) u?x,0????x?,
???x??
第二,初边值问题(也称混合问题):求足够光滑的函数u?x,t?,满足方程(1.1)和初始条件:
?1.3?1 u?x,0????x?, 及边值条件
?l?x?l
?1.3?2 u?0,t??u?l,t??0,
0?t?T
假定f?x?和??x?在相应的区域光滑,并且于?0,0?,?l,0?两点满足相容条件,则上述问题有唯一的充分光滑的解。
现在考虑边值问题(1.1),(1.3)的差分逼近 取
h?lN为空间步长,??TM为时间步长,其中N,M是
自然数,
x?xj?jh, ?j?0,1,?,N?;
y?yk?k?, ?k?0,1,?,M?
将矩形域G??0?x?l;示网格节点;
0?t?T?分割成矩形网格。其中 ?xi,yj?表
Gh表示网格内点(位于开矩形G中的网格节点)的集合;
Gh表示位于闭矩形G中的网格节点的集合; ?h表示Gh-Gh网格边界点的集合。
ukj表示定义在网点?xi,tk?处的待求近似解,0?j?N,0?k?M。注意到在节点?xi,tk?处的微商和差商之间的下列关系
?u??u?(xj,tk))(?: ????t?j?tu?xj,tk?1??u?xj,tk???u?????O??? ??t?j??u?????O?2??t?jkkk?u?xj,tk?1??u?xj,tk?1?2???
u?xj?1,tk??u?xj,tk???u?k????O?h?
h??x?ju?xj,tk??u?xj?1,tk?hu?xj?1,tk??u?xj?1,tk?2h??u?????O?h? ??x?j??u?????Oh2??x?jkkk??
u?xj?1,tk??2u?xj,tk??u?xj?1,tk?h2??2u?2????Oh??x2???j??
可得到以下几种最简差分格式
(一) 向前差分格式
?1.4?1 ?1.4?2
?1kuk?ujj??akkuk?2u?uj?1jj?1h2?fj
?fj?f?xj??
u0j??j???xj?,
kk=uN=0 u0其中j?0,1,?,N?1,k?0,1,?,M?1。取r?a?为网比,则进一步2h有
?1.4??1
?1kk1?2r?ukukj=ruj?1+?j+ruj?1+?fj
此差分格式是按层计算:首先,令k?0,得到
01?2r?u0u1j=ru0j?1+?j+ruj?1+?fj
k于是,利用初值u0j??j???xj?和边值u0k=uN=0,可算出第一层的
?kk=uN=0u1j,j?0,1,?,N?1。再由?1.4?1取k?1,可利用u1j和u0算出
ukju2j,
j?0,1,?,N?1。如此下去,即可逐层算出所有
(j?0,1,?,N?1,k?0,1,?,M?1)。
由于第?k?1?层值可以通过第?k?层值直接得到,如此的格式称为显格式。并视ukj为u?xj,tk?的近似值。
若记
kkuk?u1k,u2,?,uN?1??,?????x?,??x?,?,??x??,f???f?x?,?f?x?,?,?f?xTT12N?112N?1??T
则显格式?1.4??1可写成向量形式
?uk?1?Auk?f,k?0,1,?,M?1 ?0?u??其中
r0?0??1?2r??r1?2rr????A??0???0? ???r1?2rr????0??0r1?2r??若记
?u?2uLu??a2?t?x
Lhu??1?kj?1uk?ukjj??akkukj?1?2uj?uj?1h2那末截断误差
1???2u~~??12?(1.5)R?u??Lhu?xj,tk???Lu?=??????= ??O??h??(x,t)?O?jk2???12r2???t?kj?1?kj?k)是矩形xj?1?x?xj?1,tk?t?tj?1中某一点。 ?j,t其中(x事实上,Rkj?u?????2u?k2??+O?2?2???x?j????h2??4u? ?a??4??12??x?jh21?a??12a2kk=
???2u?k2??+O?2?2???x?j????2u??2????O?2??t???jk??
~??1h21???2u2????O?=??????? 2???12a?2???t?j2~??11???u2??O?=??????2???12r2???t?jk??=O???h?。
2这里
?4u?2a4?a2?x?x??2u??2???x2???a?x2??2?3u?1?u????u?????2???2?a?t??x??t??x?t
?2u?2??u????2u??3ua2??2?????2??t?t??t??t??x???x?t4??4u??2u2?u故2?a??a4??a???t?x4??x?
?4u1?2u,从而4??2?xa?t
(二) 向后差分格式
?1.6?1 ?1.6?2
其中 步有 ?1.6??1
?1uk?ukjj??a?1k?1?1uk?ukj?1?2ujj?1h2?fj
?fj?f?xj??
u0j??j???xj?,
kk=uN=0 u0j?0,1,?,N?1,k?0,1,?,M?1。取r?a?h2为网比,则进一
?1?1k1?2r?uk?ruk?rukj?1+?jj?1=uj+?fj
按层计算:首先,取k?0,则利用初值u0j??j???xj?和边值
kk=uN=0,来确定出第一层的u1j,j?0,1,?,N?1,即求解方程u0组:
?ru1j?1+?1?2r?u1j?ru1j?1=u0j+?fj
kkj?0,1,?,N?1,u0=uN=0。求出u1j,在由?1.4??1取k?1,可利用u1j,
解出u2j,j?0,1,?,N?1。如此下去,即可逐层算出所有ukj,
k?0,1,?,M?1。
如此每层必须解一个三对角线性方程组的格式称为隐格式。并视ukj为u?xj,tk?的近似值。
直观地说,采用显式格式进行求解既方便又省工作量。但是,后面我们将看到,有些情况用隐式格式更为便利。
1.2.3 Grank-Nicholson法
将向前差分格式和向后差分格式做算术平均,得到的差