fun ctio n [n ,temp]=yiwei(l on g,thermc on d,sours,leix ing,nu mber) %通过输入长度,导热系数,源项,传热类型,节点数来计算 %各节点温度
if nargin<3
error('必须输入三个参数以上')
end
if isempty(sours)
S=0;
end
S=sours;
if nargin<4
error('请输入类型')
end
L=long;
k=thermc ond;
if nargin<5
nodes=51;
else
no des=nu mber;
end
m=no des;
n=[1:1: no des];
n=n:
T=[1:1: nodes];
T=T:
p=[1:1: no des];
p=p';
A=zeros(m);
xl=L/( no des-1);
if leix in g==1
Tl=input('请输入左边界温度')
p(1)=Tl;
A(1,1)=1;
Tr=input('请输入右边界温度')
p(m)=Tr;
A(m,m)=1;
elseif leix in g==2
ql=input('请输入左边界热流密度')p(1)=S*xL2/2/k+ql*xl/k;
A(1,1)=-1;
A(1,2)=1;
qr=i nput('请输入右边界热流密度 p(m)=-S*xlA2/2/k+qr*xl/k;
')
A(m,m-1)=-1;
A(m,m)=1;
elseif leix in g==3
hl=input('左边界对流系数') Tfl=input('左边界环境温度') A(1,1)=1+xl*hl/k;
A(1,2)=-1; p(1)=hl*Tfl*xl/k-S*xlA2/(2*k); hr=input('右边界对流系数'); Tfr=input('右边界环境温度'); A(m,m-1)=-1;
A(m,m)=1-hr*xl/k; p(m)=-(hr*Tfr*xl/k+S*x|A2/(2*k));
else
error('类型必须为整数') end
for i=2:1:(m-1)
p(i)=S*xL2/k;
A(i,i)=2;
A(i,i-1)=-1;
A(i,i+1)=-1;
end
T=i nv(A)*p;
temp=T;
n (1)=0;
for j=2:m
n(j)=n (j-1)+xl;
end
plot (n ,T);
hold on
plot( n, T,'r*');
hold off
因篇幅问题不能全部显示,请点此查看更多更全内容