有限差分法求解抛物型方程偏微分方程只是在一些特殊情况下,才能求得定解问题解的解析式,对比较复杂的问题要找到解的解析表达式是困难的,因此需采用数值方法来求解.有限差分法是一种发展较早且比较成熟的数值求解方法,只适用于几何形状规则的结构化网格.它在微分方程中用差商代替偏导数,得到相应的差分方程,通过解差分方程得到微分方程解的近似值.本章主要介绍有限差分法的基本思想,并给出一些具体的数值实例.§1 差分方法的基本思想有限差分法把偏微分方程的求解区域划分为有限个网格节点组成的网格,主要采用Taylor 级数展开等方法,在每个网格节点上用有限差分近似公式代替方程中的导数,从而建立以网格节点上的函数值为未知数的代数方程组.有限差分格式,从格式的精度来划分,有一阶格式、二阶格式和高阶格式.从差分的空间形式来考虑,可分为中心格式和逆风格式.考虑时间因子的影响,差分格式还可以分为显格式、隐格式和显隐交替格式等.目前常见的差分格式,主要是上述几种格式的组合,不同的组合构成不同的差分格式.泰勒级数展开法对有限差分格式的分类和公式的建立起着十分重要的作用.下面采用泰勒展开式导出一个自变量系统的若干有限差分表达式.首先考虑单变量函数()u x ,如图1把区域x 离散为一批结点,记0()(), =0,1,2,i i u x u x ih u i =+=图1 单变量函数离散化函数()u x 在点i x 处的泰勒展开式为23()()()()()2!3!i i i i i u x u x u x h u x u x h h h ''''''+=++++ (1)或23()()()()()2!3!i i i i i u x u x u x h u x u x h h h ''''''-=-+-+ (2)式(1)和(2)重新整理可得2()()()()()2!3!i i i i i u x h u x u x u x u x h h h '''''+-'=---(3)和2()()()()()2!3!i i i i i u x u x h u x u x u x h h h '''''--'=+++(4)于是给出在点i x 处函数u 的一阶导数的两个近似公式1()()()i i i ii u x h u x u u u x h h ++--'≈= (5)1()()()i i i i i u x u x h u u u x h h----'≈= (6)因为级数被截断,这两个近似公式肯定要产生误差,此误差与h 同阶,形式分别为()(), ,2()(), .2i i i i i i hE u O h x x h hE u O h x h x ξξξξ''=-=≤≤+''==-≤≤ 若把式(3)和(4)相加并求()i u x ',可得11()()()22i i i i i u x h u x h u u u x h h+-+---'≈= (7)其截断误差与2h 同阶,形式为22()(), ,6i i i h E u O h x h x h ξξ''=-=-≤≤+若把式(3)和(4)相减并求()i u x '',可得1122()2()()2()i i i i i i i u x h u x u x h u u u u x h h +-+-+--+''≈= (8)其截断误差与2h 同阶,其形式为22()(), ,12i i i h E u O h x h x h ξξ''=-=-≤≤+我们可继续用这种方式来推导更复杂的公式,类似的公式还有很多,这里不再一一列举.公式(5)、(6)分别称为一阶向前、向后差分格式,这两种格式具有一阶计算精度,公式(7)、(8)分别称为一阶、二阶中心差分格式,这两种格式具有二阶计算精度.图2 二维区域网格剖分上面的结果可直接推广使用于导出二元函数(,)u x y 的许多有限差分近似公式.如图7.2,把求解区域进行网格剖分,使12(,)(,), ,=0,1,2,i j ij u x y u ih jh u i j ==其中x 方向的网格间距为1,h y 方向的网格间距为2,h 整数i 和j 分别表示函数(,)u x y 沿x 坐标和y 坐标的位置.二元函数(,)u x y 对x 求偏导时y 保持不变,对y 求偏导时x 保持不变,根据向前差分公式(7.5)可以给出在点(,)i j x y 处函数(,)u x y 的一阶偏导数的两个近似公式1,,1(,)i j i j i ju x y u u xh +∂-≈∂ (9),1,2(,)i j i j i ju x y u u yh +∂-≈∂ (10)相类似地,根据二阶中心差分格式(8)可以得到函数(,)u x y 的二阶偏导数的近似公式21,,1,221(,)2i j i j i j i ju x y u u u x h +-∂-+≈∂ (11)2,1,,1222(,)2i j i j i j i j u x y u u u yh+-∂-+≈∂ (12)下面我们推导函数(,)u x y 的二阶混合偏导数2ux y∂∂∂在(,)i j x y 的有限差分表达式.根据一阶中心差分格式(7),112111,11,11,11,122121221,11,1(,)(,)(,)1()21 ()()222 i j i j i j i j i j i j i j i j i j i u x y u x y u x y O h x y h y y u u u u O h O h h h h u u u +-+++--+--+++-∂∂∂⎡⎤⎡⎤∂=-+⎢⎥⎢⎥∂∂∂∂⎣⎦⎣⎦--⎡⎤=-++⎢⎥⎣⎦--≈1,11,1124j i j u h h -+--+二维有限差分近似可以直接推广到三维空间或三维空间加一维时间的情形.定义1 当步长趋于零时,差分方程的截断误差趋于零,则称差分格式与微分方程是相容的.定义2 当步长趋于零时,差分方程的解收敛于微分方程的解,则称差分格式是收敛的. 定义3 当差分方程的解由于舍入误差的影响,所产生的偏差可以得到控制时,则称差分格式是稳定的.§2 抛物型方程的有限的差分法为了说明如何使用有限差分法来求解偏微分方程,本节我们给出以下几个数值实例.算例1 考虑一维非齐次热传导方程的初边值问题:2212(,), 01,01,(,0)(), 01,(0,)(), (1,)(), 0 1.u ua f x t x t t x u x q x x u t g t u t g t t ⎧∂∂=+<<<≤⎪∂∂⎪⎪=≤≤⎨⎪==<≤⎪⎪⎩(7.13),其中2,a =函数11(,)[cos()2sin()],22xf x t e t t =--+-初始条件1()sin,2xq x e =左、右边界条件分别为11()sin(),2g t t =-21()sin()2g t e t =-.该定解问题的解析解为1(,)sin(),(,)[0,1][0,1].2xu x t e t x t =-∈⨯将求解区域{(,)|,0}x t a x b t T Ω=≤≤≤≤进行网格剖分,[,]a b 作m 等分,[0,]T 作n 等分,记,,b a Th m nτ-==则 ,0,,0i k x a ih i M t k k n τ=+≤≤=≤≤对该问题建立如下向前差分格式:11122, 11, 11,k kk k k k i i i i i i u u u u u a f i m k n hτ+-+--+=+≤≤-≤≤-(14) (,0)(),1,i i u x q x i m =≤≤ (15) 12(,)(), (,)(),1.k k k k u a t g t u b t g t k n ==≤≤ (16)令2r ah τ=,差分格式(7.14)整理得111(12), 11, 1 1.k k k k k i i i i i u ru r u ru f i m k n τ+-+=+-++≤≤-≤≤- (17)显然时间在1k t +上的每个逼近值可独立地由k t 层上的值求出。
该格式为显格式,采用显格式时,应注意时间步长和空间步长的选取,当12r ≤时向前差分格式是稳定的.我们采用步长0.1h =和0.0025τ=,选取0.25t =时的数据进行比较,得到精确解与近似解的最大误差是9.00670e-005.表1 算例1 时节点处数值解、精确解和误差的绝对值(显式格式)数值解与精确解的比较见下图:图3 t =0.25精确解与近似解的比较 图4 t =0.25精确解与近似解的绝对误差对该问题还可建立如下向后差分格式:11122, 11, 11,k k k k k k i i i i i i u u u u u a f i m k n hτ--+--+=+≤≤-≤≤-(18) 差分格式(14)整理得111(12), 11, 1 1.k k k k k i i i i i ru r u ru u f i m k n τ--+-++-=+≤≤-≤≤- (19)显然时间在k t 层上的逼近值需要通过求解一个三对角线性方程组得到。
该格式为隐格式,该隐格式对于任意网格比r 都是稳定的.我们采用步长0.1h =和0.0025τ=,选取0.25t =时的数据进行比较,得到精确解与近似解的最大误差是1.274828e-005.数值解与精确解的比较结果如下图:图5 t =0.25精确解与近似解的比较 图6 t =0.25精确解与近似解的绝对误差算例2 考虑一维非线性Chaffee-Infante 方程的初边值问题:11(())(), (,)[0,1][0,1],(,0)(), [0,1],(,)(), (,)(), [0,1].u u k x f u x t t x x u x q x x u a t g t u b t g t t ∂∂∂⎧=+∈⨯⎪∂∂∂⎪=∈⎨⎪==∈⎪⎩(20) 其中扩散系数()1,k x =3(),f u u u =-+初始条件11()1),22q x =-+左右边界条件分别为:1113()1),224g t t =--+2113()1)224g t t =--+.该问题的解析解为113(,)1),(,)[,][0,].224u x t t x t a b T =--+∈⨯. 将求解区域进行剖分,方法同上,对该问题建立如下向前差分格式:1111122(),11,11,k kk k k k k k i i i i i i i i i i i u u k k u u u u u k f u i m k n h h hτ+++-+----+=++≤≤-≤≤- (,0)(),1,i i u x q x i m =≤≤12(,)(), (,)(),1.k k k k u a t g t u b t g t k n ==≤≤采用步长0.1h =和0.005,τ=我们选取0.5t =时的数据进行比较,得到精确解与近似解的最大误差是6.866286e-005.表2 算例2 时节点处数值解、精确解和误差的绝对值运行结果如下图,图7 t =0.5精确解与近似解的比较 图8 t =0.5精确解与近似解的绝对误差。