回顾1.有限差分法基础2.差分格式3.差分方程4.边界条件的处理5.相容性、稳定性和收敛性回顾1.有限差分法的相容性、稳定性和收敛性相容性:针对差分格式而言,在时间步长和空间步长趋近于零的情况下,如果差分格式的截断误差(差分格式与原有偏微分方程之差)的模趋近于零,则该差分格式与原偏微分方程是相容的,或称该差分方程与原偏微分方程具有相容性。稳定性(stability):如果偏微分方程的严格解析解有界,差分格式给出的解也有界,称该差分格式是稳定的;如果差分格式给出的解是无界的,则称该差分格式是不稳定的。稳定性反映了差分格式在计算中控制误差传递的能力收敛性(convergence):如果当时间和空间步长趋于零时,FDE解趋于PDE解,称该差分格式是收敛的。如果则称该差分格式是收敛的。,,,,0,0lim()0mmijkijkhtUu收敛性描述的是当差分网格无限细化时,差分方程的解是否具有无限逼近偏微分方程的解的能力Lax等价定理(Laxequivalencetheorem):如果逼近一个给定问题的差分格式是相容的,那么该差分格式的收敛性与稳定性互为充分必要条件。相容性是比较容易满足的。在此基础上,如果满足了稳定性条件,差分格式的收敛性就自动满足。U=0U=0U=100U=020U2143658710912111413152.5有限差分法实例(i,j)(i+1,j)(i-1,j)01234(i,j)(i+1,j-1)(i-1,j-1)(i,j+1)(i+1,j+1)(i-1,j+1)i-1ii+1j-1jj+1h1h3h2h4(1,)(1,)(,1)(,1)4(,)0UijUijUijUijUij(i,j)(i+1,j)(i-1,j)01234(i,j)(i+1,j-1)(i-1,j-1)(i,j+1)(i+1,j+1)(i-1,j+1)i-1ii+1j-1jj+1h1h3h2h4forj=2:n-1fori=2:m-1;a((j-1)*m+i,(j-1)*m+i+1)=1;a((j-1)*m+i,(j-1)*m+i-1)=1;a((j-1)*m+i,j*m+i)=1;a((j-1)*m+i,(j-2)*m+i)=1;a((j-1)*m+i,(j-1)*m+i)=-4;endend(1,)(1,)(,1)(,1)4(,)0UijUijUijUijUij内部节点:边界节点:A矩阵非零系数减少,同时引入第一类边界,方程右端项B向量出现非零元素。局部节点编号总体节点编号AXB(135,135)AA(135,1)XX(135,1)BB组建A和B矩阵,求解线性方程组得到X%Matlab2Dclear;clc;figure('color','w');a=zeros(135,135);fori=1:135a(i,i)=1;end;fori=1:7a(15*i+1,15*i+2)=-0.25;a(15*i+1,15*i+16)=-0.25;a(15*i+1,15*i-14)=-0.25;endfori=1:7a(15*i+15,15*i+14)=-0.25;a(15*i+15,15*i+30)=-0.25;a(15*i+15,15*i)=-0.25;Enda(1,2)=-0.25;a(1,16)=-0.25;a(121,122)=-0.25;a(121,106)=-0.25;a(135,134)=-0.25;a(135,120)=-0.25;a(15,14)=-0.25;a(15,30)=-0.25;fori=2:14a(i,i-1)=-0.25;a(i,i+1)=-0.25;a(i,i+15)=-0.25;endfori=122:134a(i,i-1)=-0.25;a(i,i+1)=-0.25;a(i,i-15)=-0.25;endfori=1:7forj=2:14;a(15*i+j,15*i+j-1)=-0.25;a(15*i+j,15*i+j+1)=-0.25;a(15*i+j,15*i+j+15)=-0.25;a(15*i+j,15*i+j-15)=-0.25;endendb=a^(-1);c=zeros(135,1);fori=121:135c(i,1)=25;endd=b*c;s=zeros(11,17);fori=2:16s(11,i)=100;endfori=1:9forj=1:15;s(i+1,j+1)=d(15*(i-1)+j,1);endendsubplot(1,2,1),mesh(s)axis([0,17,0,11,0,100])subplot(1,2,2),contour(s,32)05101505100204060801005101512345678910112.5应用实例南加州一次未来大地震的强地面运动的数值模拟盆地效应Cui,2013Cui,2013Cui,2013Cui,2013总结:1、有限差分方法给出的数值解的精度取决于所用的差分形式(向前、向后、中心)。2、偏微分方程的显式有限差分格式通常是有条件稳定的,为了保证得到精确的数值解,最关键的是需要根据稳定性条件选取正确的空间和时间步长。显式与隐式差分格式主讲人:胡才博中国科学院大学地球科学学院中国科学院计算地球动力学重点实验室•显式差分格式(explicitdifferencescheme)差分方法中可逐层逐点分别求解的格式。•特点•1.不联立解方程;•2.时间步长和空间步长的选择受限制。通常要求时间步长足够小。隐式差分格式(implicitdifferencescheme)特点1.时间步长和空间步长的选择不受限制;2.需要联立解方程组显式和隐式:求解问题与时间相关()(())YttFYt((),())0GYtYtt例子:1.显式差分格式:左端:n+1时刻的值;右端:n时刻的值。特点:结构简洁,直接求解,求解速度快。但是,时间步长需满足:显式差分格式才能得到稳定的数值解,否则,数值解将会不稳定而振荡。显示差分格式示意图2.隐式差分格式:时间一阶精度空间二阶精度隐式有限差分格式111111112((2)(2))2()nnnnnnnniiiiiiiiTTTTTTTTtx111111112((2)(2))2()nnnnnnnniiiiiiiiTTTTTTTTtx1111111(22)(22)nnnnnniiiiiisTsTsTsTsTsTCrank-Nicolson隐式差分格式Crank-Nicolson隐式差分格式1111111(22)(22)nnnnnniiiiiisTsTsTsTsTsTForward-TimeCentral-SpacemethodBackward-TimeCentral-Spacemethod1/2Crank-Nicolson隐式差分格式一般差分格式312546求解区域:边界条件:初始条件:一种隐式差分格式的程序实现A=sparse(nx,nx);fori=2:nx-1A(i,i-1)=-s;A(i,i)=(1+2*s);A(i,i+1)=-s;endA(1,1)=1;A(nx,nx)=1;rhs=zeros(nx,1);rhs(2:nx-1)=Told(2:nx-1);rhs(1)=Tleft;rhs(nx)=Tright;内部节点:边界节点:载荷项:内部边界312546边界条件:初始条件:Crank-Nicolson隐式差分格式的程序实现1111111(22)(22)nnnnnniiiiiisTsTsTsTsTsT(1)()nnAcBc10000022000022000022000022000001ssssssAssssss11121(1)3141516nnnnnnnTTTcTTT10000022000022000022000022000001ssssssBssssss12()3456nnnnnnnTTTcTTTA=sparse(nx,nx);fori=2:nx-1A(i,i-1)=-s;A(i,i)=(2+2*s);A(i,i+1)=-s;endA(1,1)=1;A(nx,nx)=1;内部节点:边界节点:1111111(22)(22)nnnnnniiiiiisTsTsTsTsTsT(1)()nnAcBc10000022000022000022000022000001ssssssAssssss10000022000022000022000022000001ssssssBssssss12()3456nnnnnnnTTTcTTTB=sparse(nx,nx);fori=2:nx-1B(i,i-1)=s;B(i,i)=(2-2*s);B(i,i+1)=s;endB(1,1)=1;B(nx,nx)=1;内部节点:边界节点:例子:牛顿冷却定律:温度高于周围环境的物体向周围媒质传递热量逐渐冷却时所遵循的规律。当物体表面与周围存在温度差时,单位时间从单位面积散失的热量与温度差成正比。Tair一阶常微分方程的数值解(,)dTfTtdt首先对时间和温度进行离散:0,()jjjttjtTTt利用向前差分形式:1()jjjttTTdTOtdtt得到以下的显式差分格式:1(,)jjjjTTtfTtTcap利用向前差分格式:1()jjjttTTdTOtdtt1(,)jjjjTTtfTt1-=-jjjjttTTTT(1)0-jjtTT(1)现在改用向后差分形式进行近似,得到隐式差分格式:1()jjjttTTdTOtdtt1(,)jjjjTTtfTt11(1)jjtTT0(1)jjtTT可以验证,当时间步长趋近于零时,以上近似解趋于解析解。因此,该格式收敛。稳定性条件:T单调减小的条件1011t(,)TfTt显式差分格式隐式差分格式当dt=1.25,tau=0.7时,显式差分格式不稳定,结果振荡;隐式差分格式稳定,结果不精确。11(1)jjtTT隐式差分格式1011t无条件稳定重点考察差分格式的收敛性当dt=1,tau=0.7时,显式差分格式不稳定,结果振荡;隐式差分格式稳定,结果不精确。当dt=0.5,tau=0.7时,显式差分格式稳定,隐式差分格式稳定,结果不精确,两者都不精确。当dt=0.1,tau=0.7时,显式差分格式稳定;隐式差分格式稳定;结果都比较精确。当dt=0.01,tau=0.7时,显式差分格式稳定;隐式差分格式稳定;结果都相当精确。2231132322322()226()2412jjjjjjjjjjjjTTffdTdtdTdtdTOdtdtdtdtdtdtdfdtdffOdtdtdtdTdtdfdt3332()()jjjTOdtdtdTfOdtdt当dt和tau都大于零时,该式无条件满足,因此混合差分格式无条件稳定。xt(nt+1)=nt*dt;plot(xt,T_e,'b.-',xt,T_i,'g.-',xt,T_m,'m.-',xt,T_a,'r.-',);holdon%set(gca,'DataAspectR