Ecuación del calor (Grupo MAMBD))

De MateWiki
Revisión del 13:19 16 mar 2025 de Barbara.jimenez (Discusión | contribuciones) (Regularidad y dimensiones)

Saltar a: navegación, buscar
Trabajo realizado por estudiantes
Título Ecuación del calor. Grupo MAMBD
Asignatura EDP
Curso 2024-25
Autores Matilde Rubio Arranz, Antonio Lozano Fernández, Marcos Gil García, Bárbara Jiménez Pérez y Daniel Marcos Viña
Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura


1 Introducción

La ecuación del calor es un modelo matemático que describe la difusión térmica en un medio. En una dimensión, se expresa como:

[math]u_t-u_{xx}=0.[/math]

donde [math]u(x,t)[/math] representa la temperatura en función del tiempo y la posición.

Resolveremos un problema específico utilizando la solución fundamental:

[math]G(x,t)=\frac{1}{4\sqrt{\pi t}}e^{-\frac{x^2}{4t}},[/math]

permitiéndonos analizar la propagación del calor en una región no acotada e interpretar los resultados.

2 Mensaje secreto en la ecuación del calor

Imaginamos que escribimos un mensaje secreto en una barra de metal infinita usando calor. Definimos la temperatura en el instante inicial

[math]u_0(x)=\left\{\begin{array}{ll} 5, & \text{$x$ está en una de las letras}\\ 0, & \text{en otro caso} \end{array}\right. ,[/math]

es decir, el mensaje inicial está formado por letras dibujadas en el eje [math]x[/math] con calor. Con el tiempo, el calor empieza a difundirse según la ecuación [math]u_t-u_{xx}=0[/math]. Su solución viene dada por la convolución:

[math]u(x,t)=\int_{-\infty}^{\infty} G(x-y,t)u_0(y) dy=\frac{1}{4\sqrt{\pi t}}\int_{-\infty}^{\infty} u_0(y)e^{-\frac{(x-y)^2}{4t}}.[/math]

Implementamos en Python la solución para diferentes instantes.

import numpy as np
import matplotlib.pyplot as plt

# Parámetros
L = 10.0  # Longitud de la barra
T = 0.1   # Tiempo final
nx = 100  # Número de puntos en el espacio
nt = 1000 # Número de puntos en el tiempo
alpha = 1 # Coeficiente de difusión térmica

dx = L / (nx - 1)
dt = T / (nt - 1)
r = alpha * dt / dx**2

# Inicialización
x = np.linspace(0, L, nx)
u = np.zeros(nx)

# Condición inicial
def initial_condition(x):
    # Definir las regiones de las letras
    if 2 < x < 3 or 4 < x < 5:
        return 5
    else:
        return 0

u = np.array([initial_condition(xi) for xi in x])

# Evolución temporal
for t in range(nt):
    un = u.copy()
    for i in range(1, nx-1):
        u[i] = un[i] + r * (un[i+1] - 2*un[i] + un[i-1])

    # Visualización en tiempos específicos
    if t in [int(0.001/dt), int(0.01/dt), int(0.1/dt)]:
        plt.plot(x, u, label=f't={t*dt:.3f}')

plt.xlabel('Posición x')
plt.ylabel('Temperatura u(x,t)')
plt.title('Difusión térmica del mensaje')
plt.legend()
plt.show()
Difusión del mensaje en la barra de metal

Así, se obtiene la siguiente gráfica. En ella podemos observar que conforme avanza el tiempo, la difusión del calor hace que los bordes de las letras pierdan definición. Al inicio, las regiones calientes se distinguen claramente, pero poco a poco el calor se extiende a las áreas frías, suavizando los contornos. A medida que esta difusión continúa, las letras se vuelven borrosas hasta que el contraste desaparece por completo y el mensaje se vuelve ilegible, ya que la temperatura se ha distribuido de manera uniforme en la barra.

3 Cambio en las condiciones iniciales

Consideremos ahora la temperatura inicial de la barra como una combinación de dos funciones características en intervalos diferentes. Definimos [math]u_0(x) = 1_{[0,1]} + 1_{[2,3]}[/math]. Es decir, la temperatura inicial es 1 en los intervalos [0,1] y [2,3] y es 0 en el resto de la barra. Veamos como la distancia entre los dos picos iniciales afecta a la difusión del calor.

4 Regularidad y dimensiones

Analicemos qué ocurre al extender la ecuación del calor a dimensiones superiores, y v

Actualmente, hemos estado trabajando en dimensión 1, donde la ecuación del calor viene dada por