注册 登录
编程论坛 Matlab

现在迭代求个参数,解不出来, 求各位大侠指点迷津,万分感谢!

misaly 发布于 2012-11-19 20:57, 489 次点击
现在需要迭代求壁表面的温度,但是迭代过程解都非常奇怪,而且无法收敛,大家帮忙看下,万分感谢!


while k<20         
G1=zeros(n,1);
q=xlsread('F:\matlab.m\sunfushe.xlsx');          %读取各面内扰(太阳辐射),设为0
qC=zeros(n,1);
qc=zeros(n,1);
C=zeros(n,n);
B=zeros(n,1);
G2=zeros(n,n);
G3=zeros(n,1);
mxt=[mxt,tb];
 Tm1=0;
for j=1:n
   Tm1=Tm1+(tb(j)+273.15)*area(j);   
end
for i=1:n     
    for j=1:n
        G2(i,j)=(G(i,j)+G(j,i))*(tb(j)+273.15);
        G3(i,1)=G3(i,1)+G2(i,j);
    end
     Tm=Tm1/sum(area);                             %计算辐射平均温度
    x=floor((abs(i-2))/4)+1;
    q(i)=q(i)/area(i);
    B(i,1)=0.75*h(i)*(t(x)+273.15)+namu(i)*(to+273.15)+q(i);
    for j=1:n
      C(i,j)=-4*(Tm)^3*f*sigema*(G(i,j)+G(j,i));
    end
      C(i,i)=8*(Tm)^3*f*sigema+0.75*h(i)+namu(i);
end
  tbb=C\B;                                      %计算壁面温度
  eps=1.000*10^(-3);
if abs(tb-tbb)>eps                 %控制误差10^(-3)
         tb=tbb;
         tb(1)=26;
else
           tb=tbb;
           tb(1)=26;
           break
end
k=k+1
end
0 回复
1