| 查看: 540 | 回复: 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 ] |
» 猜你喜欢
请问哪里可以有青B申请的本子可以借鉴一下。
已经有4人回复
真诚求助:手里的省社科项目结项要求主持人一篇中文核心,有什么渠道能发核心吗
已经有6人回复
孩子确诊有中度注意力缺陷
已经有14人回复
三甲基碘化亚砜的氧化反应
已经有4人回复
请问下大家为什么这个铃木偶联几乎不反应呢
已经有5人回复
请问有评职称,把科研教学业绩算分排序的高校吗
已经有5人回复
2025冷门绝学什么时候出结果
已经有3人回复
天津工业大学郑柳春团队欢迎化学化工、高分子化学或有机合成方向的博士生和硕士生加入
已经有4人回复
康复大学泰山学者周祺惠团队招收博士研究生
已经有6人回复
AI论文写作工具:是科研加速器还是学术作弊器?
已经有3人回复














回复此楼