2024年2月8日发(作者:)
WORD格式可编辑
第9章 偏微分方程的差分方法
含有偏导数的微分方程称为偏微分方程。由于变量的增多和区域的复杂性,求偏微分方程的精确解一般是不可能的,经常采用数值方法求方程的近似解。偏微分方程的数值方法种类较多,最常用的方法是差分方法。差分方法具有格式简单,程序易于实现,计算量小等优点,特别适合于规则区域上偏微分方程的近似求解。本章将以一些典型的偏微分方程为例,介绍差分方法的基本原理和具体实现方法。
9.1椭圆型方程边值问题的差分方法
9.1.1 差分方程的建立
最典型的椭圆型方程是Poisson(泊松)方程
2u2u
u(22)f(x,y),(x,y)G (9.1)
xyG是x,y平面上的有界区域,其边界Γ为分段光滑的闭曲线。当f(x,y)≡0时,方程(9.1)称为Laplace(拉普拉斯)方程。椭圆型方程的定解条件主要有如下三种边界条件
第一边值条件
u(x,y) (9.2)
第二边值条件
u(x,y) (9.3)
nuku)(x,y) (9.4)
n 第三边值条件
(这里,n表示Γ上单位外法向,α(x,y),β(x,y),γ(x,y)和k(x,y)都是已知的函数,k(x,y)≥0。满足方程(9.1)和上述三种边值条件之一的光滑函数u(x,y)称为椭圆型方程边值问题的解。
用差分方法求解偏微分方程,就是要求出精确解u(x,y)在区域G的一些离散节点(xi,yi)上的近似值ui,j≈(xi,yi)。差分方法的基本思想是,对求解区域G做网格剖分,将偏微分方程在网格节点上离散化,导出精确解在网格节点上近似值所满足的差分方程,最终通过求解差分方程,通常为一个线性方程组,得到精确解在离散节点上的近似值。
设G={0 x=ih1, i=0,1,„,N1, h1=a/N1 y=jh2, j=0,1,„,N2, h2=b/N2 将G剖分为网格区域,见图9-1。h1,h2分别称为x方向和y方向的剖分步长,网格交点(xi,yi)称为剖分节点(区域内节点集合记为Gh={(xi,yi); (xi,yi)∈G}),网格线与边界Γ的交点称为边界点,边界点集合记为Γh。 专业知识整理分享 WORD格式可编辑 现在将微分方程(9.1)在每一个内节点(xi,yi)上进行离散。在节点(xi,yi)处,方程(9.1)为 2u2u[2(xi,yi)2(xi,yi)]f(xi,yi),(xi,yi)Gh (9.5) xy需进一步离散(9.5)中的二阶偏导数。为简化记号,简记节点(xi,yi)=(i,j),节点函数值u(xi,yi)=u(i,j)。利用一元函数的Taylor展开公式,推得二阶偏导数的差商表达式 2u1(i,j)[u(i1,j)2u(i,j)u(i1,j)]0(h12)22xh1u12(i,j)[u(i,j1)2u(i,j)u(i,j1)]0(h2)22yh2代入(9.5)式中,得到方程(9.1)在节点(i,j)处的离散形式 2 11[u(i1,j)2u(i,j)u(i1,j)][u(i,j1)2u(i,j)u(i,j1)]22h2 h1 2fi,j0(h12h2),(i,j)Gh2其中fi,jf(xi,yi)。舍去高阶小项0(h12h2),就导出了u(i,j)的近似值ui,j所满足的差分方程 11 [u2uu][ui,j12ui,jui,j1]fi,j,(i,j)Gh (9.6)i1,ji,ji1,j22h1h222在节点(i,j)处方程(9.6)逼近偏微分方程(9.1)的误差为O(h1h2),它关于剖分步长是二阶的。这个误差称为差分方程逼近偏微分方程的截断误差,它的大小将影响近似解的精度。 在差分方程(9.6)中,每一个节点(i,j)处的方程仅涉及五个节点未知量ui,j,ui+1,j,ui-1,j,ui,j+1,ui,j-1,因此通常称(9.6)式为五点差分格式,当h1= h2=h时,它简化为 专业知识整理分享 WORD格式可编辑 1[ui1,jui1,jui,j1ui,j14ui,j]fi,j,(i,j)Gh 2h差分方程(9.6)中,方程个数等于内节点总数,但未知量除内节点值ui,j ,(i,j)∈Gh外,还包括边界点值。例如,点(1,j)处方程就含有边界点未知量u0,j。因此,还要利用给定的边值条件补充上边界点未知量的方程。 对于第一边值条件式(9.2),可直接取ui,j=α(xi,yi), (i,j)∈Γh (9.7) 对于第三(k=0时为第二)边值条件式(9.4), 以左边界点(1,j)为例,见图9-2, 利用一阶差商公式 uu(0,j)u(1,j)(0,j)O(h1) nh1则得到边界点(0,j)处的差分方程 u0,ju1,jh1k0,ju0,jr0,j (9.8) 联立差分方程(9.6)与(9.7)或(9.8)就形成了求解Poisson方程边值问题的差分方程组,它实质上是一个关于未知量{ui,j}的线性代数方程组,可采用第2,3章介绍的方法进行求解。这个方程组的解就称为偏微分方程的差分近似解,简称差分解。 考虑更一般形式的二阶椭圆型方程 [uuuu(A)(B)CDEu]f(x,y),(x,y)G (9.9) xxyyxy其中A(x,y)≥Amin>0, B(x,y) ≥Bmin >0, E(x,y) ≥0。引进半节点xi121xih1, 2yi121yih2,利用一阶中心差商公式,在节点(i,j)处可有 2u1u1u1(A)(i,j)[(A)(i,j)(A)(i,j)]O(h12)xxh1x2x21u(i1,j)u(i,j)u(i,j)u(i1,j)[A1A1]O(h12)i,jh1i2,jh1h12uu(i1,j)u(i1,j)(i,j)O(h12)x2h1 专业知识整理分享 WORD格式可编辑 对uu类似处理,就可推得求解方程(9.9)的差分方程 (B),yyy[ai1,jui1,jai1,jui1,jai,j1ui,j1ai,j1ui,j1ai,jui,j]f(i,j),(i,j)Gh其中 (9.10) h12ah(ACi,j)11i1,ji,j22h12ah(ACi,j)11i1,ji,j22h2 (9.11) (B12Di,j)ai,j1h2i,j22h22ah(BDi,j)i,j121i,j2222ai,jh1(A1A1)h2(B1B1)Ei,ji,ji,ji,ji,j2222显然,当系数函数A(x,y)=B(x,y)=1, C(x,y)=D(x,y)=E(x,y)=0时,椭圆型方程(9.9)就成为Poisson方程(9.1),而差分方程(9.10)就成为差分方程(9.6)。容易看2出,差分方程(9.10)的截断误差为O(h12h2)阶。 9.1.2 一般区域的边界条件处理 前面已假设G为矩形区域,现在考虑G为一般区域情形,这里主要涉及边界条件的处理。 考虑Poisson方程第一边值问题 uf(x,y),(x,y)G (9.12) u(x,y),(x,y)其中G可为平面上一般区域,例如为曲边区域。仍然用两组平行直线:x=x0+ih1,y=y0+jh2,i,j=0,±1,„,对区域G进行矩形网格剖分,见图9-3。 如果一个内节点(i,j)的四个相邻节点(i+1,j),(i-1,j),(i,j+1)和(i,j-1)属于GG,则称其为正则内点,见图9-3中打“。”号者;如果一个节点(i,j)属于G且不为正则内点,则称其为非正则内点,见图9-3中打“.”号者。记正则,非正则内点集合为h。显然,当G为矩形区域时,内点集合为Gh 专业知识整理分享 WORD格式可编辑 Gh,hh成立。 Gh 在正则内点(i,j)处,完全同矩形区域情形,可建立五点差分格式 11 (9.13)[u2uu][ui,j12ui,jui,j1]fi,j,(i,j)Gh i1,ji,ji1,j22h1h2在方程(9.13)中,当(i,j)点临近边界时,将出现非正则内点上的未知量,因此必须补充非正则内点处的方程。 若非正则内点恰好是边界点,如图9-4中 D点,则利用边界条件可取uD=α(D) 对于不是边界点的非正则内点,如图9-4中B点,一般可采用如下两种处理方法。 a.直接转移法.取与点B距离最近的边界点(如图9-4中E点)上的u的值作为u(B)的近似值uB,即uB=u(E)=α(E) 直接转移法的优点是简单易行,但精度较低,只为一阶近似。 b.线性插值法.取B点的两个相邻点(如图9-4中边界点A和正则内点C作为插值节点对u(B)进行线性插值 u(B)xCxBxxAu(A)Bu(C)O(h12) xCxAxCxA则得到点B处的方程 uBh1(A)uC,xBxA h1h1线性插值法精度较高,为二阶近似。 对每一个非正则内点进行上述处理,将所得到的方程与(9.13)式联立,就组成了方程个数与未知量个数相一致的线性代数方程组。求解此方程组就可得到一般 专业知识整理分享 WORD格式可编辑 区域上边值问题(9.12)的差分近似解。 对于一般区域上二阶椭圆型方程(9.9)的第一边值问题,可完全类似处理。 第二、三边值条件的处理较为复杂,这里不再讨论。 9.2 抛物型方程的差分方法 本节介绍抛物型方程的差分方法,重点讨论差分格式的构造和稳定性分析。 9.2.1 一维问题 作为模型,考虑一维热传导的初边值问题 u2ua2f(x,t),0xl,0tT (9.14) txu(x,0)(x),0xl (9.15) u(0,t)g1(t),u(l,t)g2(t),其中a是正常数,f(x,t),0tT (9.16) (x),g1(t)和g2(t)都是已知的连续的函数。 现在讨论求解问题(9.14)-(9.18)的差分方法。首先对求解区域G={0≤x≤l, 0≤t≤T}进行网格剖分。取空间步长h=l/N,时间步长τ=T/M,其中N,M是正整数,作两族平行直线 xxjjh,j0,1,,Nttkk,k0,1,M 将区域G剖分成矩形网格,见图9-5,网格交点(xj,tk)称为节点。 用差分方法求解初边值问题(9.14)-(9.16)就是要求出精确解u(x,t)在每个节点(xj,tk)处的近似值uju(xj,tk)。为简化记号,简记节点(xj,tk)=u(j,k)。 利用一元函数的Taylor展开公式,可推出下列差商表达式 专业知识整理分享 k WORD格式可编辑 uu(j,k1)u(j,k)(j,k)O() (9.17) tuu(j,k)u(j,k1)(j,k)O() (9.18) tuu(j,k1)u(j,k1)(j,k)O(2) (9.19) t2 2uu(j1,k)2u(j,k)u(j1,k)2 2(j,k)O(h) (9.20) 2xh1.古典显格式 在区域G的内节点(j,k)处,利用公式(9.17)和(9.20),可将偏微分方程(9.14)离散为 u(j,k1)u(j,k)kau(j1,k)2u(j,k)u(j1,k)k2fO(h) j2hk其中fjf(xi,tk)。舍去高阶小项O(h2),就得到节点近似值(差分解)uj所满足的差分方程 1ukukjjakkukj12ujuj1h2fjk (9.21) 显然,在节点(j,k)处,差分方程(9.21)逼近偏微分方程(9.14)的误差为O(h2),这个误差称为截断误差,它反映了差分方程逼近偏微分方程的精度。现将(9.21)式改写为便于计算的形式,并利用初边值条件(9.15)与(9.16)补充上初始值和边界点方程,则得到 1kkkukrukjj1(12r)ujruj1fjj1,2,,N1,k0,1,,M1 (9.22) 0uj(xj),j1,2,,N1ukg(t),ukg(t),k0,1,M1kN2k0其中ra2称为网比。 h与时间相关问题差分方程的求解通常是按时间方向逐层进行的。对于差分方程(9.22),当第k层节点值{uj}已知时,可直接计算出第k+1层节点值{uj}。这样,从第0层已知值uj(xi)开始,就可逐层求出各时间层的节点值。差分方程(9.22)的求解计算是显式的,无须求解方程组,故称为古典显格式。此外,在式(9.22)中,每个内节点处方程仅涉及k和k+1两层节点值,称这样的差分格式为 专业知识整理分享 0kk1 WORD格式可编辑 双层格式。 差分方程(9.22)可表示为矩阵形式 uk1AukFk,k0,1,,M1 0 (9.23) u 其中 r12rr12rr Arr12rkTuk(u1k,,uN1) F(f1rg1(tk),f2,,fN2,fN1rg2(tk)) kkkkkT((x1),,(xN1))T 2. 古典隐格式 在区域G的内节点(j,k)处,利用公式(9.18)和(9.20),可将偏微分方程(9.14)离散为 u(j,k)u(j,k1)2au(j1,k)2u(j,k)u(j1,k)fjkO(h2) 2h舍去高阶小项O(h),则得到如下差分方程 k1ukjujkkukj12ujuj1 ah22fjk (9.24) 它的截断误差为O(h),逼近精度与古典显格式相同。改写(9.24)式为便于计算的形式,并补充上初始值与边界点方程,则得到 kkk1rukfjkj1(12r)ujruj1ujj1,2,,N1,k0,1,,M 0 (9.25) uj(xj),j1,2,,N1ukg(t),ukg(t),k0,1,M1kN2k0 专业知识整理分享 WORD格式可编辑 与古典显格式不同,在差分方程(9.25)的求解中,当第k-1层值{uj}已知时,必须通过求解一个线性方程组才能求出第k层值{uj},所以称(9.25)式为古典隐格式,它也是双层格式。 差分方程(9.25)的矩阵形式为 kk1Bukuk1Fk,k1,2,M (9.26) 0u其中 r12rr12r B kkr rr12r向量u,F,同(9.23)式中定义。从(9.26)式看到,古典隐格式在每一层计算时,都需求解一个三对角形线性方程组,可采用追赶法求解。 -Nicolson格式(六点对称格式) 利用一元函数Taylor展开公式可得到如下等式 u1u(j,k1)u(j,k)(j,k)O(2)t2 2 22u11uu(j,k)[(j,k)(j,k1)]O(2)22222xxx使用这两个公式,在(j,k)点离散偏微分方程(9.14),然后利用(9.20)式进一步离散二阶偏导数,则可导出差分方程 1ukukjjk1k1k1kkk1k1uj12ujuj1uj12ujuj1a[]fj2 (9.27) 222hh12其截断误差为O(h),在时间方向的逼近阶较显格式和隐格式高出一阶。这个差分格式称为Crank-Nicolson格式,有时也称为六点对称格式,它显然是双层隐式格式。改写(9.27)式,并补充初始值和边界点方程得到 22 专业知识整理分享 WORD格式可编辑 1k11rukrukj12(1r)ujj11kkkk2ru2(1r)uruj1jj12fj (9.28) j1,2,,N1,k0,1,,M10uj(xj),j1,2,,N1ukg(t),ukg(t),k0,1,M1kN2k0它的矩阵形式为 1kk1k(IB)u(IA)uF2,k1,2,M (9.29) 0u,k0,1,,M1在每层计算时,仍需求解一个三对角形方程组。 4. Richardson格式 利用公式(9.19)和(9.20),可导出另一个截断误差为O(2h2)阶的差分方程 11ukukjj2akkukj12ujuj1h2fjk 称之为Richardson格式。可改写为 11kkukuk2r(ukfjk (9.32) jjj12ujuj1)2这是一个三层显式差分格式。在逐层计算时,需用到uj和uj两层值才能得到k+1层值uj。这样,从第0层已知值uj(xj)开始,还须补充上第一层值uj,才能逐层计算下去。可采用前述的双层格式计算uj。 除上述四种差分格式外,还可构造出许多逼近偏微分方程(9.14)的差分格式,但并不是每个差分格式都是可用的。一个有实用价值的差分格式应具有如下性质: (1)收敛性。对任意固定的节点(xj,tk),当剖分步长,h0时,差分解ujkk1kk1011应收敛到精确解u(xj,tk)。 (2)稳定性。当某一时间层计算产生误差时,在以后各层的计算中,这些误差的传播积累是可控制而不是无限增长的。 理论上可以证明,在一定条件下,稳定的差分格式必然是收敛的。因此,这里主要研究差分格式的稳定性。 专业知识整理分享 WORD格式可编辑 作为例子,先考查Richardson格式的稳定性。设uj是当计算过程中带有误差kk时,按Richardson格式(9.30)得到的实际计算值。误差ekuj是理论值,jujuj。kkk假定右端项fj的计算是精确的,网比r1,则ekj满足 211kk ekek(ekjjj12ejej1) (9.31) 设前k-1层计算时精确的,误差只是在第k层j0点发生,即 1kek0,ekjj0,ej0,jj0。 则利用(9.31)式可得到误差的传播情况,见表9-1。 表9-1 r=1/2时Richardson格式的误差传播 j k k k+1 k+2 k+3 k+4 k+5 k+6 j0-4 0 0 0 0 ε -10ε 71ε j0-3 0 0 0 ε -8ε 49ε -260ε j0-2 0 0 ε -6ε 31ε -144ε j0-1 0 ε -4ε 17ε -68ε 273ε j0 ε -2ε 7ε -24ε 89ε -388ε j0+1 0 ε -4ε 17ε -68ε 273ε j0+2 0 0 ε -6ε 31ε -144ε j0+3 0 0 0 ε -8ε 49ε -260ε j0+4 0 0 0 0 ε -10ε 71ε 641ε -1096ε 1311ε -1096ε 641ε 从表中看出,误差是逐层无限增长的。表中的计算虽然是就网比r1进行的,2实际上对任何r>0都会产生类似现象,所以Richardson格式是不稳定的。 利用误差传播图表方法考查差分格式的稳定性虽然直观明了,但只能就具体取定的r值进行,并且也不适用于隐式差分格式。 9.2.2 差分格式的稳定性 前节构造的几种双层差分格式都可以表示为如下的矩阵方程形式 ukHuk1Fk (9.32) 0u其中H称为传播矩阵。对于显格式H=A, 隐格式H=B,六点对称格式H=(I+B) (I+A)。一般的三层格式也可以转化为双层格式。 为了讨论方便,设在初始层产生误差,且假定右端项F的计算是精确的。用u 专业知识整理分享 0k-1 -1k WORD格式可编辑 表示当初始层存在误差0时,由差分格式(9.32)得到的计算解,则uk满足方程 ukHuk1Fk (9.33) 00u记误差向量uu,则k满足方程 kkkkHk1,k1,2, (9.34) 0为初始误差定义9.1 称差分格式(9.32)是稳定的,如果对任意初始误差0,误差向量k在某种范数下满足 k0 C,k0,00 (9.35) 其中C为与h,τ无关的常数。 这个定义表明,当差分格式稳定时,它的误差传播是可控制的。 从(9.34)式递推得到 kHk0,0k因此,差分格式稳定的充分必要条件是 T HkC,0kT (9.36) 定理9.3 (稳定性必要条件)差分格式稳定的必要条件是存在与h,τ无关的常数M,使谱半径 (H)1M (9.37) **定理9.4 (稳定性充分条件)设H为正规矩阵,即HHHH,则(9.37)式也是差分格式稳定的充分条件。 下面讨论几种差分格式的稳定性。为便于讨论,引进N-1阶矩阵 01101 S10110这个特殊矩阵的特征值为 专业知识整理分享 WORD格式可编辑 j2cosSj,Nj1,2,,N1 (9.38) 例9-1古典显格式 此时H=A=(1-2r)I+rS。 利用(9.38)式和三角函数公式,可求得H的特征值为 2 j14rsin(j),2Nj1,2,,N1 1。由于H=A为实对称矩阵,所2为使稳定性条件式(9.39)成立,必须且只须r以古典显格式稳定的充分必要条件是网比r1 2例9-2 古典隐格式 此时H=B-1,B=(1+2r)I-rS。利用(9.38)式可求得H的特征值为 2 j[14rsin(j1)],2Nj1,2,,N1 -1显然,对任意r>0,条件(9.37)成立。注意,H=B仍为实对称矩阵,所以古典隐格式对任何网比r>0都是稳定的,称为绝对稳定。 例9-3 六点对称格式 此时H=(I+B)-1(I+A),利用矩阵A和B的特征值可得到矩阵H的特征值为 j)2N j,j24rsin2()2N24rsin2(j1,2,,N1 则对任意r>0,条件(9.37)成立。由于A和B均为实对称矩阵,且AB=BA,则可验证H也是实对称矩阵。所以六点对称格式是绝对稳定的。 习题九 9-1 试用五点差分格式求解Poisson 方程的边值问题 2u2u2216,(x,y)G xy(x,y)u|0,其中G={-1 9-2 试写出求解Laplace方程边值问题 专业知识整理分享 WORD格式可编辑 2u2u2216,0x4,0y3yxu(0,y)y(3y),u(4,y)0,0y3 u(x,0)sinx,u(x,3)0,0x44的五点差分格式,取步长h=1,并写出差分方程的矩阵形式。 9-3 试用古典显格式求解热传导方程定解问题 u2u,0x1,0tTtx2 u(x,0)4x(1x),0x1u(0,t)u(1,t)0,0tT只计算k=1,2两层上的差分解,取网比r=1/6, h=0.2 。 9-4 用古典隐格式求解热传导方程定解问题 u2u,0x1,0t0.3tx2 u(x,0)sinx,0x1u(0,t)u(1,t)0,0t0.3取0.1,h0.2精确解为 u(x,t)e2tsinx。 9-5 导出求解热传导方程的差分格式 (1)1ukukjjk1ukjuj1kkk(u2uuj1jj1) 2h的截断误差,并选取θ使其达到二阶。 专业知识整理分享


发布评论