Octave 错误:Ta(6,):但Ta的大小为5x100错误:解析错误:从调用

Octave 错误:Ta(6,):但Ta的大小为5x100错误:解析错误:从调用,octave,Octave,我写了一个关于热传递的代码,倍频程显示了这个错误 错误:Ta(6,):但Ta的大小为5x100 错误:解析错误 错误:从调用 C:/Users/Rocha/Desktop/TC1.3.5.2.m,第37行第14列“ q=5000; h=50; tinf=293.15; k=177; L=0.5; t=0.025; dz=1; n=100; m=5; dx=L/(n-1); dy=dx; tol=10^-7; erromax=1; Ta=tinf+0(m,n); T=零(m,n); 而erroma

我写了一个关于热传递的代码,倍频程显示了这个错误 错误:Ta(6,):但Ta的大小为5x100 错误:解析错误 错误:从调用 C:/Users/Rocha/Desktop/TC1.3.5.2.m,第37行第14列“

q=5000;
h=50;
tinf=293.15;
k=177;
L=0.5;
t=0.025;
dz=1;
n=100;
m=5;
dx=L/(n-1);
dy=dx;
tol=10^-7;
erromax=1;
Ta=tinf+0(m,n);
T=零(m,n);
而erromax>=tol
对于j=1:n
对于i=1:m
如果(i==1&&j==1)%quina superior esquerda
T(i,j)=(0.5*Ta(i,j+1)+0.5*Ta(i+1,j)+(q*dx/2*k)+h*dx*tinf/2*k)/(1+h*dx/2*k);
elseif(i==1&&j>1&&j1&&j1&&j1&&iWell,当你说
Ta(i+1,j)
i
范围在
1:m
时,你将在某个点访问
Ta(m+1,j)
,而这并不存在。
q = 5000;
h = 50;
tinf = 293.15;
k = 177;
L = 0.5;
t = 0.025;
dz = 1;
n = 100;
m = 5;
dx=L/(n-1);
dy=dx;
tol=10^-7;
erromax=1;
Ta=tinf+zeros(m,n);
T=zeros(m,n);

while erromax>=tol
  for j=1:n
    for i=1:m
       if( i==1 && j==1) %quina superior esquerda
       T(i,j)=(0.5*Ta(i,j+1)+0.5*Ta(i+1,j)+(q*dx/2*k)+h*dx*tinf/2*k)/(1+h*dx/2*k);
       elseif( i==1 &&  j> 1 && j<n) %lado superior
       T(i,j)=(0.5*Ta(i,j-1)+0.5*Ta(i,j+1)+Ta(i+1,j)+h*dx*tinf/k)/(2+h*dx/k);
       elseif( i==1 && j==n) %quina superior direita
       T(i,j)=(0.5*Ta(i,j-1)+0.5*Ta(i+1,j)+h*dx*tinf/k)/(1+h*dx/k);
       elseif ( j==n && i>1 &&  i<m) %lado direito
       T(i,j)=(0.5*Ta(i-1,j)+0.5*Ta(i+1,j)+Ta(i,j-1)+h*dx*tinf/k)/(2+h*dx/k);
       elseif (i==m && j==n ) %quina inferior direita
       T(i,j)=(0.5*Ta(i-1,j)+0.5*Ta(i,j-1)+h*dx*tinf/k)/(1+h*dx/k);
       elseif( i==n && j>1 && j<n) %lado inferior
       T(i,j)=(0.5*Ta(i,j+1)+0.5*Ta(i,j-1)+Ta(i-1,j)+h*dx*tinf/k)/(2+h*dx/k);
       elseif( i==n && j==1 ) %quina inferior esquerda
       T(i,j)=(0.5*Ta(i-1,j)+0.5*Ta(i,j+1)+q*dy/(2*k)+h*dx*tinf/(2*k))/(1+h*dx/(2*k));
       elseif( i>1 && i<m && j==1) %lado esquerdo
       T(i,j)=(0.5*Ta(i+1,j)+Ta(i,j+1)+0.5*Ta(i-1,j)+q*dx/k)/2;
       else
       T(i,j)=(Ta(i-1,j)+Ta(i+1,j)+Ta(i,j+1)+Ta(i,j-1))/4;
       end
    endfor
  endfor
  erro =abs(T-Ta);

  Ta=T;

  erromax=max(max(erro));
endwhile

fluxo = q*t*dz; %lado direito
conv1 = h*dx*sum(tinf-T(1,2:n-1))+h*(dx/2)*(tinf-T(1,1))+h*(dx/2)*(tinf-T(1,n)); %lado superior
conv2 = h*dx*sum(tinf-T(2:m-1,n))+h*(dx/2)*(tinf-T(m,n))+h*(dx/2)*(tinf-T(1,n)); %lado direito
conv3 = h*dx*sum(tinf-T(m,2:n-1))+h*(dx/2)*(tinf-T(m,1))+h*(dx/2)*(tinf-T(m,n)); %lado inferior

balanco = fluxo+conv1+conv2+conv3

x = [0:dx:L];
y = [0:dx:t];
figure(1)
contourf(x,y,T)
set(gca,'ydir', 'reverse')
colorbar
title('Temperatura')
xlabel('posiçao em x (m)')
ylabel('posiçao em y (m)')