MATLAB编辑一维热传导方程的模拟程序

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

求解下列热传导问题:1,10,,1,010,001222LtLTtTzzTLztTzT程序:functionheat_conduction()%一维齐次热传导方程options={'空间杆长L','空间点数N','时间点数M','扩散系数alfa','稳定条件的值lambda(取值必须小于0.5)',};topic='seting';lines=1;def={'1','100','1000','1','0.5'};h=inputdlg(options,topic,lines,def);L=eval(h{1});N=eval(h{2});M=eval(h{3});alfa=eval(h{4});lambda=eval(h{5});%lambda的值必须小于0.5%***************************************************h=L/N;%空间步长z=0:h:L;z=z';tao=lambda*h^2/alfa;%时间步长tm=M*tao;%热传导的总时间tmt=0:tao:tm;t=t';%计算初值和边值T=zeros(N+1,M+1);Ti=init_fun(z);To=border_funo(t);Te=border_fune(t);T(:,1)=Ti;T(1,:)=To;T(N+1,:)=Te;%用差分法求出温度T与杆长L、时间t的关系fork=1:Mm=2;whilem=NT(m,k+1)=lambda*(T(m+1,k)+T(m-1,k))+(-2*lambda+1)*T(m,k);m=m+1;end;end;%设置立体网格fori=1:M+1X(:,i)=z;end;forj=1:N+1Y(j,:)=t;endmesh(X,Y,T);view([1-11]);xlabel('Z');ylabel('t');zlabel('T');functiony=init_fun(z)%初值条件y=1-z.^2;returnfunctiony=border_funo(t)%z=0的边界条件y=1+t.*0;returnfunctiony=border_fune(t)%z=L的边界条件y=t*.0;return运行情况:按“run”运行时,弹出窗口将图中相关数据更改为:点击图框中的“OK”,在“commandwindow”中输出结果为:

1 / 3
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功