Diferencia entre revisiones de «Ecuación del calor (Grupo ILIA)»
| Línea 33: | Línea 33: | ||
| − | + | [[Archivo:soluil.png|400px|thumb|right|Solución de la ecuación del calor]] | |
<syntaxhighlight lang="python"> | <syntaxhighlight lang="python"> | ||
Revisión del 20:56 16 mar 2025
| Trabajo realizado por estudiantes | |
|---|---|
| Título | Ecuación del calor. Grupo MAMBD |
| Asignatura | EDP |
| Curso | 2024-25 |
| Autores | Ignacio Campos Paños, Ignacio Martínez Cerezo, Alicia Ruiz Dominguez, Luis Ramos Ortiz |
| 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 una de las ecuaciones en derivadas parciales más importantes y conocidas, dada su implicación en diversos ámbitos tanto de la ingeniería como de la física. Estudiaremos el comportamiento de esta ecuación en una barra unidimensional aislada en el intervalo [0,1], imponiendo condiciones de frontera con temperatura constante. Pero en la vida real las fuentes de calor no necesariamente tienen por qué estar en los extremos, por lo que el objetivo de este artículo es introducir una fuente de calor puntual en algún punto en el interior de la barra (0,1) y ver cómo se comporta la ecuación del calor.
2 Ecuación del calor
La ecuación de difusión del calor original sin fuentes de calor externas viene dada por: [math] u_t=u_{xx} [/math] donde la función u(x,t) es la función temperatura en cada posición e instante de tiempo, [math]u_t[/math] la derivada temporal y [math]u_{xx}[/math] la segunda derivada espacial, que modela la difusión del calor.
Si consideramos que la condición inicial en [math]t=0[/math] es [math]u(x,0)=sen(x)[/math], podemos obtener el siguiente problema de ecuación del calor con condiciones frontera:
Resolviendo este problema obtenemos que la solución estacionaria es:
y la solución general:
Vamos a graficar la solución.
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# puntos de la malla
x = np.linspace(0, 1, 50)
t = np.linspace(0, 0.5, 50)
X, T = np.meshgrid(x, t) # malla
U = np.sin(2 * np.pi * X) * np.exp(-4 * np.pi**2 * T) # sol general
# figura
fig = plt.figure(figsize=(10, 6))
ax = fig.add_subplot(111, projection='3d')
# grafica
ax.plot_surface(X, T, U, cmap='viridis')
ax.set_xlabel('Posición x')
ax.set_ylabel('Tiempo t')
ax.set_zlabel('Temperatura u(x,t)')
ax.set_title('Solución de la ecuación del calor')
plt.show()