Diferencia entre revisiones de «Ecuación del calor NAA»
| Línea 6: | Línea 6: | ||
[[Archivo:ecuación_del_calor_NAA.png|800px|right|]] | [[Archivo:ecuación_del_calor_NAA.png|800px|right|]] | ||
| + | |||
| + | A continuación, se van a mostrar los códigos que se han utilizado para representar cada una de las gráficas del trabajo. Todos ellos han sido escritos en Python. | ||
| + | En ambos códigos se pueden modificar la temperatura media, el periodo, la kappa(difusividad) y los tiempos ajustándolos a otros planetas y poder representar la temperatura de estos. | ||
| + | |||
| + | Código que representa la temperatura frente a la profundidad en la Tierra. | ||
| + | |||
| + | import numpy as np | ||
| + | import matplotlib.pyplot as plt | ||
| + | |||
| + | Tm = 15 #temperatura media de la Tierra en grados. | ||
| + | A0 = 10 | ||
| + | kappa = 1e-6 | ||
| + | P = 86400 # periodo diario | ||
| + | |||
| + | # Dominio | ||
| + | x = np.linspace(0, 2, 200) # profundidad hasta 2 m | ||
| + | |||
| + | # Tiempos distintos | ||
| + | times = [0, P/4, P/2, 3*P/4] | ||
| + | |||
| + | for t in times: | ||
| + | T = Tm + A0*np.exp(-x*np.sqrt(np.pi/(P*kappa))) * \ | ||
| + | np.sin(2*np.pi*t/P - x*np.sqrt(np.pi/(P*kappa))) | ||
| + | plt.plot(x, T, label=f"t={t/3600:.1f} h") | ||
| + | |||
| + | plt.xlabel("Profundidad (m)") | ||
| + | plt.ylabel("Temperatura (°C)") | ||
| + | plt.legend() | ||
| + | plt.title("Temperatura vs profundidad") | ||
| + | plt.grid() | ||
| + | plt.show() | ||
| + | |||
| + | |||
| + | Código que representa la temperatura frente al tiempo en la Tierra: | ||
| + | |||
| + | import numpy as np | ||
| + | import matplotlib.pyplot as plt | ||
| + | |||
| + | Tm = 15 | ||
| + | A0 = 10 | ||
| + | kappa = 1e-6 | ||
| + | P = 86400 # periodo diario | ||
| + | |||
| + | t = np.linspace(0, P, 500) | ||
| + | |||
| + | # distintas profundidades | ||
| + | depths = [0, 0.25, 0.5, 1, 2] | ||
| + | |||
| + | for x in depths: | ||
| + | T = Tm + A0*np.exp(-x*np.sqrt(np.pi/(P*kappa))) * \ | ||
| + | np.sin(2*np.pi*t/P - x*np.sqrt(np.pi/(P*kappa))) | ||
| + | plt.plot(t/3600, T, label=f"x={x} m") | ||
| + | |||
| + | plt.xlabel("Tiempo (horas)") | ||
| + | plt.ylabel("Temperatura (°C)") | ||
| + | plt.legend() | ||
| + | plt.title("Temperatura vs tiempo a distintas profundidades") | ||
| + | plt.grid() | ||
| + | plt.show() | ||
[[Categoría:EDP]] | [[Categoría:EDP]] | ||
[[Categoría:EDP25/26]] | [[Categoría:EDP25/26]] | ||
Revisión del 11:28 12 abr 2026
| Trabajo realizado por estudiantes | |
|---|---|
| Título | Series de Fourier. Grupo NAA |
| Asignatura | EDP |
| Curso | 2025-26 |
| Autores | Natalia Gutiérrez de Uriarte
Alba Peralta Zamora Ainhoa Martín García |
| Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura | |
A continuación, se van a mostrar los códigos que se han utilizado para representar cada una de las gráficas del trabajo. Todos ellos han sido escritos en Python. En ambos códigos se pueden modificar la temperatura media, el periodo, la kappa(difusividad) y los tiempos ajustándolos a otros planetas y poder representar la temperatura de estos.
Código que representa la temperatura frente a la profundidad en la Tierra.
import numpy as np import matplotlib.pyplot as plt
Tm = 15 #temperatura media de la Tierra en grados. A0 = 10 kappa = 1e-6 P = 86400 # periodo diario
- Dominio
x = np.linspace(0, 2, 200) # profundidad hasta 2 m
- Tiempos distintos
times = [0, P/4, P/2, 3*P/4]
for t in times:
T = Tm + A0*np.exp(-x*np.sqrt(np.pi/(P*kappa))) * \
np.sin(2*np.pi*t/P - x*np.sqrt(np.pi/(P*kappa)))
plt.plot(x, T, label=f"t={t/3600:.1f} h")
plt.xlabel("Profundidad (m)") plt.ylabel("Temperatura (°C)") plt.legend() plt.title("Temperatura vs profundidad") plt.grid() plt.show()
Código que representa la temperatura frente al tiempo en la Tierra:
import numpy as np import matplotlib.pyplot as plt
Tm = 15 A0 = 10 kappa = 1e-6 P = 86400 # periodo diario
t = np.linspace(0, P, 500)
- distintas profundidades
depths = [0, 0.25, 0.5, 1, 2]
for x in depths:
T = Tm + A0*np.exp(-x*np.sqrt(np.pi/(P*kappa))) * \
np.sin(2*np.pi*t/P - x*np.sqrt(np.pi/(P*kappa)))
plt.plot(t/3600, T, label=f"x={x} m")
plt.xlabel("Tiempo (horas)") plt.ylabel("Temperatura (°C)") plt.legend() plt.title("Temperatura vs tiempo a distintas profundidades") plt.grid() plt.show()