Diferencia entre revisiones de «Ecuación del calor JC»

De MateWiki
Saltar a: navegación, buscar
Línea 44: Línea 44:
 
</source>
 
</source>
  
 +
=CODIGO 4 =
 +
<source lang: "Matlab" line>
 +
import numpy as np
 +
import matplotlib.pyplot as plt
 +
 +
def K(x, t, y=0):
 +
    """Solución fundamental centrada en y."""
 +
    return (1 / np.sqrt(4 * np.pi * t)) * np.exp(-(x - y)**2 / (4 * t))
 +
 +
x = np.linspace(-5, 5, 1000)
 +
t = 0.1  # Fijamos un tiempo
 +
 +
# Definimos tres centros y tres intensidades (coeficientes)
 +
centros = [-2, 0, 1.5]
 +
pesos = [0.8, 1.2, 0.5]
 +
 +
plt.figure(figsize=(10, 6))
 +
 +
# Dibujamos cada solución fundamental individual
 +
u_total = np.zeros_like(x)
 +
for y, c in zip(centros, pesos):
 +
    u_i = c * K(x, t, y)
 +
    u_total += u_i
 +
    plt.plot(x, u_i, '--', alpha=0.6, label=f'Centrada en y={y} (peso {c})')
 +
 +
# Dibujamos la combinación lineal (la suma)
 +
plt.plot(x, u_total, 'k-', lw=2, label='Combinación Lineal (Suma)')
 +
 +
plt.title('Superposición de Soluciones Fundamentales', fontsize=14)
 +
plt.xlabel('Posición (x)')
 +
plt.ylabel('Temperatura (u)')
 +
plt.legend()
 +
plt.grid(True, alpha=0.3)
 +
plt.show()
 +
</source>
  
 
[[Categoría:EDP]]
 
[[Categoría:EDP]]
 
[[Categoría:EDP25/26]]
 
[[Categoría:EDP25/26]]

Revisión del 18:38 12 abr 2026

Trabajo realizado por estudiantes
Título Ecuación del calor. Grupo 6-A
Asignatura EDP
Curso 2025-26
Autores Carlos Asensio

Javier Martínez

Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura


1 Póster

Archivo:EDPS POSTER 3.pdf center

2 CODIGO 3

import numpy as np
import matplotlib.pyplot as plt
from scipy.special import erfc

# 1. Definición del dominio espacial (x > 0). Usamos un rango de 0 a 5.
x = np.linspace(0, 5, 1000)

# 2. Definición de los instantes de tiempo muy pequeños para ver el comportamiento cerca de t=0
tiempos = [0.01, 0.1, 0.5, 1.0, 5.0]

plt.figure(figsize=(10, 6))

# 3. Cálculo y representación de la solución para cada tiempo
for t in tiempos:
    u = 1 + erfc(x / (2 * np.sqrt(t)))
    plt.plot(x, u, label=f't = {t}')

# 4. Decoración de la gráfica para el póster
plt.title('Evolución Térmica en Semiespacio: $u(0,t)=2, u(x,0)=1$', fontsize=14)
plt.xlabel('Posición (x)', fontsize=12)
plt.ylabel('Temperatura (u)', fontsize=12)

# Límites del Principio del Máximo
plt.axhline(2, color='red', linestyle='--', alpha=0.5, label='Frontera u=2')
plt.axhline(1, color='blue', linestyle='--', alpha=0.5, label='Dato inicial u=1')

plt.legend()
plt.grid(True, which='both', linestyle='--', alpha=0.5)
plt.ylim(0.8, 2.2)
plt.show()

3 CODIGO 4

import numpy as np
import matplotlib.pyplot as plt

def K(x, t, y=0):
    """Solución fundamental centrada en y."""
    return (1 / np.sqrt(4 * np.pi * t)) * np.exp(-(x - y)**2 / (4 * t))

x = np.linspace(-5, 5, 1000)
t = 0.1  # Fijamos un tiempo

# Definimos tres centros y tres intensidades (coeficientes)
centros = [-2, 0, 1.5]
pesos = [0.8, 1.2, 0.5]

plt.figure(figsize=(10, 6))

# Dibujamos cada solución fundamental individual
u_total = np.zeros_like(x)
for y, c in zip(centros, pesos):
    u_i = c * K(x, t, y)
    u_total += u_i
    plt.plot(x, u_i, '--', alpha=0.6, label=f'Centrada en y={y} (peso {c})')

# Dibujamos la combinación lineal (la suma)
plt.plot(x, u_total, 'k-', lw=2, label='Combinación Lineal (Suma)')

plt.title('Superposición de Soluciones Fundamentales', fontsize=14)
plt.xlabel('Posición (x)')
plt.ylabel('Temperatura (u)')
plt.legend()
plt.grid(True, alpha=0.3)
plt.show()