Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Trabajo
Trabajo
TerrySanSah
Modelización de Materiales
Facultad de Química
Universidad de Sevilla
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-5936053
1. Introducción
La ecuación del calor tiene la siguiente formulación general.
𝜕𝑈
𝜕𝑡
= 𝜅∇2 𝑈 + 𝑞 (1)
Donde U representa la temperatura del material en una posición e instante determinados y
𝐾
se tiene la difusividad térmica es 𝜅 = 𝑐𝜌0 , donde, K0 es la conductividad térmica, c es la capacidad
calorífica específica y la densidad másica del material. Todas supuestas homogéneas en el
𝑄
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
volumen. Y el factor fuente es 𝑞 = 𝑐𝜌, donde Q es el calor que comunica al cuerpo desde el
exterior.
Si se tiene una barra de grosor despreciable frente a su longitud, es decir, una barra que
podemos asimilar como monodimensional en la cual no existen fuentes externas de calor, la
ecuación del calor queda reducida a la siguiente expresión.
𝜕𝑈 𝜕2𝑈
=𝜅 (2)
𝜕𝑡 𝜕𝑥 2
El objeto de aplicar una aproximación en diferencias finitas es resolver la ecuación
diferencial de segundo orden sin tener que calcular las derivadas. Para ello, se aplica un esquema
de diferencias finitas que se obtiene mediante la sustitución de las derivadas que aparecen en la
ecuación diferencial por su definición, esto es, por el límite del cociente entre la diferencia de la
función en dos puntos y la distancia entre dichos puntos cuando esta última tiende a cero.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
cada punto de la barra y el índice j para el instante de tiempo dado. La relación existente entre las
variables x y t y los índices i y j, respectivamente, se recoge en las expresiones (4) y (5).
𝑥 = (𝑖 − 1)ℎ (4)
𝑡 = (𝑗 − 1)𝑘 (5)
Siendo h y k los parámetros de discretización para el espacio y el tiempo, es decir, el
intervalo espacial y el paso de tiempo elegidos para resolver el problema. Cabe señalar que el
intervalo espacial está inversamente relacionado con el número de segmentos, n, en el que se
decide dividir la barra.
1
∆𝑥 = ℎ = 𝑛
(6)
∆𝑡 = 𝑘 (7)
Puesto que la barra de nuestro problema tiene una longitud unitaria, se tiene que el índice i
toma valores entre 1 y n+1, los cuales corresponden a sendos extremos de la barra, es decir, a x=0
Solución exacta 𝑈𝑡𝑒𝑜𝑟 = (𝑠𝑒𝑛(𝜋(𝑖 − 1)ℎ) + cos(𝜋(𝑖 − 1)ℎ) · exp (−𝜋 2 (𝑗 − 1)𝑘)
Como ya se ha indicado con anterioridad, el método de Crank-Nicolson da lugar a un
sistema de ecuaciones cuya solución es la matriz de temperaturas, que se denominará en adelante
UCN. Esta matriz tiene dimensiones de n+1 filas y m columnas, es decir, que guarda en cada fila
la evolución temporal de la temperatura de un nodo concreto o, dicho de otro modo, cada una de
sus columnas almacena el perfil de temperaturas del conjunto de la barra.
Si llamamos uj a la columna de UCN correspondiente al instante j, se tiene que se cumple el
sistema de ecuaciones siguiente:
𝐴 · 𝑢𝑗 = 𝑏 (8)
Donde A es una matriz cuadrada de n+1 filas y columnas y b un vector columna de n+1
filas, al igual que uj. A y b deben definirse atendiendo a las condiciones de contorno específicas
del problema y al esquema de diferencias finitas elegido para su resolución, este último
condiciona la forma de las filas centrales, mientras que las condiciones de contorno modifican los
valores de la primera y la última fila.
-r 2+2r -r 0 … 0
A= 0 -r 2+2r -r … 0
⋱ -r
…
… …
… …
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
… -r 2+2r -r
0 0 … 0 0 1
exp(-2(j-1)·k)
𝑟𝑢1,𝑗−1 + (2 − 2𝑟)𝑢2,𝑗−1 + 𝑟𝑢3,𝑗−1
bCN = 𝑟𝑢2,𝑗−1 + (2 − 2𝑟)𝑢3,𝑗−1 + 𝑟𝑢4,𝑗−1
…
3. Script de programación
Seguidamente, se muestra las líneas del script a partir del cual se ha obtenido la solución
del problema. En color verde se muestran los comentarios del mismo.
El programa tiene como parámetros de entrada n, k y m, que definen la discretización a
llevar a cabo, y como parámetros de salida la UCN y Uteor, matrices de temperatura calculada a
partir del esquema en diferencias finitas y por la ecuación teórica, respectivamente. Cabe señalar
que ambas matrices tienen idénticas dimensiones.
function [Ucn,Uteor]=trabajo(n,k,m)
%n = número de intervalos espaciales
%k = paso de tiempo delta(t)
%m = número de pasos de tiempo (j=1,...,m)
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
A(i,i-1)=-r; %elementos tipo A21
A(i,i+1)=-r; %elementos tipo A12
end
%Ahora los valores especiales
A(1,1)=1;
A(n+1,n+1)=1;
%BUCLE TEMPORAL
%Lo primero es definir la matriz b
for j=2:m
%Implementamos las c.c. para el nodo i=1
b(1,1)=exp(-pi^2*(j-1)*k);
Uteor(1,j)=exp(-pi^2*(j-1)*k); %Solución exacta para x=0
%Implementamos las c.c. para el nodo i=n+1
b(n+1,1)=-exp(-pi^2*(j-1)*k);
Uteor(n+1,j)=-exp(-pi^2*(j-1)*k); %Solución exacta para
x=1
for i=2:n
b(i,1)=r*Ucn(i-1,j-1)+(2-2*r)*Ucn(i,j-
1)+r*Ucn(i+1,j-1);
Uteor(i,j)=(sin(pi*(i-1)*h)+cos(pi*(i-1)*h))*exp(-
pi^2*(j-1)*k);
end
%Sabemos que A·u=b --> u=inv(A)·b. Cada 'u' es una columna
de Ucn
Ucn(:,j)=A\b;
end
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-5936053
4. Análisis de resultados.
El programa nos permite obtener valores de temperatura aproximada y teórica para
cualquier punto de la barra en cualquier instante. En la gráfica 1 se representa el perfil de
temperatura obtenido para los instantes inicial y final, j =1 y j = m, respectivamente, cuando se
resuelve el problema con los parámetros siguientes.
n k tf m
10 0,0005 0,05 101
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Como ya se ha mencionado, para el instante inicial y final no existe diferencia entre los
valores de temperatura exactos y los aproximados por el método de Crank-Nicolson.
1,5
1
Temperatura
0,5
j=1
0
j = 101
1 2 3 4 5 6 7 8 9 10 11
-1
-1,5
i
Figura 1. Valores de temperatura frente a la posición en la barra (x=(i-1)·h) para el instante inicial y final.
Para los demás valores de tiempo, podemos asimilar el error cometido en la aproximación
como el valor absoluto de la diferencia entre la temperatura teórica y la aproximada. Dado que
existen tres parámetros de entrada diferentes en el programa, n, k y m, se procede a determinar la
afección que sufre dicho error cuando se modifican estos valores.
En primer lugar, se reúnen en la figura 2 una serie de gráficas correspondientes a los perfiles
de error para un instante de tiempo dado. Para obtener estos valores de error, se ha ejecutado el
programa con las especificaciones siguientes y se ha calculado el error de la aproximación como
se ha indicado.
n k tf m
A 10 0,0005 0,05 101
B 10 0,0005 0,1 201
C 10 0,0005 0,15 301
El único cambio que se ha efectuado en cada caso reside en el tiempo de simulación,
dejando las divisiones de la barra y del paso de tiempo invariables. Tal y como cabría esperar, no
se observa un cambio significativo del error registrado.
La forma de la función error en un instante dado se muestra semejante a una parabólica
cóncava que presenta un máximo en las cercanías de i = 4. En la figura 2(a) se evidencia que el
valor de dicho máximo se incrementa conforme j aumenta, es decir, conforme el tiempo pasa.
Esto podría invitar a pensar que este crecimiento tiene carácter indefinido, no obstante, si se alarga
la duración de la simulación hasta tf = 0,1 ya se adivina en la figura 2(b) que esto no ocurre, ya
que el máximo para j = 200 es algo menor que el registrado para j = 160. La figura 2(c), que es la
(a) (b)
0,0035 0,0035
0,003 0,003
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
0,0025 0,0025
0,002 0,002
Error
Error
0,0015 0,0015
0,001 0,001
0,0005 0,0005
0 0
1 3 5 7 9 11 1 3 5 7 9 11
j=1 j = 10 j = 20 j = 30 j=1 j =40 j = 80
j = 40 j = 50 j = 60 j = 70
(c) 0,0035
0,003
0,0025
0,002
Error
0,0015
0,001
0,0005
0
1 3 5 7 9 11
j=1 j = 60 j =120 j = 180 j = 240 j = 300
Figura 2. Perfil del error calculado a lo largo de la barra (x=(i-1)·h) para m = 101 (a), m = 201 (b) y m =
301 (c).
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
0,003 i=1
i =2
0,0025
i=3
0,002 i=4
Error
0,0015 i=5
i=6
0,001
i=7
0,0005 i=8
i=9
0
0 50 100 150 200 250 300 i = 10
Los puntos angulosos que muestran algunas curvas de error se deben a que se representa el
valor absoluto.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
para un k todavía menor.
0,003 0,001
0,0025
0,0008
0,002
Error
Error
0,0006
0,0015
0,001 0,0004
0 0
0 0,05 0,1 0 0,02 0,04 0,06 0,08 0,1
Tiempo, t Tiempo, t
k = 0,01 k = 0,001 k = 0,0001 k = 0,01 k = 0,001 k =0,0001
Figura 4. Evolución temporal del error en las posiciones i = 5 e i =9 (x=(i-1)·h) para diferentes pasos de tiempo.
El error que se observa en ambos casos para k = 0,0001 es idéntico al registrado para un
paso de tiempo de k = 0,001, de lo que se desprende que los cambios en k no suponen una
variación significativa del error, independientemente de lo importantes que sean dichos cambios.
Al margen de ello, es destacable el hecho de que una reducción en el paso de tiempo
desemboque en un aumento del error, lo que tal vez vaya en contra de la lógica. Se debe tener en
cuenta que, en el esquema de diferencias finitas de Crank-Nicolson, para calcular la temperatura
en una posición e instante dado se tienen en cuenta únicamente valores de temperatura del paso
de tiempo inmediatamente anterior. Dado que la propagación del error se produce sobre todo
porque la temperatura en esa posición e instante está definida por las temperaturas de esa y de las
posiciones adyacentes en el instante anterior, el hecho de aumentar el número de pasos de tiempo
en el cálculo induce a una mayor acumulación de error en cada punto.
Con este último razonamiento en mente, se procede a analizar las alteraciones que produce
una modificación en el valor de n en el error. Para ello, se procede a aplicar el programa con los
siguientes parámetros de entrada.
n k tf m
1 10 0,0005 0,05 101
2 50 0,0005 0,05 101
3 100 0,0005 0,05 101
Donde únicamente modificamos el valor de n, el número de intervalos espaciales.
Al igual que ya se hizo con anterioridad, es posible representar la distribución espacial del
error en un instante dado para cada valor de n establecido. Los resultados obtenidos se recogen
en la figura 5, donde se observa con claridad que las curvas de error no han cambiado con respecto
a lo que ya se ha visto. La diferencia se observa cuando se atiende a los valores que alcanza el
máximo. Conforme se incrementa n, el valor de este máximo error registrado se reduce.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-5936053
Distribución del error para cada instante de tiempo
n = 10 n = 50
3,5E-03 1,4E-04
3,0E-03 1,2E-04
2,5E-03 1,0E-04
2,0E-03 8,0E-05
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Error
Error
1,5E-03 6,0E-05
1,0E-03 4,0E-05
5,0E-04 2,0E-05
0,0E+00
0,0E+00
0 0,2 0,4 0,6 0,8 1
0 0,2 0,4 0,6 0,8 1
Posición, x Posición, x
j=1 j = 10 j = 20 j = 30 j=1 j = 10 j = 20 j = 30
j = 40 j = 50 j = 60 j = 70 j = 40 j =50 j = 60 j = 70
j = 80 j = 90 j = 100 j = 80 j =90 j = 100
3,0E-05
2,5E-05
2,0E-05
Error
1,5E-05
1,0E-05
5,0E-06
0,0E+00
0 0,2 0,4 0,6 0,8 1
Posición, x
j=1 j = 10 j = 20 j = 30
j = 40 j = 50 j = 60 j = 70
j = 80 j = 90 j = 100
Figura 5. Perfil del error calculado de lo largo de la barra para n = 10, n = 50 y n = 100, respectivamente.
Para realizar una comparación que resulte más clara desde el punto de vista gráfico, se va
a comparar el error registrado en un punto concreto de la barra para diferentes valores de n
manteniendo constantes el paso de tiempo k y el tiempo total de simulación, de modo que m
también se conserva.
n i x = (i-1)·h n i x = (i-1)·h
10 3 10 7
50 11 0,2 50 31 0,6
100 21 100 61
0,002 0,0014
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
0,0012
Error
Error
0,0015 0,001
0,0008
0,001
0,0006
0,0004
0,0005
0,0002
0 0
0 50 100 0 50 100
j
j
n = 10 n = 50 n = 100 n = 10 n = 50 n = 100
Figura 6. Evolución temporal del error en x = 0,2 y x = 0,6 para n = 10, n = 50 y n = 100.
5. Conclusiones.
El método de diferencias finitas aplicado a la ecuación del calor monodimensional según
el esquema de Cranck-Nicolson resulta una forma eficaz para el cálculo aproximado de las
temperaturas que no incurre en mucho error.
La forma más eficaz de minimizar el error cometido consiste en el aumento del número de
divisiones de la barra, n.
10