matlab 差分解微分,基于MATLAB的偏微分方程差分解法
《基于MATLAB的偏微分方程差分解法》由会员分享,可在线阅读,更多相关《基于MATLAB的偏微分方程差分解法(12页珍藏版)》请在人人文库网上搜索。
1、基于MATLAB的偏微分方程差分解法学院:核工程与地球物理学院专业:勘查技术与工程班级:学号:姓名:2014/6/11在科学技术各领域中,有很多问题都可以归结为偏微分方程问题。在物理专业的力学、热学、电学、光学、近代物理课程中都可遇见偏微分方程。偏微分方程,再加上边界条件、初始条件构成的数学模型,只有在很特殊情况下才可求得解析解。随着计算机技术的发展,采用数值计算方法,可以得到其数值解。近些年来,求解偏微分方程的数值方法取得进展,特别是有限差分区域分解算法,此类算法的特点是在内边界处设计不同于整体的格式, 将全局的隐式计算化为局部的分段隐式计算。使人从感觉上认为这样得到的解会比全局隐式得到的解。
2、的精度差,但大量的数值实验表明事实正好相反,用区域分解算法求得的解的精度更好。差分方法又称为有限差分方法或网格法,是求偏微分方程定解问题的数值解中应用最广泛的方法之一。它的基本思想是:先对求解区域作网格剖分,将自变量的连续变化区域用有限离散点(网格点)集代替;将问题中出现的连续变量的函数用定义在网格点上离散变量的函数代替;通过用网格点上函数的差商代替导数,将含连续变量的偏微分方程定解问题化成只含有限个未知数的代数方程组(称为差分格式)。如果差分格式有解,且当网格无限变小时其解收敛于原微分方程定解问题的解,则差分格式的解就作为原问题的近似解(数值解)。因此,用差分方法求偏微分方程定解问题一般需要。
3、解决以下问题:(i)选取网格;(ii)对微分方程及定解条件选择差分近似,列出差分格式;(iii)求解差分格式;(iv)讨论差分格式解对于微分方程解的收敛性及误差估计。下面对偏微分方程具体例题的差分解法作一简要的介绍。1 双曲型方程中波动方程的有限差分解法。1.1 双曲型的差分方程通过建立网格并求解中心差分方程结果为:其中为了保证上式的稳定性,必须使1. 2 初始值通过联立初始值及边界条件可以得到代入,可简化并得到一个改进的对行2的近似值差分方程:1.3 双曲型方程中波动方程例题的差分解法结果及程序。题:,其中,边界条件为:设解:第一步:通过联立(1)、(2)编写MATLAB程序如下:%二维双曲。
4、型偏微分方程,使用DAlembert方法function U=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=r2;r22=r2/2;s1=1-r2;s2=2-2*r2;U=zeros(n,m);for i=2:(n-1);U(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); %P1。
5、16(13)end%差分方程for 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);%P115(7)endend U=U;%画图figure(1); surf(U);figure(2);contour(U,40);第二步:输入数值并计算a=1;b=0.5;c=4n=11m=11执行hyperbolic(1,0.5,4,11,11);第三步:得出结果并画图入下1.等值线结果图2.三位结果图1.4 通过MATLAB语言提供了pdepe()函数,可以直接求解一般偏微分方程(组),它的调用格式为:sol。
6、=pdepe(m,pdefun,pdeic,pdebc,x,t),具体程序见附录得出的结果为:1.等值线结果图2.三维结果图1.5 结果对比通过编写MATLAB的差分方程程序求取结果和MATLAB自带函数求取结果进行对比,发现这两种方法求得到的结果是非常理想的。2 抛物线方程中热传导方程的有限差分解法。2.1 抛物线方程的差分方程通过建立网格并求解显示前向差分方程结果为:其中为了保证上式前向差分方程稳定性,当且仅当满足时。这意味着步长必须满足。2.2 抛物线方程中热传导方程例题的差分解法结果及程序。题:其中初始条件为其中边界条件为:解:第一步,分析并带入(3)并编写MATLAB求解程序如下:f。
7、unction U=forwdif(c1,c2,a,b,c,n,m)clch=a/(n-1);k=b/(m-1);r=(c2*k)/(h2);s=1-2*r;U=zeros(n,m);U(1,1:m)=c1;U(n,1:m)=c2;for i=2:n-1U(I,1)=1-abs(2*(i-1)*h-1);% U(I,1)=4*(i-1)*h-4*(i-1)*h)2;endfor j=2:mfor i=2:n-1U(I,j)=s*U(I,j-1)+r*(U(i-1,j-1)+U(i+1,j-1);endendU=U;figure(1); surf(U);figure(2);contour(U,3。
8、0);第二步,代入初始条件以及边界条件:c1=0;c2=0;a=1;b=0.5;c=1;n=6;m=11;执行forwdif(0,0,1,0.1,1,11,11);第三步:得出结果并画图入下1.等值线结果图2.三位结果图2.3 通过MATLAB语言提供了pdepe()函数,可以直接求解一般偏微分方程(组),它的调用格式为:sol=pdepe(m,pdefun,pdeic,pdebc,x,t),具体程序见附录得出的结果为:1.等值线结果图2.三维结果图2.4 结果对比通过编写MATLAB的差分方程程序求取结果和MATLAB自带函数求取结果进行对比,发现这两种方法求得到的结果是非常相似的,差距不大。
9、证明程序编写是成功的。3 椭圆型方程的有限差分解法。3.1 建立线型方程组3. 2 导数边界条件Neumann边界条件确定了边的法线的方向导数。这里使用零法线导数条件:对于热传导而言,这表示边是热绝缘的而且经过边的热通量为零,从而得到:得出点的Laplace差分方程为:利用差分方程:在(4)上式使用(5)式这个近似值,这结果为:这个公式讲函数联系起来。则Neumann计算空格样板的4种情况如下所示:3. 3 迭代方法根据(4)式和(5)式以如下形式进行迭代处理:式中:这里通过迭代公式(6)右边对所有的内部结点连续执行迭代,直到该式右边余项 “减少到零”(即,)。可以利用逐次超松弛法(SOR)提。
10、高所有余项减少到零的收敛速度。其中逐次超松弛法使用迭代公式:这里参数位于范围内。对所有网格点应用上式(8)直到。其中:3.4 椭圆型方程中波动方程例题的差分解法结果及程序。题:用迭代法求解在区域 Lpalace方程的近似解,这里边界值为:解:第一步:通过联立差分方程及迭代方程编写MATLAB程序如下:function U=dirich(a,b,h,tol,maxl)%设DX=DY=h,且存在m,是的a=nh和b=mhn=fix(a/h)+1;m=fix(b/h)+1;ave=(a*(20+180)+b*(80+0)/(2*a+2*b); U=ave*ones(n,m);U(1,1:m)=80;。
11、U(n,1:m)=0;U(1:n,1)=20;U(1:n,m)=180;U(1,1)=(U(1,2)+U(2,1)/2;U(1,m)=(U(1,m-1)+U(2,m)/2;U(n,1)=(U(n-1,1)+U(n,2)/2;U(n,m)=(U(n-1,m)+U(n,m-1)/2;w=4/(2+sqrt(4-(cos(pi/(n-1)+cos(pi/(m-1)2);err=1;cnt=0;while(errtol)&(cnt=maxl)err=0;for j=2:m-1for i=2:n-1relx=w*(U(i,j+1)+U(i,j-1)+U(i+1,j)+U(i-1,j)-4*U(i,j)/。
12、4;U(i,j)=U(i,j)+relx;if(err=abs(relx)err=abs(relx);endendendcnt=cnt+1;relx;endU=flipud(U);figure(1); surf(U);figure(2);contour(U,30);第二步:输入数值并计算a=4; b=4; h=0.5; tol=0.1; maxl=20;执行dirich(4,4,0.5,0.1,20);第三步:得出结果并画图入下1.等值线结果图2.三位结果图3 附录双曲型及抛物线方程MATLAB语言提供的pdepe()函数程序。%写主函数clcx=linspace(0,1,50);t=lins。
13、pace(0,0.1,50);m=0;sol=pdepe(m,pdefun,pdeic,pdebc,x,t);u=sol(:,:,1);figure(numbertitle,off,name,PDE Demoby Matlabsky)surf(x,t,u)title(The Solution of u_1)xlabel(X)ylabel(T)zlabel(U)figure(2);contour(u,40);% 目标PDE函数function c,f,s=pdefun (x,t,u,du)%p141-4c=1;f=du;s=0;% %p139-4% c=4;% f=du;% s=0;% 边界条件函数function pa,qa,pb,qb=pdebc(xa,ua,xb,ub,t)%a表示下边界,b表示上边界%p141-4pa=ua;qa=0;pb=ub;qb=0;% %p139-4% pa=ua;% qa=0;% pb=ub;% qb=0;% 初值条件函数function u0=pdeic(x)%p141-4u0=1-abs(2*x-1);% %p139-4% u0=sin(pi*x。
matlab 差分解微分,基于MATLAB的偏微分方程差分解法相关推荐
- Matlab之DNN:基于Matlab利用神经网络模型(epochs=10000000)预测勒布朗詹姆斯的2018年总决赛(骑士VS勇士)第一场得分、篮板、助攻
Matlab之DNN:基于Matlab利用神经网络模型(epochs=10000000)预测勒布朗詹姆斯的2018年总决赛(骑士VS勇士)第一场得分.篮板.助攻 目录 输出结果 预测勒布朗詹姆斯的20 ...
- matlab功率谱的峰值,基于Matlab功率谱密度估计方法.doc
基于Matlab功率谱密度估计方法 基于Matlab功率谱密度估计方法要在实际情况下, 许多平稳信号无法导出数学表达式, 要准确获取这些信号的功率谱密度存在一定的困难.根据维纳辛钦 (Wiener K ...
- 【轴承故障分解】基于matlab ITD轴承故障信号分解【含Matlab源码 1871期】
⛄一.ITD轴承故障信号分解简介 滚动轴承局部损伤故障振动信号多为非平稳的多分量调制信号, 采用合适的时频分析方法将故障信号分解为若干个单分量AM-FM信号, 再对其包络解调是轴承故障诊断的常用手段. ...
- matlab模拟频谱仪,毕业设计基于MATLAB的声音信号频谱分析仪源代码V3.1(手机版)...
<[毕业设计]基于MATLAB的声音信号频谱分析仪源代码.doc>由会员分享,可免费在线阅读全文,更多与<毕业设计基于MATLAB的声音信号频谱分析仪源代码(V3.1)>相关文 ...
- 基于matlab fdma传输系统设计,基于MATLAB的LTE系统仿真研究
摘 要: 根据LTE系统的原理和模块构成,分析并建立了一个基于MATLAB的系统级仿真平台.针对LTE系统中被广泛认可的轮询.比例公平和最大载干比三种经典调度算法,利用仿真平台产生的数据对三者的性能 ...
- matlab自适应逆控制,基于matlab仿真模块的自适应有源噪声逆控制研究
ATE 农业技术与装备 X2 c(q-1) p(q-1) u2 C( x) p(q-1) LMS M(q-1) p(q-1) w( q-1) w( q-1) ! ! e2 d2 + - - + p(q ...
- MATLAB观察系统响应,基于MATLAB的系统的时域响应分析精选.doc
基于MATLAB的系统的时域响应分析精选 摘 要 系统的时域响应分析是衡量控制系统的重要指标.所谓控制系统的时域响应分析就是在时间域内求解系统的微分方程,然后根据绘制出来的曲线分析系统的性能和各主要参 ...
- 用matlab编程简单电子琴,基于MATLAB的数字信号发生器及简易电子琴设计论文.doc...
基于MATLAB的数字信号发生器及简易电子琴设计论文 基于MATLAB的数字信号发生器及简易电子琴设计 摘 要 数字信号发生器是一种基于软硬件结合实现的函数波形产生仪器.在工程实践中需要检测和分析的各 ...
- matlab波形反白,基于MATLAB的海岸污染物浓度扩散实验分析
海岸污染物图像序列隐含丰富的物质输移扩散的重要特征,通过CCD图片得到所需要的信息具有广泛的应用价值.传统的接触式和单点式测量方法很难全面高效地得到需要的实验结果,而利用CCD等摄像设备进行测量记录, ...
最新文章
- vb中5种打开文件夹浏览框的方法总结(转)
- linux c 进程间通信
- CentOS下的账户管理
- pycharm 敲代码时的效果插件_精选Pycharm里6大神器插件
- BRAND-NEW OF DOUBLES工作组合的新作品
- pthread 线程退出时自动释放资源
- 2_Recurrent Neural Networks (RNNs)循环神经网络 —Simple RNNs
- 快手技术嘉年华喊你来参加啦!
- java objects_Java Objects-------------工具类使用
- Java学习之路 之 注意篇
- 如何运用Python与高德API来获取餐饮、珠宝等线下行业的竞争对手信息?
- PDF加密以及去除密码小妙招
- 计算机中英文打字文章,中英文打字练习文章.docx
- android 行政区域,Android高德之旅(14)行政区划搜索
- 【联邦学习】综述《Advances and Open Problems in Federated Learning》论文结构
- springtboot 操作es
- 装mysql电脑网卡不见了_网络适配器不见了怎么办【解决方法】
- 会玩计算机游戏英语,英语口语表达:他整天就只会玩计算机游戏
- Excel怎么将文本格式数值转换为可计算的数值型
- lerna import报错