Sie sind auf Seite 1von 8

eqcalor.

nb 1

Prctica 7. La ecuacin del calor


La ecuacin del calor ut k uxx modela la distribucin de la temperatura u!x, t" en una barra delgada de longitud fija L.

casos, la distribucin inicial de la temperatura vendr dada por una funcin f !x" .
En esta prctica, estudiaremos dicha ecuacin con condiciones de contorno homogneas y no homognas. En ambos

! La ecuacin del calor con condiciones homogneas

El mtodo de resolucin es separacin de variables, en el que la solucin u!x, t" se expresa como producto de dos
funciones, una de la variable x y otra de la variable t. La ecuacin se transforma entonces en un par de ecuaciones
diferenciales ordinarias que, en la mayora de los casos, se resuelven sin dificultad.

Ejemplo 1

En este ejemplo, analizaremos el caso de temperatura cero en los extremos de una varilla con k 1 y L 2 .
Este problema de contorno viene dado por:
ut uxx , 0 x 2, t 0;

u#x, 0$ f #x$,
u#0, t$ u#2, t$ 0, t 0;
0 x 2.

Resolvemos el problema para la distribucin inicial de temperatura dada por la funcin

f[x_]:=12 x - 26 x^2 + 20 x^3 - 5 x^4

La grfica de esta funcin es la siguiente:

Plot[f[x],{x,0,2},PlotStyle->RGBColor[1,0,0]];

1.75
1.5
1.25
1
0.75
0.5
0.25

0.5 1 1.5 2
eqcalor.nb 2

" Exp%t #
u!x, t, n" b!n" Sin ! $ & ,
Sabemos que la solucin es una suma infinita (en el ndice n) de trminos de la forma:
nx n 2
2 2
donde los coeficientes b!n" estn dados por la siguiente frmula integral. Observemos que la integral se calcula numri-
camente, con el comando NIntegrate. El comando Chop se usa para redondear a cero cantidades muy pequeas.

b[n_]:= NIntegrate[f[x] Sin[n Pi x/2],{x,0,2}]//Chop;

Por ejemplo, para obtener el primer coeficiente basta pedir:

b[1]

1.73685

A continuacin, generamos una tabla con los seis primeros coeficientes b!n" .

coefi=Table[b[n],{n,1,6}]

{1.73685, 0, 0.890548, 0, 0.206635, 0}

Ahora presentamos estos coeficientes, junto con su ndice, en forma de tabla.

Table[{n,coefi[[n]]},{n,1,6}]//TableForm

1 1.73685
2 0
3 0.890548
4 0
5 0.206635
6 0

El trmino n-simo del desarrollo en serie de la solucin viene dado por:

u[x_,t_,n_]:=coefi[[n]] Sin[n Pi x/2] Exp[-t (n Pi/2)^2]

Por tanto, la aproximacin dada por los seis primeros trminos del desarrollo es

aprou[x_,t_]=Sum[u[x,t,j],{j,1,6}]

Pi x 3 Pi x
1.73685 Sin[----]
--- 0.890548 Sin[------]
-----
2 2
-----------------
---------------- + --------------------
------------------- +
2 2
(Pi t)/4 (9 Pi t)/4
E E
5 Pi x
0.206635 Sin[------]
-----
2
--------------------
-------------------
2
(25 Pi t)/4
E
eqcalor.nb 3

Para dibujar esta solucin aproximada, construiremos una tabla de grficos. Estos grficos representan la solucin para
los valores del tiempo comprendidos entre t 0 y t 0.7, usando un incremento de 0.7/11. Esto produce exactamente
doce grficos de la solucin. Observemos que cuando t crece, la temperatura u!x, t" se aproxima a cero.

grafico=Table[Plot[aprou[x,t],{x,0,2},PlotRange->{0,2},
DisplayFunction->Identity], {t,0,.7,.7/11}];

gratabla=Partition[grafico,3];

Show[GraphicsArray[gratabla]];

