Professional Documents
Culture Documents
O problema se baseia no estudo da condução de calor em uma placa com 1 metro de largura e 1 metro
de altura. Neste problema, foram utilizados 100 volumes de controle para análise da placa. Os
algoritmos para solução foram realizados através do software MATLAB© versão R2015a.
𝜕2𝑇 𝜕2𝑇
+ =0
𝜕𝑥 2 𝜕𝑦 2
Caso 1: Problema proposto no livro Incropera Introduction Heat Transfer 6th com temperaturas
fixas prescritas em todas as bordas da placa
Condições de Contorno:
Solução Teórica:
A solução exata foi obtida pela solução analítica utilizando a teoria presente no livro Incropera
Introduction Heat Transfer 6th (cap 4, p. 234-235)
𝑇1 = 100°𝐶
𝑇2 = 600°𝐶
∞ 𝑛𝜋𝑦
2 (−1)𝑛+1 + 1 𝑛𝜋𝑥 sinh ( 𝐿 )
𝜃(𝑥, 𝑦) = ∑ sin ( )
𝜋 𝑛 𝐿 sinh (𝑛𝜋𝑊 )
𝑛=1 𝐿
A figura acima mostra a previsão teórica de isotermas e linhas de fluxo de calor para condução
bidimensional na placa (Adaptado: Incropera Introduction Heat Transfer 6th)
O número final de n foi obtido a partir da estabilização da temperatura para um determinado ponto
(x,y) em função da variação de n. Neste caso foi escolhido o ponto (0.4,1).
n T (°C)
9 548,9716
19 549,903
29 549,2256
39 549,208
49 549,2227
59 549,2232
69 549,2228
79 549,2228
89 549,2228
99 549,2228
Para a solução exata, a matriz de temperaturas calculadas (excluindo as temperaturas nos contornos),
onde 0.05 ≤ 𝑥 ≤ 0.95 e 0.05 ≤ 𝑦 ≤ 0.95, é:
348,6322 493,3941 529,8761 543,8956 549,2228 549,2228 543,8956 529,8761 493,3941 348,6322
198,3961 337,6998 406,6269 439,2259 452,55 452,55 439,2259 406,6269 337,6998 198,3961
156,3912 252,3537 316,0142 352,1963 368,3362 368,3362 352,1963 316,0142 252,3537 156,3912
136,6351 202,9046 252,8089 284,5098 299,6228 299,6228 284,5098 252,8089 202,9046 136,6351
124,9705 171,3007 208,3173 233,3174 245,7467 245,7467 233,3174 208,3173 171,3007 124,9705
117,234 149,5909 176,2097 194,7888 204,2533 204,2533 194,7888 176,2097 149,5909 117,234
111,725 133,8682 152,3575 165,4902 172,2711 172,2711 165,4902 152,3575 133,8682 111,725
107,5729 121,9169 133,9858 142,6373 147,1367 147,1367 142,6373 133,9858 121,9169 107,5729
104,246 112,3002 119,1025 124,0013 126,5584 126,5584 124,0013 119,1025 112,3002 104,246
101,3678 103,9638 106,1598 107,7443 108,5727 108,5727 107,7443 106,1598 103,9638 101,3678
Solução Numérica:
A solução numérica construída baseada no algoritmo TDMA Line-by-Line, cuja condições de entrada
são as mesmas para a análise teórica:
A tolerância para o resíduo de solução e condição de parada foi estabelecido em 1.10 -6.
A solução foi obtida depois de 47 iterações,
348,6142 482,3726 525,6983 542,1596 548,1959 548,1959 542,1596 525,6983 482,3726 348,6142
209,3126 337,5506 403,9593 436,9037 450,6242 450,6242 436,9037 403,9593 337,5506 209,3126
160,3982 254,5578 315,6848 350,8717 366,7729 366,7729 350,8717 315,6848 254,5578 160,3982
138,1206 204,5977 253,3502 284,1255 298,8228 298,8228 284,1255 253,3502 204,5977 138,1206
125,6071 172,3622 208,9927 233,4573 245,57 245,57 233,4573 208,9927 172,3622 125,6071
117,5525 150,2514 176,8013 195,1408 204,43 204,43 195,1408 176,8013 150,2514 117,5525
111,904 134,2897 152,8202 165,8745 172,5792 172,5792 165,8745 152,8202 134,2897 111,904
107,6779 122,1831 134,3152 142,958 147,4331 147,4331 142,958 134,3152 122,1831 107,6779
104,3026 112,4494 119,2998 124,2089 126,7622 126,7622 124,2089 119,2998 112,4494 104,3026
101,3858 104,0122 106,2255 107,8158 108,6445 108,6445 107,8158 106,2255 104,0121 101,3858
Percebe-se que neste caso a barra ganha calor em seu Norte e o fluxo de calor é positivo de cima
para baixo. O gráfico abaixo mostra as isotermas (para vários valores de ).
O erro de entre as soluções teórica e numérica é apresentado na matriz abaixo:
1,80E-02 1,10E+01 4,18E+00 1,74E+00 1,03E+00 1,03E+00 1,74E+00 4,18E+00 1,10E+01 1,80E-02
1,09E+01 1,49E-01 2,67E+00 2,32E+00 1,93E+00 1,93E+00 2,32E+00 2,67E+00 1,49E-01 1,09E+01
4,01E+00 2,20E+00 3,29E-01 1,32E+00 1,56E+00 1,56E+00 1,32E+00 3,29E-01 2,20E+00 4,01E+00
1,49E+00 1,69E+00 5,41E-01 3,84E-01 8,00E-01 8,00E-01 3,84E-01 5,41E-01 1,69E+00 1,49E+00
6,37E-01 1,06E+00 6,75E-01 1,40E-01 1,77E-01 1,77E-01 1,40E-01 6,75E-01 1,06E+00 6,37E-01
3,18E-01 6,60E-01 5,92E-01 3,52E-01 1,77E-01 1,77E-01 3,52E-01 5,92E-01 6,60E-01 3,18E-01
1,79E-01 4,22E-01 4,63E-01 3,84E-01 3,08E-01 3,08E-01 3,84E-01 4,63E-01 4,22E-01 1,79E-01
1,05E-01 2,66E-01 3,29E-01 3,21E-01 2,96E-01 2,96E-01 3,21E-01 3,29E-01 2,66E-01 1,05E-01
5,67E-02 1,49E-01 1,97E-01 2,08E-01 2,04E-01 2,04E-01 2,08E-01 1,97E-01 1,49E-01 5,67E-02
1,80E-02 4,83E-02 6,57E-02 7,15E-02 7,18E-02 7,18E-02 7,15E-02 6,57E-02 4,83E-02 1,80E-02
Condições de Contorno:
Foi utilizado o método do ponto “Ghost” para análise dos gradientes de temperatura, como se segue:
Norte:
∆𝑦
𝑇∞ − 𝑇 ∗ (𝑥, 1 −
𝜕𝑇 2)
| =
𝜕𝑦 𝑦=1 ∆𝑦
∆𝑦 𝜕𝑇
𝑇(𝑥, 1) = 𝑇∞ − ( ) |
2 𝜕𝑦 𝑦=1
∆𝑦 = 𝐿𝑦 ⁄𝑁𝑦
Onde T(x,1) é a condição de contorno para o leste. Ly=1m e Ny=10 (número de nós em y).
Leste:
∆
𝜕𝑇 𝑇∞ − 𝑇 ∗ (1 − 𝑥 , 𝑦)
| = 2
𝜕𝑥 𝑥=1 ∆𝑥
∆𝑥 𝜕𝑇
𝑇(1, 𝑦) = 𝑇∞ − ( ) |
2 𝜕𝑥 𝑥=1
∆𝑥 = 𝐿𝑥 ⁄𝑁𝑥
Onde T(1,y) é a condição de contorno para o leste. Lx=1m e Nx=10 (número de nós em x).
1ª Situação) Temperaturas Fixas no Oeste e Sul e Calor Adicionado no Norte e Leste
Condições de Contorno:
𝜕𝑇 𝜕𝑇
𝑘 | = 𝑞𝑁" 𝑘 | = 𝑞𝐸"
𝜕𝑦 𝑦=1 𝜕𝑥 𝑥=1
𝑊 𝑊
𝑇(0, 𝑦) = 600°𝐶 𝑇(𝑥, 0) = 600°𝐶 𝑘=1 𝑘=1
𝑚°𝐶 𝑚°𝐶
𝜕𝑇 𝜕𝑇
| >0 | >0
𝜕𝑦 𝑦=1 𝜕𝑥 𝑥=1
𝜕𝑇 °𝐶 𝜕𝑇 °𝐶
| = 100 | = 100
𝜕𝑦 𝑦=1 𝑚 𝜕𝑥 𝑥=1 𝑚
Assim,
Condições de Contorno:
𝜕𝑇 𝜕𝑇
𝑘 | = 𝑞𝑁" 𝑘 | = 𝑞𝐸"
𝜕𝑦 𝑦=1 𝜕𝑥 𝑥=1
𝑊 𝑊
𝑇(0, 𝑦) = 600°𝐶 𝑇(𝑥, 0) = 600°𝐶 𝑘=1 𝑘=1
𝑚°𝐶 𝑚°𝐶
𝜕𝑇 𝜕𝑇
| =0 | =0
𝜕𝑦 𝑦=1 𝜕𝑥 𝑥=1
Assim,
𝑞𝑁" = 0 𝑞𝐸" = 0
Ou seja,
Norte:
∆𝑦
𝑇∞ = 𝑇 ∗ (𝑥, 1 − )
2
𝑇(𝑥, 1) = 𝑇∞
Leste:
∆𝑥
𝑇∞ = 𝑇 ∗ (1 − , 𝑦)
2
𝑇(1, 𝑦) = 𝑇∞
599,9999833 600 599,9999 599,9999 599,9999 599,9998 599,9998 599,9998 599,9998 599,9998
599,9999846 600 599,9999 599,9999 599,9999 599,9998 599,9998 599,9998 599,9998 599,9998
599,999986 600 599,9999 599,9999 599,9999 599,9999 599,9998 599,9998 599,9998 599,9998
599,9999875 600 599,9999 599,9999 599,9999 599,9999 599,9999 599,9998 599,9998 599,9998
599,9999892 600 599,9999 599,9999 599,9999 599,9999 599,9999 599,9999 599,9999 599,9998
599,9999911 600 600 599,9999 599,9999 599,9999 599,9999 599,9999 599,9999 599,9999
599,999993 600 600 600 599,9999 599,9999 599,9999 599,9999 599,9999 599,9999
599,999995 600 600 600 600 599,9999 599,9999 599,9999 599,9999 599,9999
599,999997 600 600 600 600 600 600 600 600 600
599,999999 600 600 600 600 600 600 600 600 600
3ª Situação) Temperaturas Fixas no Oeste e Sul e Calor Perdido no Norte e Leste
Condições de Contorno:
𝜕𝑇 𝜕𝑇
𝑘 | = 𝑞𝑁" 𝑘 | = 𝑞𝐸"
𝜕𝑦 𝑦=1 𝜕𝑥 𝑥=1
𝑊 𝑊
𝑇(0, 𝑦) = 600°𝐶 𝑇(𝑥, 0) = 600°𝐶 𝑘=1 𝑘=1
𝑚°𝐶 𝑚°𝐶
𝜕𝑇 𝜕𝑇
| <0 | <0
𝜕𝑦 𝑦=1 𝜕𝑥 𝑥=1
𝜕𝑇 °𝐶 𝜕𝑇 °𝐶
| = −100 | = −100
𝜕𝑦 𝑦=1 𝑚 𝜕𝑥 𝑥=1 𝑚
Assim,
O calor é perdido pela placa através do norte e leste a uma taxa de 100W considerando um gradiente
negativo de temperatura em x e y (para x=1m e y=1m).
% Abril/2017
%______________________________________________________________________
close all
clear
clc
L=1;
W=1;
T1 = 100;
T2 = 600;
n = 1;
Nx=10;
Ny=10;
Dx=L/Nx;
Dy=W/Ny;
Temp=zeros(Ny,Nx);
Theta=zeros(Ny,Nx);
Theta_Old=zeros(Ny,Nx);
x=Dx/2:Dx:L-Dx/2;
y=Dy/2:Dy:W-Dy/2;
for n=1:2:99
for i = 1:Nx
for j = 1:Nx
Theta_Old(j,i) = ((((1)^(n+1))+1)/n)*sin(n*pi*x(i)/L)*(sinh(n*pi*y(j)/L)/sinh(n*pi*W/L));
end
end
Theta=Theta+Theta_Old;
end
Theta = (2/pi).*Theta;
T = Theta.*(T2 - T1) + T1;
for i=1:Ny
for j=1:Nx
Temp(Ny-(i-1),j)=T(i,j);
end
end
%grafico
contourf(x,y,T);
colormap(jet);
colorbar;
% xlabel
xlabel({'Posição x (m)'},'FontSize',12);
% title
title({'Distribuição de Temperatura na Placa (°C)'},'FontSize',12);
% ylabel
ylabel({'Posição y (m)'},'FontSize',12);
Script Solucao_Teorica.m Usado para casos 1 e 2
% Abril/2017
%______________________________________________________________________
close all
clear
clc
global a b c d
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
deltaxw = Lx/Nx;
deltaxe = deltaxw;
deltayn = Ly/Ny;
deltays = deltayn;
Dx = deltaxw;
Dy = deltayn;
%Definindo as Matrizes
Phi=zeros(Ny,Nx);
Phi_old=zeros(Ny,Nx);
Temp=zeros(Ny+2,Nx+2);
N=zeros(Ny,Nx);
%Temperaturas Iniciais de Entrada no Programa - Chutes Iniciais
for i=1:Ny
for j=1:Nx
Phi(i,j) = 450;
end
end
%Cálculo de AW,AE,AN,AS,AP
for i=1:Ny
for j=1:Nx
AW(i,j) = (k*Dy)/deltaxw;
AE(i,j) = (k*Dy)/deltaxe;
AS(i,j) = (k*Dx)/deltays;
AN(i,j) = (k*Dx)/deltayn;
AP(i,j) = AW(i,j)+AE(i,j)+AS(i,j)+AN(i,j);
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
residuo=Nx*Ny;
passo=0;
passo=passo+1;
Phi_old = Phi;
for j=1:Nx
for i=1:Ny
a(i) = 2*AW(i,1)+AE(i,1)+AS(i,1)+AN(i,1);
b(i) = AS(i,1);
c(i)= AN(i,1);
d(i) = 2*AW(i,1)*CC_West+AE(i,1)*Phi(i,2);
a(i) = 2*AN(1,j)+AE(1,j)+AW(1,j)+AS(1,j);
b(i) = AS(1,j);
c(i)= 0;
d(i) = 2*AN(1,j)*CC_North + AW(1,j)*Phi(1,j-1) + AE(1,j)*Phi(1,j+1);
b(i) = AS(i,j);
c(i) = AN(i,j);
a(i) = AP(i,j);
d(i) = AW(i,j)*Phi(i,j-1) + AE(i,j)*Phi(i,j+1);
a(i) = 2*AS(Ny,j)+AE(Ny,j)+AW(Ny,j)+AN(Ny,j);
b(i) = 0;
c(i)= AN(Ny,j);
d(i) = 2*AS(Ny,j)*CC_South + AW(Ny,j)*Phi(Ny,j-1) + AE(Ny,j)*Phi(Ny,j+1);
end
end
for i=1:Ny
Phi(i,j)=X(i);
end
end
for i=1:Ny
for j=1:Nx
a(j) = 2*AN(1,j)+AE(1,j)+AW(1,j)+AS(1,j);
b(j) = AE(1,j);
c(j)= AW(1,j);
d(j) = 2*AN(1,j)*CC_North + AS(1,j)*Phi(2,j);
a(j) = 2*AW(i,1)+AE(i,1)+AS(i,1)+AN(i,1);
b(j) = AE(i,1);
c(j)= 0;
d(j) = 2*AW(i,1)*CC_West + AN(i,1)*Phi(i-1,1)+ AS(i,1)*Phi(i+1,1);
b(j) = AE(i,j);
c(j) = AW(i,j);
a(j) = AP(i,j);
d(j) = AS(i,j)*Phi(i+1,j) + AN(i,j)*Phi(i-1,j);
a(j) = 2*AE(i,Nx)+AW(i,Nx)+AS(i,Nx)+AN(i,Nx);
b(j) = 0;
c(j)= AW(i,Nx);
d(j) = 2*AE(i,Nx)*CC_East + AN(i,Nx)*Phi(i-1,Nx)+ AS(i,1)*Phi(i+1,Nx);
a(j) = 2*AS(Ny,j)+AE(Ny,j)+AW(Ny,j)+AN(Ny,j);
b(j) = AE(1,j);
c(j)= AW(1,j);
d(j) = 2*AS(Ny,j)*CC_South + AN(Ny,j)*Phi(Ny-1,j);
end
end
TDMA; %Algoritmo de Thomas
for j=1:Nx
Phi(i,j)=X(j);
end
end
end
%%%%%%%%%%%%%%%%%%%%% FIM LOOP %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% for i=1:Ny+2
%
% for j=1:Nx+2
%
% if (i~=1 & i~=Ny+2) & j==1;
%
% Temp(i,j)=CC_West;
%
% elseif i==Ny+2 & (j~=1 & j~=Nx+2);
%
% Temp(Ny+2,j)=CC_South;
%
% elseif (i~=1 & i~=Ny+2) & j==Nx+2;
%
% Temp(i,j)=CC_East;
%
% elseif i==1 & (j~=1 & j~=Nx+2);
%
% Temp(i,j)=CC_North;
%
% elseif (i~=1 & i~=Ny+2)&(j~=1 & j~=Nx+2);
%
% Temp(i,j)=Phi(i-1,j-1);
%
% end
%
%
% %QUINAS
%
% Temp(1,1)=(Temp(1,2)+Temp(2,1)+CC_West+CC_North)/4;
% Temp(Ny+2,1)=(Temp(Ny+2,2)+Temp(Ny+1,1)+CC_West+CC_South)/4;
% Temp(Ny+2,Nx+2)=(Temp(Ny+2,Nx+1)+Temp(Ny+1,Nx+2)+CC_South+CC_East)/4;
% Temp(1,Nx+2)=(Temp(1,Nx+1)+Temp(2,Nx+2)+CC_East+CC_North)/4;
%
% end
%
% end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for i=1:Ny
for j=1:Nx
N(Ny-(i-1),j)=Phi(i,j);
end
end
% %xlabel e ylabel
%
% for i = 3:Nx + 1
%
% x(1) = 0;
%
% x(2) = x(1) + ((Dx) / 2);
%
% x(i) = x(i - 1) + Dx;
%
% end
%
% x(Nx + 2) = x(Nx + 1) + ((Dx) / 2);
%
%
% for i = 3:Ny + 1
%
% y(1) = 0;
%
% y(2) = y(1) + ((Dy) / 2);
%
% y(i) = y(i - 1) + Dy;
%
% end
%
% y(Ny + 2) = y(Ny + 1) + ((Dy) / 2);
%grafico
x=Dx/2:Dx:Lx-Dx/2;
y=Dy/2:Dx:Ly-Dy/2;
contourf(x,y,N);
colormap(jet);
colorbar;
% xlabel
xlabel({'Posição x (m)'},'FontSize',12);
% title
title({'Distribuição de Temperatura na Placa (°C)'},'FontSize',12);
% ylabel
ylabel({'Posição y (m)'},'FontSize',12);
Script Conducao_2D_Grad.m Usado para caso 3
% Abril/2017
%______________________________________________________________________
close all
clear
clc
global a b c d
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
deltaxw = Lx/Nx;
deltaxe = deltaxw;
deltayn = Ly/Ny;
deltays = deltayn;
Dx = deltaxw;
Dy = deltayn;
%Definindo as Matrizes
Phi=zeros(Ny,Nx);
Phi_old=zeros(Ny,Nx);
Temp=zeros(Ny+2,Nx+2);
N=zeros(Ny,Nx);
for i=1:Ny
for j=1:Nx
Phi(i,j) = 450;
end
end
for i=1:Ny
Phighost_East(i,Nx) = Ghost_East;
end
for j=1:Nx
Phighost_North(1,j) = Ghost_North;
end
%Cálculo de AW,AE,AN,AS,AP
for i=1:Ny
for j=1:Nx
AW(i,j) = (k*Dy)/deltaxw;
AE(i,j) = (k*Dy)/deltaxe;
AS(i,j) = (k*Dx)/deltays;
AN(i,j) = (k*Dx)/deltayn;
AP(i,j) = AW(i,j)+AE(i,j)+AS(i,j)+AN(i,j);
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
residuo=Nx*Ny;
passo=0;
Phi_old = Phi;
for i=1:Ny
end
for j=1:Nx
end
for j=1:Nx
for i=1:Ny
a(i) = 2*AW(i,1)+AE(i,1)+AS(i,1)+AN(i,1);
b(i) = AS(i,1);
c(i)= AN(i,1);
d(i) = 2*AW(i,1)*CC_West+AE(i,1)*Phi(i,2);
a(i) = 2*AN(1,j)+AE(1,j)+AW(1,j)+AS(1,j);
b(i) = AS(1,j);
c(i)= 0;
d(i) = 2*AN(1,j)*CC_North(1,j) + AW(1,j)*Phi(1,j-1) + AE(1,j)*Phi(1,j+1);
b(i) = AS(i,j);
c(i) = AN(i,j);
a(i) = AP(i,j);
d(i) = AW(i,j)*Phi(i,j-1) + AE(i,j)*Phi(i,j+1);
a(i) = 2*AS(Ny,j)+AE(Ny,j)+AW(Ny,j)+AN(Ny,j);
b(i) = 0;
c(i)= AN(Ny,j);
d(i) = 2*AS(Ny,j)*CC_South + AW(Ny,j)*Phi(Ny,j-1) + AE(Ny,j)*Phi(Ny,j+1);
a(i) = 2*AE(i,Nx)+AW(i,Nx)+AS(i,Nx)+AN(i,Nx);
b(i) = AS(i,Nx);
c(i)= AN(i,Nx);
d(i) = 2*AE(i,Nx)*CC_East(i,Nx)+AW(i,Nx)*Phi(i,Nx-1);
end
end
for i=1:Ny
Phi(i,j)=X(i);
end
end
for i=1:Ny
Phighost_East(i,Nx)=Phi(i,Nx) + dPhidx_East*Dx;
end
for j=1:Nx
Phighost_North(1,j)=Phi(1,j) + dPhidy_North*Dy;
end
for i=1:Ny
end
for j=1:Nx
end
for i=1:Ny
for j=1:Nx
a(j) = 2*AN(1,j)+AE(1,j)+AW(1,j)+AS(1,j);
b(j) = AE(1,j);
c(j)= AW(1,j);
d(j) = 2*AN(1,j)*CC_North(1,j) + AS(1,j)*Phi(2,j);
a(j) = 2*AW(i,1)+AE(i,1)+AS(i,1)+AN(i,1);
b(j) = AE(i,1);
c(j)= 0;
d(j) = 2*AW(i,1)*CC_West + AN(i,1)*Phi(i-1,1)+ AS(i,1)*Phi(i+1,1);
b(j) = AE(i,j);
c(j) = AW(i,j);
a(j) = AP(i,j);
d(j) = AS(i,j)*Phi(i+1,j) + AN(i,j)*Phi(i-1,j);
a(j) = 2*AE(i,Nx)+AW(i,Nx)+AS(i,Nx)+AN(i,Nx);
b(j) = 0;
c(j)= AW(i,Nx);
d(j) = 2*AE(i,Nx)*CC_East(i,Nx) + AN(i,Nx)*Phi(i-1,Nx)+ AS(i,1)*Phi(i+1,Nx);
a(j) = 2*AS(Ny,j)+AE(Ny,j)+AW(Ny,j)+AN(Ny,j);
b(j) = AE(1,j);
c(j)= AW(1,j);
d(j) = 2*AS(Ny,j)*CC_South + AN(Ny,j)*Phi(Ny-1,j);
end
end
for j=1:Nx
Phi(i,j)=X(j);
end
end
for i=1:Ny
Phighost_East(i,Nx)=Phi(i,Nx) + dPhidx_East*Dx;
end
for j=1:Nx
Phighost_North(1,j)=Phi(1,j) + dPhidy_North*Dy;
end
end
%%%%%%%%%%%%%%%%%%%%% FIM LOOP %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for i=1:Ny
for j=1:Nx
M(Ny-(i-1),j)=Phi(i,j);
end
end
% for i=1:Ny+2
%
% for j=1:Nx+2
%
% N((Ny+2)-(i-1),j)=Temp(i,j);
%
% end
%
% end
%xlabel e ylabel
% for i = 3:Nx + 1
%
% x(1) = 0;
%
% x(2) = x(1) + ((Dx) / 2);
%
% x(i) = x(i - 1) + Dx;
%
% end
%
% x(Nx + 2) = x(Nx + 1) + ((Dx) / 2);
%
%
% for i = 3:Ny + 1
%
% y(1) = 0;
%
% y(2) = y(1) + ((Dy) / 2);
%
% y(i) = y(i - 1) + Dy;
%
% end
%
% y(Ny + 2) = y(Ny + 1) + ((Dy) / 2);
x=Dx/2:Dx:Lx-Dx/2;
y=Dy/2:Dx:Ly-Dy/2;
%grafico
contourf(x,y,M);
colormap(jet);
colorbar;
% xlabel
xlabel({'Posição x (m)'},'FontSize',12);
% title
title({'Distribuição de Temperatura na Placa (°C)'},'FontSize',12);
% ylabel
ylabel({'Posição y (m)'},'FontSize',12);
Script TDMA.m Algoritmo de Thomas usado em todos os casos
global X
N = length(a);
% 1º PASSO:
% 2º PASSO:
for m = 2:N
end
% 3º PASSO:
X(N) = q(N);
% 4º PASSO:
for m = N-1:-1:1
end