Teoría de Hormigon
ECUACIONES EN DERIVADAS PARCIALES. ECUACIÓN DEL CALOR
CÓDIGO DE LOS EJERCICIOS REALIZADOS EN CLASE
Ejercicio 1. Realizamos el ejercicio considerando la condición inicial u(x,0)=100Código para obtener el gráfico de temperaturas en la barra en t=0.1 segundos.
%datos del problema
a=0;b=2; %espacio
%Numero de autofunciones de la serie=M
M=50
%mallado
%En x--------Paso espacial=hh=(b-a)/500;
x=a:h:b;
t=0.1; %fijamos t
f=100*ones(size(x));
U=0;
for k=1:M
p=sin(k*pi/2*x);
Ck=trapz(x,f.*p)/trapz(x,p.*p)
U=U+Ck*exp(-(k^2)*(pi^2)/4*t)*sin(k*pi/2*x);
end
plot(x,U)
Seobtiene el gráfico
100
90
80
70
60
50
40
30
20
10
0
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2
Código para obtener un gráfico con todas las curvas detemperaturas en la barra desde t=0 a
t=2, cada 0.1 segundos.
%datos del problema
a=0;b=2; %espacio
T=2; %tiempo final
%Numero de autofunciones de la serie=M
M=50;
%mallado
%En x--------Pasoespacial=h
h=(b-a)/500;
x=a:h:b;
f=100*ones(size(x));
hold on;
for t=0:0.1:T
U=0;
for k=1:M
p=sin(k*pi/2*x);
Ck=trapz(x,f.*p)/trapz(x,p.*p);
U=U+Ck*exp(-(k^2)*(pi^2)/4*t)*sin(k*pi/2*x);
endplot(x,U)
axis([0 2 0 100]);
end
hold off
100
90
80
70
60
50
40
30
20
10
0
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2
Código para obtener unaanimación con los gráficos de temperaturas en la barra desde t=0 a
t=2, cada 0.1 segundos. (No se va a pedir al alumno que desarrolle animaciones, simplemente
véase este código como curiosidad)
%datos delproblema
a=0;b=2; %espacio
T=2; %tiempo final
%Numero de autofunciones de la serie=M
M=50;
%mallado
%En x--------Paso espacial=h
h=(b-a)/500;
x=a:h:b;
f=100*ones(size(x));
i=1;
fort=0:0.1:T
U=0;
for k=1:M
p=sin(k*pi/2*x);
Ck=trapz(x,f.*p)/trapz(x,p.*p);
U=U+Ck*exp(-(k^2)*(pi^2)/4*t)*sin(k*pi/2*x);
end
plot(x,U)
axis([0 2 0 100]);
MFRAMES(i)=getframe();
i=i+1;
end...
Regístrate para leer el documento completo.