2 2 2
1.75 1.75 1.75
1.5 1.5 1.5
1.25 1.25 1.25
1 1 1
0.75 0.75 0.75
0.5 0.5 0.5
0.25 0.25 0.25
0.5 1 1.5 2 0.5 1 1.5 2 0.5 1 1.5 2
2 2 2
1.75 1.75 1.75
1.5 1.5 1.5
1.25 1.25 1.25
1 1 1
0.75 0.75 0.75
0.5 0.5 0.5
0.25 0.25 0.25
0.5 1 1.5 2 0.5 1 1.5 2 0.5 1 1.5 2
2 2 2
1.75 1.75 1.75
1.5 1.5 1.5
1.25 1.25 1.25
1 1 1
0.75 0.75 0.75
0.5 0.5 0.5
0.25 0.25 0.25
0.5 1 1.5 2 0.5 1 1.5 2 0.5 1 1.5 2
2 2 2
1.75 1.75 1.75
1.5 1.5 1.5
1.25 1.25 1.25
1 1 1
0.75 0.75 0.75
0.5 0.5 0.5
0.25 0.25 0.25
0.5 1 1.5 2 0.5 1 1.5 2 0.5 1 1.5 2

Ejemplo 2

Analizamos el caso de extremos aislados, es decir, el problema de contorno dado por:


ut k uxx , 0 x L, t 0;

u#x, 0$ f #x$,
ux #0, t$ ux #L, t$ 0, t 0;
0 x L.

" Exp%t #
u!x, t, n" a!n" Cos ! $ &. Los coeficientes a!n" estn dados por la siguiente frmula integral.
Sean k 1 y L 2 . Consideremos la misma distribucin inicial de temperatura que en el ejemplo anterior. Entonces
nx n 2
2 2
eqcalor.nb 4

a[0]=(1/2)NIntegrate[f[x],{x,0,2}]//Chop

1.33333

a[n_]:=NIntegrate[f[x] Cos[n Pi x/2],{x,0,2}]//Chop

coeficos=Table[a[n],{n,1,6}]

{0, 0.0321273, 0, -0.453937, 0, -0.239772}

El trmino n-simo del desarrollo en serie de la solucin viene dado por

u[x_,t_,n_]:=coeficos[[n]] Cos[n Pi x/2] Exp[-t(n Pi/2)^2]

La aproximacin de la solucin mediante los seis primeros trminos del desarrollo es

aprou[x_,t_]=a[0]+Sum[u[x,t,j],{j,1,6}]

0.0321273 Cos[Pi x] 0.453937 Cos[2 Pi x]


1.33333 + -------------------
------------------ - --------------------
------------------- -
2 2
Pi t 4 Pi t
E E
0.239772 Cos[3 Pi x]
--------------------
-------------------
2
9 Pi t
E

grafico2=Table[Plot[aprou[x,t],{x,0,2},PlotRange->{0,2},
DisplayFunction->Identity], {t,0,0.1,.1/8}];

gratabla2=Partition[grafico2,3];
eqcalor.nb 5

Show[GraphicsArray[gratabla2]];

2 2 2
1.75 1.75 1.75
1.5 1.5 1.5
1.25 1.25 1.25
1 1 1
0.75 0.75 0.75
0.5 0.5 0.5
0.25 0.25 0.25
0.5 1 1.5 2 0.5 1 1.5 2 0.5 1 1.5 2
2 2 2
1.75 1.75 1.75
1.5 1.5 1.5
1.25 1.25 1.25
1 1 1
0.75 0.75 0.75
0.5 0.5 0.5
0.25 0.25 0.25
0.5 1 1.5 2 0.5 1 1.5 2 0.5 1 1.5 2
2 2 2
1.75 1.75 1.75
1.5 1.5 1.5
1.25 1.25 1.25
1 1 1
0.75 0.75 0.75
0.5 0.5 0.5
0.25 0.25 0.25
0.5 1 1.5 2 0.5 1 1.5 2 0.5 1 1.5 2

! La ecuacin del calor con condiciones no homogneas

Este problema de contorno viene dado por:

ut k uxx , 0 x L, t 0;

u#x, 0$ f #x$,
u#0, t$ T0 , u#L, t$ T1 , t 0;
0 x L;

siendo T0 y T1 las tempraturas de los extremos de la varilla.

El mtodo de separacin de variables falla si alguna de las condiciones de contorno no es homognea. En el caso de la
ecuacin del calor podemos hacer alguna modificacin para seguir aplicando este mtodo. Observemos que cuando t
crece la temperatura se aproxima a un estado estacionario que slo depende de x, digamos s#x$ . Entonces tenemos que
T1 T0
u#x, t$ s#x$ v#x, t$, donde s#x$
L x T0 , y v#x, t$ verifica el siguiente problema de contorno:

vt k vxx , 0 x L, t 0;

v#x, 0$ f #x$ s#x$,


