基于matlab的偏微分方程差分解法

基于matlab的偏微分方程差分解法

ID:15566946

大小:469.27 KB

页数:12页

时间:2018-08-04

基于matlab的偏微分方程差分解法_第1页
基于matlab的偏微分方程差分解法_第2页
基于matlab的偏微分方程差分解法_第3页
基于matlab的偏微分方程差分解法_第4页
基于matlab的偏微分方程差分解法_第5页
资源描述:

《基于matlab的偏微分方程差分解法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、基于MATLAB的偏微分方程差分解法学院:核工程与地球物理学院专业:勘查技术与工程班级:1120203学号:姓名:2014/6/1111在科学技术各领域中,有很多问题都可以归结为偏微分方程问题。在物理专业的力学、热学、电学、光学、近代物理课程中都可遇见偏微分方程。偏微分方程,再加上边界条件、初始条件构成的数学模型,只有在很特殊情况下才可求得解析解。随着计算机技术的发展,采用数值计算方法,可以得到其数值解。近些年来,求解偏微分方程的数值方法取得进展,特别是有限差分区域分解算法,此类算法的特点是在内边界处设计不同于整体的格式,将全局的隐式计算化为局部的

2、分段隐式计算。使人从感觉上认为这样得到的解会比全局隐式得到的解的精度差,但大量的数值实验表明事实正好相反,用区域分解算法求得的解的精度更好。差分方法又称为有限差分方法或网格法,是求偏微分方程定解问题的数值解中应用最广泛的方法之一。它的基本思想是:先对求解区域作网格剖分,将自变量的连续变化区域用有限离散点(网格点)集代替;将问题中出现的连续变量的函数用定义在网格点上离散变量的函数代替;通过用网格点上函数的差商代替导数,将含连续变量的偏微分方程定解问题化成只含有限个未知数的代数方程组(称为差分格式)。如果差分格式有解,且当网格无限变小时其解收敛于原微分

3、方程定解问题的解,则差分格式的解就作为原问题的近似解(数值解)。因此,用差分方法求偏微分方程定解问题一般需要解决以下问题:(i)选取网格;(ii)对微分方程及定解条件选择差分近似,列出差分格式;(iii)求解差分格式;(iv)讨论差分格式解对于微分方程解的收敛性及误差估计。下面对偏微分方程具体例题的差分解法作一简要的介绍。§1双曲型方程中波动方程的有限差分解法。1.1双曲型的差分方程通过建立网格并求解中心差分方程结果为:其中为了保证上式的稳定性,必须使1.2初始值通过联立初始值及边界条件可以得到代入,可简化并得到一个改进的对行2的近似值差分方程:1

4、.3双曲型方程中波动方程例题的差分解法结果及程序。题:,其中,边界条件为:11设解:第一步:通过联立(1)、(2)编写MATLAB程序如下:%二维双曲型偏微分方程,使用D'Alembert方法functionU=hyperbolic(a,b,c,n,m)%a为x的取值范围%b为t的取值范围%c为系数%n为x方向上的节点数%m为t上的节点数h=a/(n-1);%x方向上的步长k=b/(m-1);%t上的步长r=c*k/h;r2=r^2;r22=r^2/2;s1=1-r^2;s2=2-2*r^2;U=zeros(n,m);fori=2:(n-1);U(

5、i,1)=sin(pi*h*(i-1));U(i,2)=s1.*sin(pi*h*(i-1))+k*0...+r22.*(sin(pi*h.*(i-2))+sin(pi*h.*(i)));%P116(13)end%差分方程forj=3:m;fori=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);%P115(7)endendU=U';%画图figure(1);surf(U);figure(2);contour(U,40);第二步:输入数值并计算a=1;b=0.5;c=4n

6、=11m=11执行hyperbolic(1,0.5,4,11,11);第三步:得出结果并画图入下111.等值线结果图2.三位结果图§1.4通过MATLAB语言提供了pdepe()函数,可以直接求解一般偏微分方程(组),它的调用格式为:sol=pdepe(m,@pdefun,@pdeic,@pdebc,x,t),具体程序见附录得出的结果为:1.等值线结果图112.三维结果图1.5结果对比通过编写MATLAB的差分方程程序求取结果和MATLAB自带函数求取结果进行对比,发现这两种方法求得到的结果是非常理想的。§2抛物线方程中热传导方程的有限差分解法。2

7、.1抛物线方程的差分方程通过建立网格并求解显示前向差分方程结果为:其中为了保证上式前向差分方程稳定性,当且仅当满足时。这意味着步长必须满足。2.2抛物线方程中热传导方程例题的差分解法结果及程序。题:其中初始条件为其中边界条件为:解:第一步,分析并带入(3)并编写MATLAB求解程序如下:functionU=forwdif(c1,c2,a,b,c,n,m)clch=a/(n-1);k=b/(m-1);r=(c^2*k)/(h^2);s=1-2*r;U=zeros(n,m);U(1,1:m)=c1;U(n,1:m)=c2;fori=2:n-111U(I

8、,1)=1-abs(2*(i-1)*h-1);%U(I,1)=4*(i-1)*h-4*((i-1)*h)^2;endfor

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。