Está en la página 1de 4

Ecuacin de Calor

clear all;

close all;

fprintf('\n Ingresar las condiciones de frontera. \n');

izq=input('ingrese la condicin de frontera del lado izquierdo (b):\n');

der=input('ingrese la condicin de frontera del lado derecho (d):\n');

fprintf('\n Ingresar las condiciones iniciales... \n');

ini=input('ingrese la condicin inicial:\n');

fin=input('ingrese la condicin final:\n');

fprintf('\n Ingresar el coeficiente de difusin trmica... \n');

term=input('Coeficiente de difusion:\n');

b=izq;

d=der;

Tb=ini;

Td=fin;

alfa = term;

% parmetros computacionales

% Nx: nmero de nodos

% delta_t : incremento en el tiempo

% Nmaxt = nmero de ciclos en la iteracin en el tiempo

fprintf('\n Ingresar el numero los puntos de muestra que desea. \n');

muestra=input('Numero de puntos muestra\n');

Nx = muestra;
delta_t = 0.01;

fprintf('\n Cuanto segundos desea que dure la simulacion?:\n');

seg=input('segundos:\n');

Nmaxt = seg*100;

% delta_x = discretizacin espacial L/(Nx-1)

delta_x = (d-b)/(Nx-1);

s = alfa*delta_t/(delta_x^2)

% x: ubicacin de los nodos, para la graficacin

x = b:delta_x:d;

% T: vector de temperaturas

T(1)= Tb;

T(Nx)= Td;

T(2:Nx-1)=0;

% Graficacin de las condiciones iniciales de Temperatura

%en la barra

plot(x,T)

axis([b d 0 120]);

%title(' Ecuacin de Difusion Explcita');

t=0;

title([' t = ',num2str(t)],'FontSize',18);

xlabel('x'); ylabel('T');

grid on

F = getframe(gcf);

pause(1)
% Told : variable auxiliar (vector) para almacenar las

%temperaturas del

% paso de tiempo anterior

Told=T;

% Ciclo iterativo

for n=1:Nmaxt

T(1)=Tb;

for j=2:Nx-1

T(j)=s*Told(j-1) + (1-2*s)*Told(j) + s*Told(j+1);

end

T(Nx)=Td;

plot(x,T,'o-')

axis([b d 0 120]);

%title(' Ecuacin de Difusion Explcita');

t=t+delta_t;

title([' t = ',num2str(t)],'FontSize',18);

grid on

xlabel('X'); ylabel('T');

F = getframe(gcf);

pause(0.01)

Told=T;

disp([n T])

endl;

Hernandez Pelaez Miguel Angel.

También podría gustarte