v#0, t$ v#L, t$ 0, t 0;
0 x L.

Ejercicio

Analizar el problema de contorno propuesto, para los valores k L 1, T0 0, T1 1 ' 2 y la distribucin inicial de
temperatura dada por f !x" x2 . Entonces,

s[x_]:=x/2; f[x_]:=x^2;
eqcalor.nb 6

Plot[{f[x],s[x]},{x,0,1}, PlotStyle->{RGBColor[1,0,0],RGBColor[0,0,1]}];
1

0.8

0.6

0.4

0.2

0.2 0.4 0.6 0.8 1

A continuacin, definimos los coeficientes a!n" usando NIntegrate y Chop, con

a[n_]:=2 NIntegrate[(f[x]-s[x]) Sin[n Pi x], {x,0,1}]//Chop;

Los seis primeros coeficientes son:

coe=Table[a[n],{n,1,6}]

{0.0602976, -0.159155, 0.0965473, -0.0795775, 0.0615979,


-0.0530516}

Ahora definimos el trmino n-simo de la parte transitoria de la temperatura en v#x, t$ ,

v[x_,t_,n_]:=coe[[n]] Sin[n Pi x] Exp[- t(n Pi)^2]

La suma de los seis primeros trminos se obtiene con

vapro[x_,t_]=Sum[v[x,t,j],{j,1,6}]

0.0602976 Sin[Pi x] 0.159155 Sin[2 Pi x]


-------------------
------------------ - --------------------
------------------- +
2 2
Pi t 4 Pi t
E E
0.0965473 Sin[3 Pi x] 0.0795775 Sin[4 Pi x]
---------------------
-------------------- - ---------------------
-------------------- +
2 2
9 Pi t 16 Pi t
E E
0.0615979 Sin[5 Pi x] 0.0530516 Sin[6 Pi x]
---------------------
-------------------- - ---------------------
--------------------
2 2
25 Pi t 36 Pi t
E E

La solucin aproximada de la ecuacin del calor con condiciones no homogneas es la suma de la solucin
estacionaria y la solucin transitoria. Se define con uapro.
eqcalor.nb 7

uapro[x_,t_]=s[x]+vapro[x,t]

x 0.0602976 Sin[Pi x] 0.159155 Sin[2 Pi x]


- + -------------------
------------------ - --------------------
------------------- +
2 2 2
Pi t 4 Pi t
E E
0.0965473 Sin[3 Pi x] 0.0795775 Sin[4 Pi x]
---------------------
-------------------- - ---------------------
-------------------- +
2 2
9 Pi t 16 Pi t
E E
0.0615979 Sin[5 Pi x] 0.0530516 Sin[6 Pi x]
---------------------
-------------------- - ---------------------
--------------------
2 2
25 Pi t 36 Pi t
E E

Por ltimo, dibujaremos la solucin aproximada para valores del tiempo comprendidos entre t 0 y t 0.1 , usando
0.1
un incremento de
. Observemos que cuando t crece la solucin se aproxima a la funcin que describe el estado
8
estacionario de temperatura.

grafico3=Table[Plot[uapro[x,t],{x,0,1},
PlotRange->{0,1}, PlotStyle->RGBColor[0,0,1],
DisplayFunction->Identity], {t,0,.1,.1/8}];

gratabla3=Partition[grafico3,3];

Show[GraphicsArray[gratabla3]];

1 1 1
0.8 0.8 0.8
0.6 0.6 0.6
0.4 0.4 0.4
0.2 0.2 0.2
0.20.40.60.8 1 0.20.40.60.8 1 0.20.40.60.8 1
1 1 1
0.8 0.8 0.8
0.6 0.6 0.6
0.4 0.4 0.4
0.2 0.2 0.2
0.20.40.60.8 1 0.20.40.60.8 1 0.20.40.60.8 1
1 1 1
0.8 0.8 0.8
0.6 0.6 0.6
0.4 0.4 0.4
0.2 0.2 0.2
0.20.40.60.8 1 0.20.40.60.8 1 0.20.40.60.8 1

La grfica de la solucin aproximada uapro!x_, t_" se obtiene con


eqcalor.nb 8

Plot3D[uapro[x,t],{x,0,1},{t,0,.1},
Boxed->True,ViewPoint->{-1,3,1}];
0
0.025
0.05
0.075
0.1
0.8

0.6

0.4

0.2

0
1
0.75
0.5
0.25
0

Das könnte Ihnen auch gefallen