| 查看: 547 | 回复: 0 | ||
apoorone铁虫 (小有名气)
|
[求助]
求助matlab
|
|
https://wenku.baidu.com/view/95c28019ff00bed5b9f31d18.html 这是我下载的一维热传导方程,我想将这个方程改成分段函数,即当0<=l<=0.5时,alfa=1,当0.5<=L<=1,alfa=2,想请问怎么修改 我是菜鸟,刚开始学,还是不知怎么改,希望大神帮忙 这是,他的程序 有限差分法求出温度T与杆长L、时间t的关系 求解下列热传导问题: 程序: function heat_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;%热传导的总时间tm t=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的关系 for k=1:M m=2; while m<=N T(m,k+1)=lambda*(T(m+1,k)+T(m-1,k))+(-2*lambda+1)*T(m,k); m=m+1; end; end; %设置立体网格 for i=1:M+1 X( :,i)=z; end; for j=1:N+1 Y(j,: )=t; end mesh(X,Y,T); view([1 -1 1]); xlabel('Z'); ylabel('t'); zlabel('T'); function y=init_fun(z)%初值条件 y=1-z.^2; return function y=border_funo(t)%z=0的边界条件 y=1+t.*0; return function y=border_fune(t)%z=L的边界条件 y=t*.0; return [ Last edited by apoorone on 2017-5-9 at 14:21 ] |
» 猜你喜欢
写了一篇“相变储能技术在冷库中应用”的论文,论文内容以实验为主,投什么期刊合适?
已经有6人回复
带资进组求博导收留
已经有10人回复
最近几年招的学生写论文不引自己组发的文章
已经有11人回复
需要合成515-64-0,50g,能接单的留言
已经有3人回复
中科院杭州医学所招收博士生一名(生物分析化学、药物递送)
已经有3人回复
临港实验室与上科大联培博士招生1名
已经有8人回复
想换工作。大多数高校都是 评职称时 认可5年内在原单位取得的成果吗?
已经有4人回复








回复此楼