编程需求
用matlab使用TDMA算法计算二维导热问题以及一维对流扩散问题
1、二维导热问题
方便理解我举个例子一维导热的程序:
此题编程如下:
l=0.5;k=100;A=0.01;TA=100;TB=500;d=0.1;
aw=zeros(1,5);
ae=zeros(1,5);
Su=zeros(1,5);
Sp=zeros(1,5);
ap=zeros(1,5);
m=zeros(1,5);
b=k*A/d;
>> for i=1:5;
if i==1;
aw(i)=0,ae(i)=b,Su(i)=2*b*TA,Sp(i)=-2*b,ap(i)=aw(i)+ae(i)-Sp(i);
elseif i==5;
aw(i)=b,,Su(i)=2*b*TB,Sp(i)=-2*b,ap(i)=aw(i)+ae(i)-Sp(i);
else;
aw(i)=b,ae(i)=b,ap(i)=aw(i)+ae(i);
end
end
for i=1:5;
M(i,i)=ap(i),m(i)=Su(i);
end
>> for i=2:5;
M(i,i-1)=-aw(i);
end
>> for i=2:5;
M(i-1,i)=-ae(i-1);
end
M
>> T=M\(m')
我需要的是二维导热的,编程只需要从第二张图的我们沿着N-S方向上用TDMA算法之后的过程开始编,前面的计算ap,aN等数的过程不用编程,之后使用到的aN,aS等数值直接使用第一张最后给出的值带入。
2、一维对流扩散问题
第二题编程如下
>> u=0.1;L=1;p=1;R=0.1;f0=1;fL=0;n=5;
F=p*u;dx=L/n;dx=L/n;D=R/dx;
aw=zeros(1,n);
ae=zeros(1,n);
什么是编程举个例子Sp=zeros(1,n);
Su=zeros(1,n);
ap=zeros(1,n);
for i=1:n;
if i==1;
ae(i)=D-F/2,ap(i)=(F/2+3*D),Sp(i)=-(2*D+F),Su(i)=(2*D+F)*f0;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论