对流方程差分法
- 格式:ppt
- 大小:930.90 KB
- 文档页数:36
对流方程差分格式稳定性判定李五明【摘要】The paper decided the stability of different difference schemes of the one dimension convection equation using Fourier stability analysis. The fundamental idea of Fourier stability analysis is to extend periodically the error of solution for the linear differential equation and express it using Fourier series, then check the enlargement and decay of every component of the Fourier series. According to Fourier series for each component change over time, we judged the stability of difference schemes by the magnification factor. Using the method, the paper decided the stability of different difference schemes for the given equation.%用傅里叶稳定性分析法判断一维对流方程不同差分格式的稳定性.傅里叶稳定性分析法的基本思想是:对于线性微分方程,将解的误差做周期延拓并用傅里叶级数表示出来,然后考察每一个傅里叶级数分量的增大和衰减情况;根据傅里叶级数每一个分量随时间的变化情况,由放大因子判断差分格式的稳定性.用该方法对给定方程不同差分格式的稳定性进行了判断.【期刊名称】《河南理工大学学报(自然科学版)》【年(卷),期】2012(031)003【总页数】4页(P369-372)【关键词】对流方程;差分格式;稳定性【作者】李五明【作者单位】河南理工大学数学与信息科学学院,河南焦作454000【正文语种】中文【中图分类】O175.210 引言用有限差分法数值求解偏微分方程是计算数学中的一个重要课题.在有限差分法中,差商代替了微商,差分方程代替了微分方程.然而,并不是任何情况下,差分方程都可以逼近原微分方程.因为,方程形式的逼近是一回事,方程解的逼近又是一回事.因此,在基本理论上必须解决数值计算中可能出现的诸如稳定性、精度等问题.采用有限差分法求解由偏微分方程所描述的具体问题时,在确定差分离散格式是否可用之前必须解决3个问题:当差分网格的时间与空间步长都趋近于零时,差分方程是否充分逼近原微分方程;差分格式的真解是否充分逼近原微分方程的精确解;差分格式的近似解与真解之间的误差是否有界.这3个问题在有限差分理论中分别称为相容性、收敛性和稳定性.差分格式的相容、收敛和稳定并不是孤立的,而是互有联系.根据LAX等价定理,若线性微分方程的初值问题适定、差分格式相容,则稳定性是收敛性的必要和充分条件.因此,常常通过判定一个差分格式的稳定性来判定其收敛性.因为,直接证明一个差分格式的收敛性是比较困难的,但对稳定性的证明却容易得多,且现有的方法也比较有效.本文介绍其中最常用的一种分析差分格式稳定性的方法:傅里叶稳定性分析法.傅里叶稳定性分析法的基本思想是将解的误差做周期延拓并用傅里叶级数表示出来,然后考察每一个傅里叶级数分量的增大和衰减情况.如果每一个分量的强度(或振幅)是随时间的推移而增大的,则所讨论的差分格式是不稳定的;反之,若每一个分量的振幅是随时间的推移而衰减或保持不变的,则格式是稳定的.为了进行这种分析,可以把某一分量的表达式代入到误差传播方程中,以得出相邻两时间层该分量的振幅比(通常称为放大因子).稳定性的条件要求放大因子的绝对值(或模)小于或等于1.当放大因子等于1时,称为中性稳定.在这种情况下,任何时刻引进的误差都不会衰减或放大.本文主要针对一维对流方程,利用傅里叶稳定性分析方法讨论其不同差分格式的稳定性.1 傅里叶稳定性分析法针对一个具体的方程来考察傅里叶稳定性分析法,然后再将该方法推广到其他差分格式.一维对流方程的初值问题如下:,(1)问题的定解域为x-t的上平面(图1),分别引入平行于x轴和平行于t轴的两族直线,把求解域划分为矩形网格.网格线的交点称为节点,x方向上网格线之间的距离Δx称为空间步长,t方向上网格线之间的距离Δx称为时间步长.这样,两族网格可记为x=xi=iΔx,(i=0,±1,±2,…),t=tn=nΔt,(n=0,1,2,…).网格划定后,就可针对其中的任一节点,如图1中的节点(xi,tn).将函数u在该点记为,tn)=u(iΔx,nΔt).(2)方程(1)的FTCS(Forward Time Central Space)格式为α.(3)将式(3)改写为易于递推计算的差分格式,有,式中:λ为网格比.相应于上式的误差传播方程为,(4)式中:ε为各节点上的误差.如果对ε在正负方向上作周期延拓,即把ε看作是以某一定值为周期的周期函数,则εn,εn+1可以展开为以下的傅里叶级数[5-6]:.于是,,(5),(6)式中:将式(5)和(6)代入式(4)得.(7)式(7)相当于将零展开成傅里叶级数,式中{ }内相当于傅里叶系数,它对于所有的k都等于零,即,(8)令,(9)则式(8)成为(不失一般性,支掉式中的下标记号k)Cn+1=GCn,(10)表示误差从第n层传播到第n+1层时,以傅里叶级数表示的每一误差分量的振幅放大或衰减了G倍.所以,称G为放大因子.傅里叶稳定性分析法就集中在对G 的分析上,如果|G|>1,则误差的振幅随n的增大而增大,差分格式不稳定;如果|G|≤1,则误差的振幅随n的增大而减小或不变,差分格式稳定.应用欧拉公式e±iz=cos z±isin z,将式(9)改写为G=1-iαλsin kΔx,得|G|2=1+α2λ2sin2kΔx.当sin2kΔx≠0时,选取网格比λ总有|G|>1.因此,差分格式(3)是不稳定的.从上例的分析注意到,以傅里叶稳定性分析法判断差分格式稳定性时,是从误差传播方程出发,将计算节点的误差延拓为傅里叶级数,并通过分析式(7)中傅里叶级数任一系数来确定放大因子G,进而确定差分格式的稳定性.对于齐次线性微分方程,由于误差传播方程与其相应的差分方程形式相同,在傅里叶稳定性分析中,只要令,(11)并将它们代入相应的差分格式中,同样可以得到与上例相同的放大因子G的表达式.为方便起见,在以后的傅里叶稳定性分析讨论中将采用式(11)的方式.2 应用举例例1 试讨论一维对流方程(1)的FTCS隐式差分格式的稳定性.解:方程(1)的FTCS隐式差分格式为α,(12)或写为,λ,将式(11)代入上式,有Cn+1eik(xi-Δx)]=Cneikxi,约去公因子eikxi后,得,即,由此得放大因子为,即≤1,所以,式(12)是无条件稳定的.例2 试讨论一维对流方程(1)的格式的稳定性.解:方程(1)的格式为,(13)或,λ,将式(11)代入上式,有,约掉公因子eikxi,得,由此得放大因子为,有|G|2=1.所以,差分格式(13)是无条件稳定的.3 结论(1)本文利用傅里叶稳定性分析法仅讨论一维对流方程不同差分格式稳定性的判断,实际上,该方法对二维对流方程、一(二)维扩散方程、一维对流-扩散方程也是适用的.(2)本文没有给出一维对流方程迎风格式稳定性的判定,主要是因为需要考虑CFL(Courant-Friedrichs-Lewy)条件,并且要对α的正负进行讨论.限于篇幅,略去.(3)傅里叶稳定性分析法只适用于线性微分方程,对于非线性方程差分格式稳定性的判定,目前还没有严格的一般性理论处理.通常的做法是,从非线性方程对应的线性化模型得出的稳定性判定准则出发,对非线性方程差分格式的稳定性进行大致估计,然后在实际计算中采用试算方法将其扩展到非线性问题中去.参考文献:[1] 张国强,吴家鸣.流体力学[M].北京:机械工业出版社,2005.[2] 顾丽珍.求解对流扩散方程的一些高阶差分格式[J].清华大学学报:自然科学版,1996,36(2):9-14.[3] 管秋琴.一类对流扩散方程组的差分格式与稳定性[J].上海电力学院学报,2009,25(2):192-195.[4] 余德浩,汤华中.微分方程数值解法[M].北京:科学出版社,2003.[5] 范德辉,陈辉,王秀凤,等.对流扩散方程差分格式稳定性分析[J].暨南大学学报:自然科学与医学版,2006,27(1):24-29.[6] 阴继翔,李国君,李卫华,等.对流扩散方程不同格式的数值稳定性分析[J].太原理工大学学报:自然科学版,2004,35(2):121-124,133.[7] 马荣,石建省,张翼龙,等.对流-弥散方程显式差分法稳定性分析方法的初探[J].水资源与水工程学报,2010,21(1):132-134.[8] 陆金甫,关治.偏微分方程数值解解法[M].北京:清华大学出版社,2004.[9] 王静,王艳.RICCATI方程有理展开法及其在非线性反应扩散方程中的应用[J].河南理工大学学报:自然科学版,2010,29(5):689-694.[10] 王同科,马明书.二维对流扩散方程的二阶精度特征差分格式[J].工程数学学报,2004,21(5):727-731.。
% 一维对流方程迎风格式、Lax格式、FTCS格式差分法计算% 潭花林清华大学航天航空学院% FTCS格式对于一维对流方程不稳定,最好不用clcclear all% 1.参数定义dx=1;x1=-18;x2=18;x=x1:dx:x2;L1=length(x);% dt=0.5*dx; % 收敛dt=2*dx; % 不收敛t1=0;t2=t1+80*dt;t=t1:dt:t2;L2=length(t);alpha=1;lambda=alpha*dt/dx;geshi=1; % 迎风格式% geshi=2; % Lax格式% geshi=3; % FTCS格式% 2.显式求解zeta=zeros(L1,L2);for kk=1:3geshi=kk;for ii=1:L1if x(ii)>0zeta(ii,1)=1;elseif x(ii)==0zeta(ii,1)=1/2;elseif x(ii)<0zeta(ii,1)=0;endendendendif geshi==1for ii=2:L1for jj=1:(L2-1)zeta(ii,jj+1)=zeta(ii,jj)-lambda*(zeta(ii,jj)-z eta(ii-1,jj));endzeta(1,jj+1)=zeta(2,jj+1);endzeta1=zeta;else if geshi==2for ii=2:(L1-1)for jj=1:(L2-1)zeta(ii,jj+1)=(zeta(ii+1,jj)+zeta(ii-1,jj))/2-. ..lambda/2*(zeta(ii+1,jj)-zeta(ii-1,jj));endzeta(1,jj+1)=zeta(2,jj+1);zeta(L1,jj+1)=zeta(L1,jj)-lambda*(zeta(L1,jj)-z eta(L1-1,jj));endzeta2=zeta;else if geshi==3for ii=2:(L1-1)for jj=1:(L2-1)zeta(ii,jj+1)=zeta(ii,jj)-lambda/2*(zeta(ii+1,j j)-zeta(ii-1,jj));endzeta(1,jj+1)=zeta(2,jj+1);zeta(L1,jj+1)=zeta(L1,jj)-lambda*(zeta(L1,jj)-z eta(L1-1,jj));endzeta3=zeta;endendendend% 3.绘图% 3.1 t=0figure(1)n=1;plot(x,zeta1(1:L1,n),'-k',x,zeta2(1:L1,n),'-.k' ,x,zeta3(1:L1,n),'--k')% 作图% axis equal %%% 是否要求x、y坐标间距相等% grid on %%% 是否要求画网格xlabel('x/m'),ylabel('t/s') % %% x,y轴表示的变量含义%text(1,2,'f(x)') %%% 图中文字标识legend('迎风格式','Lax格式','FTCS格式') %%% 不同曲线的线型区分title('t=0时刻的计算结果') %%% 标题axis([-18,18,-0.2,1.2])% 3.2 t=10figure(2)n=(10-t(1))/dt;plot(x,zeta1(1:L1,n),'-k',x,zeta2(1:L1,n),'-.k' ,x,zeta3(1:L1,n),'--k')% 作图% axis equal %%% 是否要求x、y坐标间距相等% grid on %%% 是否要求画网格xlabel('x/m'),ylabel('t/s') % %% x,y轴表示的变量含义%text(1,2,'f(x)') %%% 图中文字标识legend('迎风格式','Lax格式','FTCS格式') %%% 不同曲线的线型区分title('t=10s时刻的计算结果') %%% 标题% 3.3 t=20figure(3)n=(20-t(1))/dt;plot(x,zeta1(1:L1,n),'-k',x,zeta2(1:L1,n),'-.k' ,x,zeta3(1:L1,n),'--k')% 作图% axis equal %%% 是否要求x、y坐标间距相等% grid on %%% 是否要求画网格xlabel('x/m'),ylabel('t/s') %%% x,y轴表示的变量含义%text(1,2,'f(x)') %%% 图中文字标识legend('迎风格式','Lax格式','FTCS格式') %%% 不同曲线的线型区分title('t=20s时刻的计算结果') %%% 标题% 3.4 t=40figure(4)n=(40-t(1))/dt;plot(x,zeta1(1:L1,n),'-k',x,zeta2(1:L1,n),'-.k' ,x,zeta3(1:L1,n),'--k')% 作图% axis equal %%% 是否要求x、y坐标间距相等% grid on %%% 是否要求画网格xlabel('x/m'),ylabel('t/s') % %% x,y轴表示的变量含义%text(1,2,'f(x)') %%% 图中文字标识legend('迎风格式','Lax格式','FTCS格式') %%% 不同曲线的线型区分title('t=40s时刻的计算结果') %%% 标题。
一维对流方程的形式如下所示:其中,u代表物质的量,a代表物质的运动速度。
此一维对流方程仅仅表示物质的运动情况,而与边界条件或是约束条件无关。
当a为常数时,此一维对流方程为一维常系数对流方程,当a不为常数时,方程为一维变系数对流方程。
差分方法求解波动方程的MATLAB程序求解区间{(,):0,0}=≤≤≤≤,以(16.3.7)为边界条件的波动方程的R x t x a t b差分方法程序。
**********************************************************function U = finedif(f,g,a,b,c,n,m)%Input - f=u(x,0) as a string 'f'% - g=ut(x,0) as a string 'g'% - a and b right endpoints of [0,a] and [0,b]% - c the constant in the wave equation% - n and m number of grid points over [0,a] and [0,b]%Output - U solution matrix; analogous to Table 10.1%Initialize parameters and Uh = a/(n-1);k = b/(m-1);r = c*k/h;r2=r^2;r22=r^2/2;s1 = 1 - r^2;s2 = 2 - 2*r^2;U = zeros(n,m);%Comput first and second rowsfor i=2:n-1U(i,1)=feval(f,h*(i-1));U(i,2)=s1*feval(f,h*(i-1))+k*feval(g,h*(i-1)) ...+r22*(feval(f,h*i)+feval(f,h*(i-2)));end%Compute remaining rows of Ufor j=3:m,for i=2:(n-1),U(i,j) = s2*U(i,j-1)+r2*(U(i-1,j-1)+U(i+1,j-1))-U(i,j-2); endendU=U';*******************************************************************。
有限差分法数值求解一维伯格斯方程作者:潭花林1. 引言本文利用有限差分法计算了一维伯格斯方程的初边值问题。
采用FTCS 格式,并深入讨论了它的相容性、收敛性与稳定。
有限差分法在计算流体力学、数值传热学中都有众多的应用,而且可以用于高维情形。
所有问题都是采用matlab 编程计算。
本文只是一个简单的一维问题的算例。
关键词:计算流体力学,有限差分法,一维对流方程2. 题目用计算机求对流方程的初值问题()01 01 0 18,020 0u u t xx u u x t t x ∂∂+=∂∂>⎧⎪∂⎪==-=⎨∂⎪<⎪⎩ 的数值解(由于对流方程的计算结果只依赖与上游,只需要给出上有的边界条件就可以了)。
(1)分别用C 格式,Lax 格式,FTCS 格式在12t x ∆=∆ ,2tx∆=∆两种情况下计算。
(2)计算围为1818x -≤≤,取1,0x t ∆=>,计算80个时间步长。
(3)写出计算报告,容为(I )计算课题 (II )计算框图 (III )计算程序(IV )计算结果,0,10,20,40t =时的,u x -图 (V )体会3. 计算原理3.1. 迎风格式点采用如下差分格式(),1,,1,237,180i n i n i ni n tu u u u xi n α+-∆=--∆≤≤≤≤初值为()(),1,01811,137i i i u u x x i x x i ==-+-∆∆=≤≤ 边界条件为 1,2,n n u u =稳定性:差分格式的稳定性:误差方程与差分方程相同(),1,,1,i n i n i ni n txαεεεε+-∆=--∆设误差为,iIkx i n n c eε=,则()()11111i i ii Ikx Ikx Ikx Ikx n n nn Ik x n n tc e c e c e c e xt c e c x αα-+-∆+∆=--∆∆⎡⎤=--⎢⎥∆⎣⎦放大因子()11Ik xtG e xα-∆∆=--∆所以2221x y t t G G x x αα⎡⎤∆∆⎛⎫⎛⎫--+= ⎪ ⎪⎢⎥∆∆⎝⎭⎝⎭⎣⎦ 为使1G ≤,应有01txα∆<≤∆对于本问题,初值和边界条件并不影响稳定性和收敛性问题。
应用数学MATHEMATICA APPLICATA2019,32(3):635-642求解一维对流方程的高精度紧致差分格式侯波,葛永斌(宁夏大学数学统计学院,宁夏银川750021)摘要:本文提出数值求解一维对流方程的一种两层隐式紧致差分格式,采用泰勒级数展开法以及对截断误差余项中的三阶导数进行修正的方法对时间和空间导数进行离散.格式的截断误差为O(τ4+τ2h2+h4),即该格式在时间和空间上均可达到四阶精度.利用von Neumann方法分析得到该格式是无条件稳定的.通过数值实验验证了本文格式的精确性和稳定性.关键词:对流方程;高精度;紧致格式;无条件稳定;有限差分法中图分类号:O241.82AMS(2000)主题分类:65M06;65M12文献标识码:A文章编号:1001-9847(2019)03-0635-081.引言对流方程在生物数学、能源开发、空气动力学等许多领域都具有十分广泛的应用,因此求解该类方程具有非常重要的理论价值和实际意义.然而,由于实际问题通常十分复杂,往往难以求得精确解,因此研究其精确稳定的数值解法是十分必要的.针对对流方程国内外很多学者提出了很多的数值方法.如张天德和孙传灼[1]针对一维对流方程采用待定系数法,得到了两层四点格式和四阶六点格式,并且是无条件稳定的,该方法适用于在点数确定的前提下,得到精度高的差分格式;于志玲和朱少红[2]针对一维问题建立了中间层为两个节点的三层显格式,其截断误差为O(τ2+h2);曾文平[3]针对一维对流方程推导出了一种两层半显式格式,其截断误差为O(τ2+h2),该格式是无条件稳定的.姚朝辉等人[5]将二阶的迎风格式和中心差分格式进行加权得到了WSUC格式,该格式是无条件稳定的;但该格式时间方向和空间方向仅有二阶精度.汤寒松等人[6]通过立方插值拟质点方法(CIP方法),给出了一些保单调的CIP格式;Erdogan[9]针对一维的对流方程推导出了一种指数拟合的差分格式,其截断误差为O(τ2+h2);Bourchtein[10]构造了对流方程的三层五点中心型蛙跳格式,该格式的截断误差为O(τ4+h4);即该格式时间和空间均具有四阶精度,但是该格式是三层的,空间方向需要五个点,并且是条件稳定的;Kim[11]构造了多层无耗散的迎风蛙跳格式,即时间和空间分别具有二阶、四阶、六阶精度,但格式为三层甚至是四层的,并且六阶格式空间方向最多需要五个点,给靠近边界的内点的计算带来困难.综上所述,文献中已经有的数值计算方法大多为低阶精度的,而高精度方法涉及多个时间层,需要一个或多个时间启动步,或者空间方向的网格节点多于三个,这都给计算造成困难或不便.为此本文将构造一种紧致格式,这里紧致格式的定义为对时间导数项的离散采用不超过∗收稿日期:2018-08-10基金项目:国家自然科学基金(11772165,11361045),宁夏自然科学基金重点项目(2018AAC02003),宁夏自治区重点研发项目(2018BEE03007)作者简介:侯波,男,汉族,河南人,研究方向:偏微分方程数值解法.通讯作者:葛永斌.636应用数学2019三个时间层,而对空间导数项的离散采用不超过三个网格点,时间和空间即可以达到高阶精度(三阶及三阶以上)的格式.本文拟构造的格式时间方向仅用到两个时间层上的函数值,在每个时间层上仅涉及到三个空间网格点,格式时间和空间具有整体的四阶精度.该格式的优点是无须启动步的计算,并且在对靠近边界点的计算时,不会用到计算域以外的网格节点.此外该格式为无条件稳定的,可以采用比较大的时间步长进行计算.最后通过数值实验验证本文格式的精确性和稳定性.2.差分格式的建立考虑如下一维对流方程:∂u ∂t +a∂u∂x=f,b≤x≤c,t≥0,(2.1)给定初始条件为:u(x,0)=φ(x),b≤x≤c,(2.2)给定周期性边界条件为:u(b,t)=u(c,t),t≥0,(2.3)其中,u(x,t)为未知函数,f为非齐次项,a为对流项系数,φ(x)为已知函数.将求解区域[b,c]等距剖分为N个子区间:b=x0,x1,···,x N−1,x N=c,并且定义h=c−bN,时间也采用等距剖分,步长用τ表示.在本文中,我们利用u ni ,u n+1i,u n+12i分别表示u在(x i,t n),(x i,t n+1)和(x i,t n+12)点处的函数值.假设方程(2.1)在点(x i,t n+12)成立,简写表示为:(∂u ∂t )n+12i+a(∂u∂x)n+12i=f n+12i.(2.4)将u n+1i 和u ni在点(x i,t n+12)处做泰勒级数展开,可得:u n+1i=u n+12i+τ2(∂u∂t)n+12i+(τ2)22!(∂2u∂t2)n+12i+(τ2)33!(∂3u∂t3)n+12i+O(τ4),(2.5)u ni=u n+12i−τ2(∂u∂t)n+12i+(τ2)22!(∂2u∂t2)n+12i−(τ2)33!(∂3u∂t3)n+12i+O(τ4).(2.6)(2.5)-(2.6)可得:(∂u∂t)n+12i=δt u n+12i−τ224(∂3u∂t3)n+12i+O(τ4),(2.7)其中,δt u n+12i =u n+1i−u n iτ.同理可得:(∂u∂x)n+12i=δx u n+12i−h26(∂3u∂x3)n+12i+O(h4),(2.8)其中,δx u n+12i =un+12i+1−u n+12i−12h.将(2.7)和(2.8)代入(2.4)整理可得:δt u n+12i −τ224(∂3u∂t3)n+12i+aδx u n+12i−ah26(∂3u∂x3)n+12i=f n+12i+O(τ4+h4).(2.9)为了使该格式在时间方向和空间方向上均达到四阶精度,须对(2.9)式中的∂3u∂t3和∂3u∂x3项进行二阶的离散,同时为了保证本文格式的紧致性,即空间方向不超过三个网格点,我们对(2.1)式进行如下变形:∂u ∂t =−a∂u∂x+f,∂2u∂t2=a2∂2u∂x2−a∂f∂x+∂f∂t,第3期侯波等:求解一维对流方程的高精度紧致差分格式637∂3u ∂t 3=a 2∂3u ∂x 2∂t −a ∂2f ∂x∂t +∂2f ∂t 2,∂3u ∂x 3=−1a ∂3u ∂x 2∂t +1a ∂2f ∂x 2.(2.10)将上述∂3u ∂t 3和∂3u∂x 3的表达式(2.10)代入(2.9)并整理可得:δt u n +12i+aδx u n +12i +124(4h 2−a 2τ2)(∂3u ∂x 2∂t)n +12i −τ224(∂2f ∂t 2)n +12i −h 26(∂2f ∂x 2)n +12i +aτ224(∂2f ∂x∂t)n +12i =f n +12i +O (τ4+h 4).(2.11)如果对上式中的δx u n +12i 项采用时间方向算术平均,即δx u n +12i =δx u n +1i+u n i 2,则会导致格式时间退化为二阶精度,为此利用(2.5)+(2.6)可得:u n +12i =12(u n +1i +u n i )−τ28(∂2u ∂t2)n +12i +O (τ4).(2.12)从而可得:δx u n +12i =12δx (u n +1i +u n i )−τ28δx (∂2u ∂t2)n +12i +O (τ4).(2.13)将(2.13)代入(2.11)得:δt u n +12i +a 2δx (u n +1i +u n i )−aτ28δx (∂2u ∂t 2)n +12i +124(4h 2−a 2τ2)(∂3u ∂x 2∂t )n +12i −τ224(∂2f ∂t 2)n +12i −h 26(∂2f ∂x 2)n +12i +aτ224(∂2f ∂x∂t)n +12i =f n +12i +O (τ4+h 4).(2.14)由于δx (∂2u ∂t 2)n +12i =(∂3u ∂x∂t 2)n +12i+O (h 2),所以可得:δt u n +12i +a 2δx (u n +1i +u n i )−aτ28(∂3u ∂x∂t 2)n +12i +124(4h 2−a 2τ2)(∂3u ∂x 2∂t)n +12i −τ224(∂2f ∂t 2)n +12i −h 26(∂2f ∂x 2)n +12i +aτ224(∂2f ∂x∂t)n +12i =f n +12i +O (τ4+τ2h 2+h 4).又因为∂3u ∂x∂t 2=−a ∂3u∂x 2∂t +∂2f ∂x∂t ,所以有:δt u n +12i +a 2δx (u n +1i +u n i )−aτ28(−a ∂3u ∂x 2∂t +∂2f ∂x∂t )n +12i +124(4h 2−a 2τ2)(∂3u ∂x 2∂t )n +12i −τ224(∂2f ∂t 2)n +12i −h 26(∂2f ∂x 2)n +12i +aτ224(∂2f ∂x∂t)n +12i =f n +12i +O (τ4+τ2h 2+h 4),即,δt u n +12i +a 2δx (u n +1i +u n i )+(a 2τ212+h 26)(∂3u ∂x 2∂t )n +12i −τ224(∂2f ∂t 2)n +12i −h 26(∂2f ∂x 2)n +12i −aτ212(∂2f ∂x∂t )n +12i =f n +12i +O (τ4+τ2h 2+h 4).由于(∂3u ∂x 2∂t )n +12i=δ2x (∂u ∂t )n +12i +O (h 2),所以有:u n +1i −u n i τ+a 4h(u n +1i +1−u n +1i −1+u ni +1−u n i −1)+(h 26+a 2τ212)δ2x u n +1i −u n i τ−τ224(f n +1i −2f n +12i +f n −1i (τ2)2)−h 212[(∂2f ∂x 2)n +1i +(∂2f ∂x 2)n −1i ]−aτ12[(∂f ∂x )n +1i −(∂f ∂x)n −1i ]=f n +12i +O (τ4+τ2h 2+h 4),其中,δ2xu i =u i +1−2u i +u i −1h 2,舍去O (τ4+τ2h 2+h 4),等式两边同时乘以τ,并令λ=τ/h ,整理可得:u n +1i +aλ4(u n +1i +1−u n +1i −1)+(16+a 2λ212)(u n +1i +1−2u n +1i +u n +1i −1)638应用数学2019=u n i−aλ4(u n i +1−u n i −1)+(16+a 2λ212)(u n i +1−2u n i +u ni −1)+τ6(f n +1i −2f n +12i +f n i )+τ12(f n +1i +1−2f n +1i +f n +1i −1+f n i +1−2f n i +f n i −1)+aτλ24(f n +1i +1−f n +1i −1−f n i +1+f ni −1)+τf n +12i,即,(23−a 2λ26)u n +1i +(16+aλ4+a 2λ212)u n +1i +1+(16−aλ4+a 2λ212)u n +1i −1=(23−a 2λ26)u n i +(16−aλ4+a 2λ212)u n i +1+(16+aλ4+a 2λ212)u n i −1+(τ12+aλτ24)f n +1i +1(τ12−aλτ24)f n +1i −1+(τ12−aλτ24)f n i +1+(τ12+aλτ24)f n i −1+2τ3f n +12i .(2.15)由推导过程可知,该格式的截断误差为O (τ4+τ2h 2+h 4),即格式(2.15)在时间和空间上均可达到四阶精度.我们注意到,格式为两层格式,并且格式每层仅用到三个网格点,形成的代数方程组系数矩阵为循环三对角矩阵,可采用追赶法进行求解[8],同时由于要求未知时间层上(第n +1层)中间点的系数不能等于0,即23−a 2λ26=0,因此aλ=2.3.稳定性分析下面采用von Neumann 方法分析本文所推导的差分格式(2.15)的稳定性.对于(2.15)式,舍掉非齐次项f ,即假设f 项精确成立,令u n i =ηn e Iσx i,其中,η为振幅,σ为波数,I =√−1为虚数单位,有(23−a 2λ26)ηn +1e Iσx i +(16+aλ4+a 2λ212)ηn +1e Iσx i +1+(16−aλ4+a 2λ212)ηn +1e Iσx i −1=(23−a 2λ26)ηn e Iσx i +(16−aλ4+a 2λ212)ηn e Iσx i +1+(16+aλ4+a 2λ212)ηn e Iσx i −1.(3.1)两边同时约掉e Iσx i ,并整理可得:(23−a 2λ26)ηn +1+(16+a 2λ212)ηn +1(e Iσh +e −Iσh )+aλ4ηn +1(e Iσh −e −Iσh )=(23−a 2λ26)ηn+(16+a 2λ212)ηn (e Iσh +e −Iσh )−aλ4ηn +1(e Iσh −e −Iσh ).(3.2)利用Euler 公式,即e Iσh =cos σh +I sin σh,e −Iσh =cos σh −I sin σh ,可得:(23−a 2λ26)ηn +1+[(13+a 2λ26)cos σh ]ηn +1+(aλI 2sin σh )ηn +1=(23−a 2λ26)ηn +[(13+a 2λ26)cos σh ]ηn −(aλI 2sin σh )ηn .(3.3)对上式进行化简整理有[(23−a 2λ26)+(13+a 2λ26)cos σh +aλI sin σh 2]ηn +1=[(23−a 2λ26)+(13+a 2λ26)cos σh −aλI sin σh 2]ηn .(3.4)从而可得格式(2.15)的误差放大因子为:G =ηn +1ηn =(23−a 2λ26)+(13+a 2λ26)cos σh −aλI sin σh2(23−a 2λ26)+(13+a 2λ26)cos σh +aλI sin σh2.(3.5)由von Numann 稳定性定理可知当|G |≤1时,格式是稳定的,由(3.5)可得|G |=1,因此,格式(2.15)是无条件稳定的.4.数值实验第3期侯波等:求解一维对流方程的高精度紧致差分格式639为了验证本文格式(2.15)的精确性和稳定性,现考虑以下三个具有精确解的初边值问题.分别采用Crank-Nicolson(C-N)格式,文[7]中格式和本文格式(2.15)进行计算;其中,最大绝对误差及收敛阶的定义为:L∞=maxi |u n i−u(x i,t n)|,Rate=log[L∞(h1)/L∞(h2)]log(h1/h2)L∞(h1)和L∞(h2)为空间网格步长分别为h1和h2时的最大绝对误差.问题1[7]:∂u ∂t +∂u∂x=0,0≤x≤2,t>0,u(x,0)=sin(πx),0≤x≤2,u(0,t)=u(2,t),t>0,该问题的精确解为:u(x,t)=sin[π(x−t)].表1问题1当λ=τ/h=0.5,t=1时刻的最大绝对误差及收敛阶h推进步数(n)C-N格式文[7]本文格式L∞误差Rate L∞误差Rate L∞误差Rate 1/510 2.217(-1) 4.865(-2) 1.993(-3)1/1020 5.752(-2) 1.95 1.263(-2) 1.95 1.208(-4) 4.041/2040 1.450(-2) 1.99 3.199(-3) 1.987.490(-6) 4.011/4080 3.631(-3) 2.008.038(-4) 1.99 4.672(-7) 4.001/801609.082(-4) 2.00 2.014(-4) 2.00 2.919(-8) 4.001/160320 2.271(-4) 2.00 5.041(-5) 2.00 1.824(-9) 4.00表2问题1当τ=λh,t=2时刻的最大绝对误差hτλC-N格式文献[7]本文格式1/160.050000000.8 5.290(-2) 1.292(-2) 1.574(-5) 0.10000000 1.69.013(-2) 5.095(-2) 3.198(-3) 0.20000000 3.2 2.307(-1) 1.941(-1) 6.055(-2) 0.40000000 6.4 6.874(-1) 6.597(-1) 1.746(-2)1/320.025000000.8 1.330(-2) 3.230(-3)9.814(-7) 0.20000000 6.4 2.041(-1) 1.950(-1) 1.575(-3) 0.4000000012.8 6.668(-1) 6.601(-1) 1.916(-2)图1问题1当N=32,τ=0.03125,t=0.2时刻的数值解与精确解640应用数学2019表1给出了针对问题1三种格式在不同空间步长h下,当λ=τ/h=0.5,t=1时的最大绝对误差和收敛阶.我们发现C-N格式在时间和空间上都为二阶精度,由于文[7]格式时间具有二阶精度,空间具有四阶精度,因此当取τ=O(h)时,格式空间仅有二阶精度,而本文格式时间和空间均为四阶精度.图1给出N=32,τ=0.03125,t=0.2数值解与精确解对比图,可以看出数值解与精确解吻合的很好.表2给出了当h=1/16和h=1/32时,τ=λh,t=2时刻对问题1采用三种格式计算的最大绝对误差.可以看出网格比λ最大取到12.8,计算仍然是稳定的,因此本文格式是无条件稳定的.并且本文格式在所有参数下,其计算结果比C-N格式和文[7]格式计算结果更加精确.问题2[7]:∂u ∂t +∂u∂x=0,0≤x≤2,t>0,u(x,0)=e cos(πx),0≤x≤2,u(0,t)=u(2,t),t>0,该问题的精确解为:u(x,t)=e cos[π(x−t)].表3问题2当λ=τ/h=0.5,t=1时刻的最大绝对误差及收敛阶h推进步数(n)C-N格式文[7]本文格式L∞误差Rate L∞误差Rate L∞误差Rate 1/510 6.754(-1) 1.428(-1) 5.567(-2)1/1020 2.310(-1) 1.55 3.099(-2) 2.20 3.041(-3) 4.191/2040 6.027(-2) 1.94 6.825(-3) 2.18 1.904(-4) 4.001/4080 1.492(-2) 2.01 1.658(-3) 2.04 1.165(-5) 4.031/80160 3.705(-3) 2.01 4.115(-4) 2.017.252(-7) 4.011/1603209.250(-4) 2.00 1.028(-4) 2.00 4.527(-8) 4.00表4问题2当τ=λh,t=2时刻的最大绝对误差hτλC-N格式文[7]本文格式1/160.050000000.8 2.171(-1) 5.372(-2) 3.897(-4) 0.10000000 1.6 3.450(-1) 2.056(-1)7.795(-3) 0.20000000 3.2 6.810(-1) 6.111(-1) 3.416(-1) 0.40000000 6.4 1.220 1.198 2.017(-1)1/320.025000000.8 5.575(-2) 1.325(-2) 2.449(-5) 0.20000000 6.4 6.302(-1) 6.109(-1) 2.350(-2) 0.4000000012.8 1.204 1.199 2.201(-1)表3和表4给出了针对问题2利用本文格式和C-N格式以及文[7]格式的计算结果.表3考察了格式的精度,表4验证了格式的稳定性.可以看出本文格式在时间和空间上均可达到四阶精度,并且是无条件稳定的.问题3∂u ∂t +a∂u∂x=f,0≤x≤2,t>0,u(x,0)=cos(πx),0≤x≤2,u(0,t)=u(2,t),t>0,f=π(1−a)sin[π(x−t)],该问题的精确解为:u(x,t)=cos[π(x−t)].第3期侯波等:求解一维对流方程的高精度紧致差分格式641表5问题3当λ=τ/h=0.5,a=0.5,t=1时刻的最大绝对误差及收敛阶h推进步数(n)C-N格式本文格式L∞误差Rate L∞误差Rate1/510 1.124(-1) 4.244(-4)1/1020 3.520(-2) 1.67 2.744(-5) 3.951/20409.957(-3) 1.82 1.739(-6) 3.981/4080 2.551(-3) 1.96 1.134(-7) 3.941/80160 6.413(-4) 1.99 1.351(-8) 3.07问题3为非齐次问题,由于文[7]的方程模型为齐次方程,不能计算非齐次问题,因此该问题我们采用本文格式和C-N进行计算和比较,表5给出了两种格式在不同空间步长h下,当t=1时的最大绝对误差和收敛阶.可以看出当λ=τ/h=0.5,a=0.5时,C-N格式在时间和空间上都为二阶精度,而本文格式时间和空间均为四阶精度.5.结论本文针对一维对流方程提出了一种两层隐式高精度紧致差分格式,时间和空间均采用泰勒级数展开法以及截断误差余项修正法进行处理,格式截断误差为O(τ4+τ2h2+h4),即该格式在时间和空间上均可达到四阶精度.并通过von Neumann方法分析得到该格式为无条件稳定的.最后通过三个数值算例验证了格式的精确性和稳定性.通过上述研究,我们可以得出如下结论:1.文献(如[10-11])中的高精度格式往往是时间多层格式,需要另外构造启动步的计算格式,如果采用低精度格式启动,必然会影响以后时间层的计算精度.而本文格式仅为两层格式,无须启动步的计算,时间即可达到四阶精度.2.文献(如[1,10-11])中的高精度格式空间方向上往往超过三个网格节点,导致靠近边界的内点计算困难,需要采用特殊处理,而本文格式仅用到三个网格节点,可以有效避免这一问题.3.尽管本文格式要求aλ=2,这是本文格式的一个缺陷,但是由于本文格式是无条件稳定的,从理论上讲可以采用任意网格比,因此可以很容易避开aλ=2的条件限制,使得这一缺陷并不太影响格式的使用.4.由于本文方法推导过程中涉及到∂2u∂t2,∂3u∂t3,∂3u∂x3的计算,需要用原方程进行多次求导并进行反复代入计算,在考虑对流项为变系数问题时,将涉及到a(x,t)关于x和t的二阶导数,由于我们考虑在时间半点处,即(x i,t n+12)处的函数值,即要用到(∂2a∂t2)n+12i,如果采用中心差分,则时间仅具有二阶精度,因此本文方法不适用于变系数问题.5.本文方法可直接推广到二维和三维问题中去,我们将另文报道.参考文献:[1]张天德,孙传灼.对流方程的差分格式[J].计算物理,1995,12(2):191-195.[2]于志玲,朱少红.关于对流方程一类三层显格式[J].南开大学学报(自然科学版),1998,31(3):27-30.[3]曾文平.解对流方程的加耗散项的差分格式[J].应用数学,2001,14(S1):154-158.[4]陆金甫,关治.偏微分方程数值解法[M].北京:北京大学出版社,1987.[5]姚朝晖,张锡文,任玉新等.一种低耗散、无伪振荡的实用差分格式[J].水动力学研究与进展(A辑),2001,16(02):195-199.[6]汤寒松,张德良,李椿萱.对流方程保单调CIP格式[J].水动力学研究与进展(A辑),1997(02):181-187.[7]赵飞,蔡志权,葛永斌.一维非定常对流扩散方程的有理型高阶紧致差分公式[J].江西师范大学学报(自然科学版),2014,38(4):413-418.642应用数学2019[8]李青,王能超.解循环三对角线性方程组的追赶法[J].小型微型计算机系统,2002(23):1393-1395.[9]ERDOGAN U.Improved upwind discretization of the advection equation[J].Numer.Meth.PartDiffer.Equ.,2014,30:773-787.[10]BOURCHTEIN A,BOURCHTEIN L.Explicitfinite schemes with extended stability for advectionequations[J]put.Appl.Math.,2012,236:3591-3604.[11]KIM C.Accurate multi-level schemes for advection[J].Int.J.Numer.Methods Fluids.,2003,41:471-494.A High-Order Compact Difference Scheme for Solving the1DConvection EquationHOU Bo,GE Yongbin(School of Mathematics and Statistics,Ningxia University,Yinchuan750021,China)Abstract:In this paper,a two-level implicit compact difference scheme for solving the one-dimensional convection equation is proposed.Taylor series expansion and correction for the third derivative in the truncation error remainder of the central difference scheme are used for the discretization of time and space.The local truncation error of the scheme is O(τ4+τ2h2+h4),i.e.,it has the fourth-order accuracy in both time and space.The unconditional stability is obtained by the von Neumann method. The accuracy and the stability of the present scheme are validated by some numerical experiments.Key words:Convection equation;High accuracy;Compact difference scheme;Unconditional sta-bility;Finite difference method。
一维对流扩散方程是指一维均匀的边界层上的传质过程的数学模型,常用于描述对流扩散过程中的温度、湿度、速度等场的分布情况。
一维对流扩散方程的数学形式为:∂φ/∂t+U∂φ/∂x=D∂^2φ/∂x^2其中φ表示传质物质的浓度,t表示时间,x表示空间坐标,U表示对流速度,D表示扩散系数。
二维对流扩散方程是指二维均匀的边界层上的传质过程的数学模型,常用于描述对流扩散过程中的温度、湿度、速度等场的分布情况。
二维对流扩散方程的数学形式为:∂φ/∂t+U∂φ/∂x+V∂φ/∂y=D∂^2φ/∂x^2+D∂^2φ/∂y^2其中φ表示传质物质的浓度,t表示时间,x和y分别表示两个空间坐标,U和V分别表示两个方向上的对流速度,D表示扩散系数。
单调差分格式是一种常用的数值求解方法,它通过进行差分运算来求解微分方程的数值解。
在求解一维和二维对流扩散方程时,可以使用单调差分格式来解决。
具体来说,可以将空间坐标和时间分别离散化,将对流扩散方程转化为一个线性方程组,然后使用单调差分格式来解决。
单调差分格式的具体形式取决于方程的类型和离散化的方式,但一般来说,它都是将微分方程的差分形式写成一个线性方程组的形式。
例如,在求解一维对流扩散方程时,可以使用下面的单调差分格式:φ_i^{n+1}=φ_i^n+Δt(D(φ_{i+1}^n-2φ_i^n+φ_{i-1}^n)/Δx^2+U(φ_ {i+1}^n-φ_{i-1}^n)/2Δx)其中φ_i^n表示第i个网格点在时间步n的浓度值,Δx和Δt分别表示网格的空间步长和时间步长。
同样的,在求解二维对流扩散方程时,可以使用下面的单调差分格式:φ_i^n=φ_i^n+Δt(D(φ_{i+1,j}^n+φ_{i-1,j}^n+φ_{i,j+1}^n+φ_{i,j-1}^ n-4φ_i^n)/Δx^2+U(φ_{i+1,j}^n-φ_{i-1,j}^n)/2Δx+V(φ_{i,j+1}^n-φ_ {i,j-1}^n)/2Δy)其中φ_i^n表示第(i,j)个网格点在时间步n的浓度值,Δx和Δy分别表示网格在x和y方向上的空间步长,Δt表示时间步长。
对流方程及其解法对流方程是描述流体运动的最基本方程之一,涉及热、动量、物质等的传递现象,对于各种物理问题的研究都具有重要意义。
本文将从对流方程的基本形式和意义出发,探讨其常见解法及相关应用。
一、对流方程的基本形式与意义对流方程是描述流体中质量、热量和动量传递的方程,其基本形式可以写作:$$ \frac{\partial\phi}{\partial t} + (\mathbf{v}\cdot\nabla)\phi =\nabla\cdot(\Gamma\nabla\phi) $$其中,$\phi$为描述流体量的变量,如温度、密度、浓度等;$\mathbf{v}$为流体的流速,$\Gamma$为扩散系数。
对该方程的解析求解较为困难,故通常采用数值方法进行求解。
下面介绍几种常见的数值解法。
二、有限差分法有限差分法是在连续方程的基础上,利用有限差分代替导数,将微分方程变为代数方程组,从而利用计算机求解的方法。
其基本思想是将求解区域划分为有限个网格,对每个网格内的量用差分代替导数,从而得到有限差分方程。
以简单的二维对流扩散为例,其对流方程为:$$ \frac{\partial\phi}{\partial t} + u\frac{\partial\phi}{\partial x} + v\frac{\partial\phi}{\partial y} = \Gamma\frac{\partial^2\phi}{\partial x^2} + \Gamma\frac{\partial^2\phi}{\partial y^2} $$其中,$u$和$v$分别代表$x$和$y$方向的流速。
对该方程进行离散,假设$\phi_{i,j}$为$x=i\Delta x$,$y=j\Delta y$处的$\phi$值,则可以得到:$$ \frac{\phi^{k+1}_{i,j} - \phi^k_{i,j}}{\Delta t} +u\frac{\phi^k_{i+1,j} - \phi^k_{i-1,j}}{2\Delta x} +v\frac{\phi^k_{i,j+1} - \phi^k_{i,j-1}}{2\Delta y} $$$$ = \frac{\Gamma\Delta t}{(\Delta x)^2}(\phi^k_{i+1,j} -2\phi^k_{i,j} + \phi^k_{i-1,j}) + \frac{\Gamma\Delta t}{(\Deltay)^2}(\phi^k_{i,j+1} - 2\phi^k_{i,j} + \phi^k_{i,j-1}) $$其中,$k$为时刻,$\Delta x$和$\Delta y$分别为$x$和$y$方向的网格间距。
一类二维稳态对流——扩散方程的有限差分法一维稳态扩散方程描述了物质在一维空间中的扩散行为。
然而,在某些情况下,我们需要研究物质在二维平面中的扩散行为,例如热传导、流体传输等。
本文将介绍一类二维稳态对流-扩散方程的有限差分法。
二维稳态对流-扩散方程可以写作:∇·(D∇u) + ∇·(cu) + fu = 0 —— (1)其中,D是扩散系数,c是速度场,u是待求解的物理量,f是源项。
在这个方程中,第一项表示物质的扩散项,第二项表示对流项,第三项表示源项。
我们需要求解方程(1),找到u的分布。
为了应用有限差分法来求解二维稳态对流-扩散方程,需要将二维空间离散化为一个网格。
假设我们将x方向离散为Nx个等距的节点,y方向离散为Ny个等距的节点,那么我们可以得到一个(Nx+1)×(Ny+1)的网格。
我们在网格节点上定义未知量u,然后将方程(1)对节点处的u进行离散化。
首先,我们对方程(1)的扩散项进行离散化。
我们使用五点差分格式来近似二维Laplace算符∇·(D∇u)。
对于网格节点(x,y),我们可以得到以下差分格式:(Dij(xi+1,yj)ui+1,j + Dij(xi-1,yj)ui-1,j +Dij(xi,yj+1)ui,j+1 + Dij(xi,yj-1)ui,j-1 -4Dij(xi,yj)ui,j) / ∆x^2 + (Dij(xi,yj)ui,j) / ∆y^2其中,∆x和∆y是网格步长,Dij是扩散系数。
接下来,我们对方程(1)的对流项进行离散化。
我们使用中心差分格式来近似二维梯度算符∇·(cu)。
对于网格节点(x,y),我们可以得到以下差分格式:(cxi+1/2,yj(ui+1,j - ui,j)) / ∆x + (cxi-1/2,yj(ui,j - ui-1,j)) / ∆x + (cyi,j+1/2(ui,j+1 - ui,j)) / ∆y + (cyi,j-1/2(ui,j - ui,j-1)) / ∆y其中,cxi+1/2,yj、cxi-1/2,yj、cyi,j+1/2和cyi,j-1/2是速度场在节点(x,y)处的中心点处的x和y分量。
对流扩散方程有限差分方法流扩散方程是描述流体内部物质的扩散过程的方程,它可以用于描述溶质的扩散、热量的传导以及动量的传递。
在许多工程和科学领域中,比如地球科学、生物医学和工程学等,流扩散方程都有着广泛的应用。
在数值计算中,有限差分方法是一种常用的数值解法,可以非常有效地解决流扩散方程。
下面将详细介绍对流扩散方程有限差分方法的原理和步骤。
首先,考虑一维流扩散方程的一般形式:∂C/∂t=D∂²C/∂x²-V∂C/∂x其中,C是扩散物质的浓度,t是时间,x是空间位置,D是扩散系数,V是对流速度。
为了使用有限差分方法求解上述方程,我们需要将时间和空间分布离散化,得到方程在网格点上的近似表示。
首先,将时间轴分为n个等间隔的时间步长Δt,空间轴分为m个等间隔的网格点,网格点之间的间距为Δx。
然后,我们使用数值方法来逼近方程中的各个导数项,采用中心差分公式:∂C/∂t≈(C_i^(n+1)-C_i^n)/Δt∂²C/∂x²≈(C_i+1^n-2C_i^n+C_i-1^n)/Δx²∂C/∂x≈(C_i+1^n-C_i-1^n)/(2Δx)将上述近似代入流扩散方程,可以得到:(C_i^(n+1)-C_i^n)/Δt=D(C_i+1^n-2C_i^n+C_i-1^n)/Δx²-V(C_i+1^n-C_i-1^n)/(2Δx)整理上式,可以得到对流扩散方程的有限差分方程:C_i^(n+1)=C_i^n+(DΔt/Δx²)(C_i+1^n-2C_i^n+C_i-1^n)-(VΔt/2Δx)(C_i+1^n-C_i-1^n)上述方程给出了方程在时刻n+1时刻网格点i的值,即C_i^(n+1),它的值通过已知时刻n时刻各个网格点的值C_i^n来计算。
最后,我们可以使用迭代的方法,从初始条件C_i^0开始,依次计算下一个时刻的网格点C_i^(n+1),直到达到所需的计算精度或者计算到需要的时间步长。
% 一维对流方程迎风格式、Lax格式、FTCS格式差分法计算% 潭花林清华大学航天航空学院% FTCS格式对于一维对流方程不稳定,最好不用clcclear all% 1.参数定义dx=1;x1=-18;x2=18;x=x1:dx:x2;L1=length(x);% dt=0.5*dx; % 收敛dt=2*dx; % 不收敛t1=0;t2=t1+80*dt;t=t1:dt:t2;L2=length(t);alpha=1;lambda=alpha*dt/dx;geshi=1; % 迎风格式% geshi=2; % Lax格式% geshi=3; % FTCS格式% 2.显式求解zeta=zeros(L1,L2);for kk=1:3geshi=kk;for ii=1:L1if x(ii)>0zeta(ii,1)=1;elseif x(ii)==0zeta(ii,1)=1/2;elseif x(ii)<0zeta(ii,1)=0;endendendendif geshi==1for ii=2:L1for jj=1:(L2-1)zeta(ii,jj+1)=zeta(ii,jj)-lambda*(zeta(ii,jj)-z eta(ii-1,jj));endzeta(1,jj+1)=zeta(2,jj+1);endzeta1=zeta;else if geshi==2for ii=2:(L1-1)for jj=1:(L2-1)zeta(ii,jj+1)=(zeta(ii+1,jj)+zeta(ii-1,jj))/2-. ..lambda/2*(zeta(ii+1,jj)-zeta(ii-1,jj));endzeta(1,jj+1)=zeta(2,jj+1);zeta(L1,jj+1)=zeta(L1,jj)-lambda*(zeta(L1,jj)-z eta(L1-1,jj));endzeta2=zeta;else if geshi==3for ii=2:(L1-1)for jj=1:(L2-1)zeta(ii,jj+1)=zeta(ii,jj)-lambda/2*(zeta(ii+1,j j)-zeta(ii-1,jj));endzeta(1,jj+1)=zeta(2,jj+1);zeta(L1,jj+1)=zeta(L1,jj)-lambda*(zeta(L1,jj)-z eta(L1-1,jj));endzeta3=zeta;endendendend% 3.绘图% 3.1 t=0figure(1)n=1;plot(x,zeta1(1:L1,n),'-k',x,zeta2(1:L1,n),'-.k' ,x,zeta3(1:L1,n),'--k')% 作图% axis equal %%% 是否要求x、y坐标间距相等% grid on %%% 是否要求画网格xlabel('x/m'),ylabel('t/s') % %% x,y轴表示的变量含义%text(1,2,'f(x)') %%% 图中文字标识legend('迎风格式','Lax格式','FTCS格式') %%% 不同曲线的线型区分title('t=0时刻的计算结果') %%% 标题axis([-18,18,-0.2,1.2])% 3.2 t=10figure(2)n=(10-t(1))/dt;plot(x,zeta1(1:L1,n),'-k',x,zeta2(1:L1,n),'-.k' ,x,zeta3(1:L1,n),'--k')% 作图% axis equal %%% 是否要求x、y坐标间距相等% grid on %%% 是否要求画网格xlabel('x/m'),ylabel('t/s') % %% x,y轴表示的变量含义%text(1,2,'f(x)') %%% 图中文字标识legend('迎风格式','Lax格式','FTCS格式') %%% 不同曲线的线型区分title('t=10s时刻的计算结果') %%% 标题% 3.3 t=20figure(3)n=(20-t(1))/dt;plot(x,zeta1(1:L1,n),'-k',x,zeta2(1:L1,n),'-.k' ,x,zeta3(1:L1,n),'--k')% 作图% axis equal %%% 是否要求x、y坐标间距相等% grid on %%% 是否要求画网格xlabel('x/m'),ylabel('t/s') %%% x,y轴表示的变量含义%text(1,2,'f(x)') %%% 图中文字标识legend('迎风格式','Lax格式','FTCS格式') %%% 不同曲线的线型区分title('t=20s时刻的计算结果') %%% 标题% 3.4 t=40figure(4)n=(40-t(1))/dt;plot(x,zeta1(1:L1,n),'-k',x,zeta2(1:L1,n),'-.k' ,x,zeta3(1:L1,n),'--k')% 作图% axis equal %%% 是否要求x、y坐标间距相等% grid on %%% 是否要求画网格xlabel('x/m'),ylabel('t/s') % %% x,y轴表示的变量含义%text(1,2,'f(x)') %%% 图中文字标识legend('迎风格式','Lax格式','FTCS格式') %%% 不同曲线的线型区分title('t=40s时刻的计算结果') %%% 标题聚乙烯(PE)简介1.1聚乙烯化学名称:聚乙烯英文名称:polyethylene,简称PE结构式:聚乙烯是乙烯经聚合制得的一种热塑性树脂,也包括乙烯与少量α-烯烃的共聚物。
对流扩散方程有限差分方法对流扩散方程有限差分方法求解对流扩散方程的差分格式有很多种,在本节中将介绍以下3种有限差分格式:中心差分格式、Samarskii格式、Crank-Nicolson型隐式差分格式。
3.1中心差分格式时间导数用向前差商、空间导数用中心差商来逼近,那么就得到了流扩散方程的显示格式。
处进行Taylor展开: 1)式的中心差分格式[6]n 1 n U j U jn nU j 1 U j 1 a2hnU j 1vn n2U j U j 1h2(3)若令a h,n 1 U jnU jVp,则h1 / n2(U 1(3)式可改写为n nU j 1) (U j 12u:n \U j 1)(4)从上式我们看到, 在新的时间层n 1上只包含了一个未知量nU j1,它可以由时间层n上的值U;1,U j n,U;1直接计算出来。
因此, 中心差分格式是求解对假定u(x,t)是定解问题的充分光滑的解,将n 1U j nU jU; 1 分别在(X j,t n)nUjU(X j,t n 1) U(X j,t n) 0( 2)nU j 1U(X j 1,t n) U(X j,t n)nU j 1 U(X j 1,t n) U(X j,t n) U n h2 2 U n X j 2 2 X jU n h22U nXj2 2 X j代入⑷式,有T (X j,t n)n 1UjnUjn nU j 1 U j 1 a2h2U nh2n0()n2a 0(h )2U2Xn2v 0(h )jhhnU j 10(h3)0(h3)nU j 1v ---20( h )显然,当0, h 0时,T (X j ,t n ) 0,即中心差分格式与定解问题是相容的。
由以上的讨论也可得知,对流扩散方程的中心差分格式的截断误差为2O( h )。
对于我们上面构造的差分格式,是否可以直接用于实际计算呢?也就是 说,如果初始值有误差,在计算过程中误差会不会扩大传播呢?这就是接下来 我们要讨论的是差分方程的稳定性问题。
一种对流扩散方程有限差分显式的稳定条件分析近半个世纪以来,随着计算机的日益普及,对于对流扩散方程的数值求解迅速发展,也激发了大量的相关研究。
其中,有限差分显式是常见的求解方法,因其简单性,快速性而广泛应用。
有限差分显式求解对流扩散方程时,则需要保证求解的稳定性,其中最被重视的是稳定性分析。
对于一般的对流扩散方程,其可以分解为传递部分的对流方程和扩散部分的扩散方程,并可以将其抽象化为一阶常微分方程Ux=F(x,U)。
使用有限差分法求解时,首先需要考虑一类特殊步长t,将该问题转换为Ux(n+1)=F(x,Ux(n)),其中n为当前步长。
接着,可以利用差分显式法,对于给定的步长t可以推导出:Ux(n+1)=Ux(n)+t*F(x,Ux(n))给定时间步长t,求解该方程的稳定性,可以用来检验该方法是否可行,从而将t限制在一定的范围内;如果不稳定,则需要重新设计求解方法。
通常情况下,稳定性分析可以利用条件研究方法,找出具有稳定性的t值,也就是所谓的稳定性条件分析。
在对有限差分显式求解对流扩散方程时,根据具体问题可以采用不同的稳定性条件分析方法。
其中,Lax-Wendroff法是一种常用的稳定性条件分析方法,其可以有效的检测当前差分显式的稳定性。
Lax-Wendroff法通过检验对流扩散方程中差分显式的保守性,提出了一个稳定性条件:t<=(2/3)*(t^2/h),其中t是时间步长,h^2是空间步长,用来限定所使用的差分显式的稳定性性质。
然而,Lax-Wendroff法不能有效检测特殊情况,比如某些特殊形式的空间步长或者有限差分步长。
因此,也有相关的研究实验,将其应用于对流扩散问题中,进行更为准确的稳定性分析。
本文基于一种对流扩散方程的有限差分显式稳定性分析,将结合相关理论和实验,从稳定性条件分析的角度,分析以及研究使用Lax-Wendroff法的稳定性条件分析。
首先,介绍了对流扩散方程的基本概念,包括方程的分解以及将其转换为一阶常微分方程,以及利用有限差分法转换为Ux(n+1)=F(x,Ux(n))。
对流方程的四阶中心差分格式为了求解流体力学问题,我们经常需要离散化偏微分方程以在计算机上进行数值求解。
流动问题通常可以通过连续性方程和动量方程来描述,在这些方程中,对流项是非常重要的。
在数值求解中,对流项的离散化是一个复杂的问题,因为它与流体流动的特性密切相关。
在本文中,我将讨论一种用于解决流体动力学问题的四阶中心差分格式,该格式对流项进行了有效的离散化。
首先,让我们考虑一维线性对流方程:\[\frac{\partial u}{\partial t} + c\frac{\partialu}{\partial x} = 0\]其中,\(u\) 是速度或浓度的函数,\(c\) 是对流速度。
为了离散化这个方程,我们需要在时间和空间上对其进行网格化。
假设我们使用均匀网格,网格间的空间步长为 \(\Delta x\),时间步长为 \(\Delta t\)。
现在,我们可以使用四阶中心差分格式来离散化对流方程。
我们可以使用前三个时间步和三个空间步来定义一个差分方程,如下所示:\[\frac{u_i^{n+1} - u_i^{n-2}}{3\Delta t} +c\frac{u_{i+2}^{n} - u_{i-2}^{n}}{4\Delta x} = 0\]其中,\(u_i^{n}\)表示时间步\(n\)的网格点\(i\)上的速度或浓度。
这个差分方程可以进一步重写为显式形式:\[u_i^{n+1} = u_i^{n-2} - \frac{3c\Delta t}{4\Deltax}(u_{i+2}^{n} - u_{i-2}^{n})\]这个差分方程可以通过迭代的方式求解,但注意到它的时间步长是\(\Delta t\) ,而其他差分项的时间步长只有 \(\Delta x\)。
为了确保数值稳定性,我们需要满足一个条件:Courant-Friedrichs-Lewy (CFL) 稳定性条件。
CFL条件告诉我们,稳定的数值解需要满足以下条件:\[\frac{c\Delta t}{\Delta x} \leq \frac{1}{2}\]这意味着对流速度与网格尺寸之比需要小于等于1/2上述对流方程的四阶中心差分格式可以很容易地扩展到二维和三维情况。
一维对流方程的差分格式∂u/∂t+c∂u/∂x=0其中u是流体密度,t是时间,x是空间位置,c是流体速度。
为了离散化这个方程,我们将时间和空间范围分为小区间,然后在这些离散点上近似连续方程。
我们可以使用中心差分、向前差分或向后差分等方法来近似对流方程。
中心差分格式是一种常用的差分格式,通过使用当前时间步和两个相邻时间步的值来近似时间导数,使用当前空间点和两个相邻空间点的值来近似空间导数。
假设我们在时间方向上将时间分为n个步长Δt,将空间方向上将空间分为m个步长Δx,那么时间和空间步长分别为Δt = t_max / n 和Δx = x_max / m。
在中心差分格式中,时间导数可以使用向前差分或向后差分来计算。
使用向前差分有:∂u/∂t≈(u_i,j-u_i-1,j)/Δt使用向后差分有:∂u/∂t≈(u_i+1,j-u_i,j)/Δt空间导数可以使用中心差分来计算:∂u/∂x≈(u_i+1,j-u_i-1,j)/(2Δx)结合时间导数和空间导数的近似,我们可以得到中心差分格式的一般形式:(u_i,j+1-u_i,j)/Δt+c(u_i+1,j-u_i-1,j)/(2Δx)=0通过对该方程进行变形,可以得到u_i,j+1的计算公式:u_i,j+1=u_i,j-cΔt/(2Δx)(u_i+1,j-u_i-1,j)在空间和时间方向上进行迭代,可以逐步求解一维对流方程。
除了中心差分,还存在其他差分格式,如向前差分和向后差分。
向前差分格式使用当前时间和前一时间步的值来近似时间导数,向后差分格式使用当前时间和后一时间步的值来近似时间导数。
中心差分格式的优点是它具有二阶精度,即误差随着步长的平方而减少。
然而,该格式可能会出现数值耗散或数值扩散的问题,特别是在高梯度区域。
在实际应用中,选择正确的差分格式对于获得准确的数值解至关重要。
一维对流方程的差分格式提供了一种近似求解连续方程的方法,使得我们能够使用计算机来解决复杂的流体力学问题。
对流方程的四阶中心差分格式流体动力学中,流体动力学方程是用来描述流体在非平衡状态下的运动特性的常微分方程。
它描述的是物质的密度和流动速度的变化,作为时间变化的外力的影响。
流体动力学方程的四阶中心差分格式是一种在数值模拟中应用广泛的解析方法。
一、四阶中心差分格式的简介四阶中心差分格式是一种应用于数值模拟的新方法,它利用中心差分法将流体动力学方程式划分为一系列离散的微分方程,从而能够更准确地描述流体动力学过程。
有一组离散的普通微分方程以及一组离散的非线性方程构成了四阶中心差分格式的核心。
四阶中心差分格式与传统的中心差分格式相比,能够更快更准确地收敛,因此是一种实际应用中的优良方法。
二、优势1、四阶中心差分格式具有较好的精度、可靠性和通用性。
与传统的中心差分格式相比,该方法更加准确地收敛,以及更快地收敛。
2、操作简单,实施方便。
和传统的中心差分格式相比,四阶中心差分格式不仅具有准确性,而且操作简单,实施方便。
3、运算量较小,性能稳定。
对于四阶中心差分格式,其运算量比传统的中心差分格式要小,且性能稳定,更容易用于模拟流体动力学过程。
三、应用1、应用于流体动力学模拟。
四阶中心差分格式可以应用于地形线、边界条件、热流和微外质,从而模拟流体动力学过程。
2、用于求解复杂的流体动力学问题。
该格式由微分方程和非线性方程构成,可以用于求解复杂的流体动力学问题,如湍流流动、不规则流动等。
3、用于水力参数的表达。
此外,四阶中心差分格式也可以用来表达不同的水力参数,如流速、湍流度、温度分布等。
四、缺陷1、四阶中心差分格式伴随着较大的计算量,可能会导致计算速度下降。
2、四阶中心差分格式实施起来可能会比较复杂,可能会消耗更多的精力和时间。
3、四阶中心差分格式可能会受到流体边界条件等外部影响,从而产生模拟误差。