1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
function heat_conduction() options={'L','N' ,'M','alfa','lambda(0.5)',}; topic='seting'; lines=1; def={'5','100','1000','5.57467976468964e-10','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});.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 =To; T(N+1,:)=Te; 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
=t; end mesh(X,Y,T); view([1 -1 1]); xlabel('Z'); ylabel('t'); zlabel('T');
function y=init_fun(z)% y=48.08; return
function y=border_funo(t)%z=0 y=48.08; return
function y=border_fune(t)%z=L y=48.083; return
|
近期评论