在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → 偏微分方程解的几道算例(差分、有限元)+含matlab程序

偏微分方程解的几道算例(差分、有限元)+含matlab程序

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:0.42M
  • 下载次数:34
  • 浏览次数:324
  • 发布时间:2020-10-30
  • 实例类别:一般编程问题
  • 发 布 人:robot666
  • 文件格式:.zip
  • 所需积分:2
 

实例介绍

【实例简介】
偏微分方程解的几道算例(差分、有限元)+含matlab程序 PDE
注:这里的"误差″=精确解-数值解. 2精确解与数值解结果图像对比 “向前差分格式” 03 注:曲线表示精确解,"o"表示数值解(t=0.25时) 向后差分格式” 035 025 02 015 010203040.50607080.9 注:曲线表示精确解,"o"表示数值解(t=0.25时) “六点差分格式” 03 025 010203040506070809 注:曲线表示精确解,"O″表示数值解(t=0.25时 (三结果分析 通过(一),(二),我们检验了三种方法都能很好的求解此一维热传导方程,其 中明显能发现“六点对称格式”的误差更小。 (四)程序(附最后) 实验内容2: 用差分法求解如下自由振动问题的周期解: -∞<r<∞,f>0 af2 0. L-a=sin (0,)=(2丌,1). (一)算法播述: 1.网格剖分取∈[0,2]、r∈[0,2z =6+i,么 r;=x,+.ih,,h 2.差分格式 rl+2(1-/)/+/2l h 3.初值处理 0 0, sinx,即bn=l-hinx, 将上式代入到差分格式可以求得u= h sin x,j=0,…,n1, 最后在迭代式中利用n,n,可以求得n/,n=2,…n (二)实验结果 1.时间、空间均为0-2,且网格为10×10的数值与图像结果: u在各个网点上的值(数值结果采用图片截得) >>PP(0,2*pi,0,2*pi,2*pi/10,2*pi/10) ins- 0 0 0 0 0 0 0 0-0.3693-0.5976·0.5976=0.3693=0.00000.36930.59760.59760.3693 0-0.5976-0.9669-0.9669-0.5976-0.00000.59760.96690.96690.5976 0.9669-0.9669-0.5976=0.00000.59760.96690.96690.5976 0.5976-0.5976-0.3693-0.00000.36930.59760.59760.3693 0 0-0.0000-0.0000-0.00000,00000.0000-0.00000.0000-0.0000 000 00.36930.59760.59760.3693-0.0000-0.3693-0.5976-0.5976-0.3693 0 00.59760.96690.96690.5976-0.0000-0.5976-0.9669-0.96690.5976 0 00.59760.96690.96690.5976-0.0000-0.5976-0.9669-0.9669-0.5976 00.36930.59760.59760.36980.0000-0.3698-0.5976-0.5976-0.3693 00.0000 00.0000-0.00000.0000 0-0.0000 0-0.0000 )u=PP(0,2*pi,0,2*pi,2*pi/10,2*pi/10) >>x=[0:2*pi/10:2*2pi] >>y=[0:2*i/10:2*2p订] 0.5 5 6 2时间、空间均为0-2x,且网格为20×20的图像结果(数据太多一略去): u=PP(0,2*pi,0,2*pi,2*pi/20,2*pi/20) >x-「0:2*pi/20:2*2pi1; >>y=[0:2*pi/20:2*2pi] >>mesh(x, y, u) 1.5 0.5 0 5 -15 6 00 (三)结果分析: (三)程序(附最后) 实验内容3: 用线性元求解下列问题的数值解: 1<L,<1, (x,-1)=l(x,1)=0, 1<x<1, 1(-1.y)=1,v1(12y)=0 (一)算法描述: (二)实验结果 1区域[-1,1]×[-11被剖分成10×10时的数值和图像结果 FE(-1,1,-1,1,10,10) 0 0 0.01820.14440.21380.25670.28530.30490.31840.32770.33370.33700.3381 0.10400.26560.37390.44790.49950.53580.56120.57860.58990.59630.5983 0.18650.36010.48830.58160.64910.69760.73200.75570.77120.77990.7827 0.24200.42000.55750.66110.73770.79350.83340.86110.87910.88930.89 0.26120.44050.58080.68750.76700.82520.86700.89600.91500,92570.9292 0.24200.42000.55750.66110.73770.79350.83340.86110.87910.88930.8926 0.18650.36010,48830.58160.64910.69760.73200.75570.77120.77990.7827 0.10400.26560.37390.44790.49950.53580.56120.57860.58990.59630.5983 0.01820.14440.21380.25670.28530.30490.31840.32770.33370.33700.3381 0 0 0 0 0 0 0 (结果采用图片截得) 02 864.4①2D0204D.60B (相应的网咯剖分情况) >>u=FE(-1,1,-1,1,10,10); y=[1:0.2:1] >>mesh(x, y, u) 08 05 0.4 0.2 0 0.5 05 4.5 5 2区域[-1,1]×[-1被剖分成50×50时的图像结果(数值结果略去 >>uFE(-1,1,-1,1,50,50) >x-[-1:0.04:1] >y=[-1:0.04:1]; >>mesh(, v, u) 0.5 45 0.5 0 05 0 0.5 5 (三)结果分析: (四)程序(附最后) 程序1 向前格式 function [e]=forward (h, t, T) %用向前差分格式计算在空间步长为h,时间步长为t,在T时刻的近似值 %根据初边值得到第1层的值 %e为误差 N=1/h zeros (1, N+ 1 for i=1: N (i11)=i*h X.×(1-x) %利用向前差分格式递推式,求2层及2层以上的近似值 t/(h*h 1:T/t u= for climb (u End %精确解与薮值解画图 p⊥ot(x,u,o hold u xt exp (pi*pi*T)*sin (pixx)+x *(1-x) plot(x,uxt;’r) e=u xt. u function b=for climb(a,r, t) %向前差分格式中,由下一层得到上一层 L=length(a b=zeros(1, L) for i=1: L-2 b(i-1)1*a(i+2)+(1-2*r)*a(i+1)+1*a(i)+2米t; End 向后格式 function [e]=back(dx, dt, T) %用向后差分烙式求解,dx为x方向步长,dt为t方向步长 %e为误差 M=1/d n-T/du %得到第一层的值 u1=zeros(1, M+1) x-「1:M-11*dx u1([2:M])=sin(pi*x)+x.*(1-x); %网比 r=dt/ dx/dx: r2=1+2*r %构造三对角矩阵 for i=1: M-1 A(i, i)=r2 A(i-1,i)=r A(i,i-1)=r d end u-zcros(N+1, M+1) u(N+1,:)=u1 for k=1: N b=u(N2k,2:M)10.02 u(N+1-k,2:M=inv(A)*b’;%求解迭代方程组 end uT=u(1,:);‰0.25时刻的解 %精确解与薮值解画图 1=[0,x,1] plot(xl, uT,o') hold u xt exp (pi*pi T)*sin (pi=x1)+xl.*(1-x1) plot (xl, u xt e=u xt-uT 六点格式 function []=six(dx, dt, T) %用六点对称格式求解,d为x方向步长,dt为t方向步长 %e为误差 M=1/dx N-T/dt %得到第一层的值 ul=zeros(1, M+1) X-「1:M-11*dx; u1([2:M)=sin(pi*x)+x.*(1-x) %网比 r=dt/dx/dx;r2=2+2*r;r3=2-2*r; %构造三对角矩阵A or I A(i,i)=r2; 【实例截图】
【核心代码】

标签:

实例下载地址

偏微分方程解的几道算例(差分、有限元)+含matlab程序

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警