Вы находитесь на странице: 1из 3

Ecuación del calor para una barra

Considérese una barra sólida de sección transversal uniforme y densidad invariable ubicada en un
sistema de referencia como se muestra en la figura:

𝑥=0 𝑥=𝐿

Entonces, la temperatura 𝑇 en a una distancia 𝑥 ∈ [0, 𝐿], en un tiempo específico 𝑡, obedece a la


ecuación diferencial:

𝜕𝑇(𝑥, 𝑡) 𝜕 2 𝑇(𝑥, 𝑡)
= 𝑎2
𝜕𝑡 𝜕𝑥 2

Resuélvase, bajo este esquema, la ecuación diferencial

𝜕𝑇(𝑥, 𝑡) 𝜕 2 𝑇(𝑥, 𝑡)
= 𝑎2
𝜕𝑡 𝜕𝑥 2

Sujeta a las condiciones 𝑇(𝑥, 0) = 𝑇(𝑥, 10) = 0; 𝑇(0, 𝑡) = cos(𝑥) ; 𝑎 = 2

Para el efecto, es bueno recordar que se fácilmente se pueden realizar aproximaciones para las
derivadas, fijando un pequeño paso ℎ en 𝑥, y 𝑘 en 𝑦.

𝜕 2 𝑇(𝑥, 𝑡) 𝑇(𝑥 − ℎ) − 2𝑇(𝑥, ℎ) + 𝑇(𝑥 + ℎ)



𝜕𝑥 2 ℎ2
𝜕𝑇(𝑥, 𝑡) 𝑇(𝑥, 𝑡 + 𝑘) − 𝑇(𝑥, 𝑡)

𝜕𝑡 𝑘
Reemplazando en la ecuación, se tiene:

𝜕𝑇(𝑥, 𝑡) 𝜕 2 𝑇(𝑥, 𝑡)
= 𝑎2
𝜕𝑡 𝜕𝑥 2
𝑇(𝑥, 𝑡 + 𝑘) − 𝑇(𝑥, 𝑡) 𝑇(𝑥 − ℎ, 𝑡) − 2𝑇(𝑥, 𝑡) + 𝑇(𝑥 + ℎ, 𝑡)
= 𝑎2
𝑘 ℎ2

Despejando 𝑇(𝑥, 𝑡 + 𝑘), se obtiene la siguiente expresión:

𝑎2 𝑘
𝑇(𝑥, 𝑡 + 𝑘) = [𝑇(𝑥 − ℎ, 𝑡) − 2𝑇(𝑥, 𝑡) + 𝑇(𝑥 + ℎ, 𝑡)] + 𝑇(𝑥, 𝑡)
ℎ2
𝑎2 𝑘
Denotando ℎ2
con el parámetro 𝜆, se consigue:

𝑇(𝑥, 𝑡 + 𝑘) = 𝜆[𝑇(𝑥 − ℎ, 𝑡) − 2𝑇(𝑥, 𝑡) + 𝑇(𝑥 + ℎ, 𝑡)] + 𝑇(𝑥, 𝑡 − 𝑘)


𝑇(𝑥, 𝑡 + 𝑘) = 𝜆[𝑇(𝑥 − ℎ, 𝑡) − 2𝑇(𝑥, 𝑡) + 𝑇(𝑥 + ℎ, 𝑡)] + 𝑇(𝑥, 𝑡 − 𝑘)

Que permite determinar los valores de la temperatura para cada fila en la posición de 𝑡 + 𝑘𝑖 ,
utilizando los valores de la fila 𝑡 + 𝑘𝑖−1 ~ 𝑥 − ℎ, 𝑥, 𝑥 + ℎ.

Código:

function[T]= solEcOnda(f,g,a,L,h,tf )

x=0:h:L;
N=length(x);

% Lambda <- w = k*a^2 /h^2


% Debe ser menor o igual que 1/2
k = 0.45.*(h.^2./a.^2); w=0.45;

t=0:k:tf;
M=length(t);

T=zeros(M,N);

% t
% ^
% |
% | [ T ]
% |
% M |
% --------------> x
% N

%Dos primeras filas


T(M,:)=[0,f(x(2:N-1)),0];
T(M-1,:)=T(M,:)+k.*[0,g(x(2:N-1)),0];

for m=2:M-1
for n=2:N-1
T(M-m, n)= w.*(T(M-m+1,n-1)-2.*T(M-m+1,n) + T(M-m+1,n+1) ) + T(M-
m+1,n);
end
end

figure(1);

for m=1:M;
plot(x,T(M-10,:),'g'), hold on, plot([0,L],[0,0]),hold on,plot(x,T(M-
m+1,:),'r', 'LineWidth',3), hold on, grid on,
axis([0,L,min(min(T)),max(max(T))]);
pause(0.0001);
hold off;
end
end
El método asegura estabilidad, si se cumple que:

𝑎2 𝑘 1

ℎ2 2

O de manera más práctica, escogiendo el paso 𝑘 una vez definido ℎ y conocido 𝑎:

ℎ2
𝑘≤
2𝑎2
Tal como se llevó a cabo en el código.