一维热传导方程数值解法及matlab实现.DOC

一维热传导方程数值解法及matlab实现.DOC

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一维热传导方程的Matlab解法 分离变量法和有限差分法 2010/12/20 问题描述 实验原理 分离变量法实验原理 有限差分法 实验目的 利用分离变量法和有限差分法解热传导方程问题 利用matlab进行建模构建图形 研究不同的情况下采用何种方法 从更深层次上理解热量分布与时间、空间分布关系。 模拟与仿真作业 分离变量法(代码): x=0:0.1*pi:pi; y=0:0.04:1; [x,t]=meshgrid(x,y); s=0; m=length(j);%matlab可计算的最大数 相当于无穷 for i=1:m s=s+(200*(1-(-1)^i))/(i*pi)*(sin(i*x).*exp(-i^2*t)); end; surf(x,t,s); xlabel(x),ylabel(t),zlabel(T); title( 分离变量法(无穷)); axis([0 pi 0 1 0 100]); 所得到的三维热传导图形为: 有限差分法: u=zeros(10,25); %t=1 x=pi 构造一个1025列的矩阵(初始化为0)用于存放时间t和变量x 横坐标为x 纵坐标为t s=(1/25)/(pi/10)^2; fprintf(稳定性系数S为:\n); disp(s); for i=2:9 u(i,1)=100; end; for j=1:25 u(1,j)=0; u(10,j)=0; end; for j=1:24 for i=2:9 u(i,j+1)=s*u(i+1,j)+(1-2*s)*u(i,j)+s*u(i-1,j); end end disp(u); [x,t]=meshgrid(1:25,1:10); surf(x,t,u); xlabel(t),ylabel(x),zlabel(T); title( 有限差分法解); 所得到的热传导图形为: (2) i分离变量法(取前100项和) x=0:0.1*pi:pi; y=0:0.04:1; [x,t]=meshgrid(x,y); s=0; for i=1:100 s=s+(200*(1-(-1)^i))/(i*pi)*(sin(i*x).*exp(-i^2*t)); end; surf(x,t,u); xlabel(x),ylabel(t),zlabel(T); title( 分离变量法); axis([0 pi 0 1 0 100]); 所得到的热传导图形为: Ii有限差分法 根据(1)我们有如下图 结论: 比较可得这两幅图基本相同,有限差分法和分离变量法对本题都适应 (3) 第一种情况(取无穷项): 在原来程序代码的基础上加上 disp(s(:,6)); 可得出第六列(即x=pi/2)处温度随时间的变化情况 x=0:0.1*pi:pi; y=0:0.04:1; [x,t]=meshgrid(x,y); s=0; m=length(j);%matlab可计算的最大数,相当于无穷 for i=1:m s=s+(200*(1-(-1)^i))/(i*pi)*(sin(i*x).*exp(-i^2*t)); end; surf(x,t,s); xlabel(x),ylabel(t),zlabel(T); title( 分离变量法(无穷)); axis([0 pi 0 1 0 100]); disp(s(:,6)); 我们得到如下一组数据: 当温度低于50度是 时间为 t=23.5*0.04=0.94 第二种情况(取前100项和) 在原来程序代码的基础上加上 disp(s(:,6)); 可得出第六列(即x=pi/2)处温度随时间的变化情况 x=0:0.1*pi:pi; y=0:0.04:1; [x,t]=meshgrid(x,y); r=0.04/(0.1*pi)^2; fprintf(稳定性系数S为:) disp(r); s=0; for i=1:100 s=s+(200*(1-(-1)^i))/(i*pi)*(sin(i*x).*exp(-i^2*t)); end; surf(x,t,s); xlabel(x),ylabel(t),zlabel(T); title( 分离变量法); axis([0 pi 0 1 0 100]); disp(s(:,6)); 当温度低于50度是 时间为 t=23.5*0.04=0.94 第三种情况(有限差分法) 在原来程序代码的基础上加上 disp(u(5,:));可得出第五行(即x=pi/2)处温度随时间的变化情况 u=zeros(10,25); %t=1 x=pi 10行25列 横坐

您可能关注的文档

文档评论(0)

zj182322392 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档