<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
		<id>https://mat.caminos.upm.es/w/index.php?action=history&amp;feed=atom&amp;title=Ecuaci%C3%B3n_del_Calor_L%C3%81J</id>
		<title>Ecuación del Calor LÁJ - Historial de revisiones</title>
		<link rel="self" type="application/atom+xml" href="https://mat.caminos.upm.es/w/index.php?action=history&amp;feed=atom&amp;title=Ecuaci%C3%B3n_del_Calor_L%C3%81J"/>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_Calor_L%C3%81J&amp;action=history"/>
		<updated>2026-04-23T08:15:56Z</updated>
		<subtitle>Historial de revisiones para esta página en el wiki</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_Calor_L%C3%81J&amp;diff=104434&amp;oldid=prev</id>
		<title>Álvaro Moreno en 06:43 8 abr 2026</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_Calor_L%C3%81J&amp;diff=104434&amp;oldid=prev"/>
				<updated>2026-04-08T06:43:13Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='es'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revisión del 06:43 8 abr 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l5&quot; &gt;Línea 5:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 5:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Juan Pérez Guerra }}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Juan Pérez Guerra }}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;br /&gt;
&lt;b&gt;Deprecated&lt;/b&gt;:  The each() function is deprecated. This message will be suppressed on further calls in &lt;b&gt;/home/mat/public_html/w/includes/diff/DairikiDiff.php&lt;/b&gt; on line &lt;b&gt;434&lt;/b&gt;&lt;br /&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Archivo:Ecuación del calor LÁJ.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;jpeg&lt;/del&gt;||800px]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Archivo:Ecuación del calor LÁJ.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;png&lt;/ins&gt;||800px]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Medio:Ecuación del calor LÁJ.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;png &lt;/del&gt;| PDF del póster]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Medio:Ecuación del calor LÁJ.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;pdf&lt;/ins&gt;| PDF del póster]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Álvaro Moreno</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_Calor_L%C3%81J&amp;diff=104433&amp;oldid=prev</id>
		<title>Álvaro Moreno en 06:41 8 abr 2026</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_Calor_L%C3%81J&amp;diff=104433&amp;oldid=prev"/>
				<updated>2026-04-08T06:41:05Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='es'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revisión del 06:41 8 abr 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l6&quot; &gt;Línea 6:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 6:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Archivo:Ecuación del calor LÁJ.jpeg||800px]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Archivo:Ecuación del calor LÁJ.jpeg||800px]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Medio:Ecuación del calor LÁJ.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;pdf &lt;/del&gt;| PDF del póster]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Medio:Ecuación del calor LÁJ.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;png &lt;/ins&gt;| PDF del póster]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Álvaro Moreno</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_Calor_L%C3%81J&amp;diff=104430&amp;oldid=prev</id>
		<title>Álvaro Moreno: Página creada con «{{ TrabajoED | Ecuación del calor. Grupo LÁJ| EDP|2025-26 | Luis García Suárez  Álvaro Moreno Cisneros  Juan Pérez Guerra...»</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_Calor_L%C3%81J&amp;diff=104430&amp;oldid=prev"/>
				<updated>2026-04-08T06:35:43Z</updated>
		
		<summary type="html">&lt;p&gt;Página creada con «{{ TrabajoED | Ecuación del calor. Grupo LÁJ| &lt;a href=&quot;/wiki/Categor%C3%ADa:EDP&quot; title=&quot;Categoría:EDP&quot;&gt;EDP&lt;/a&gt;|&lt;a href=&quot;/wiki/Categor%C3%ADa:EDP25/26&quot; title=&quot;Categoría:EDP25/26&quot;&gt;2025-26&lt;/a&gt; | Luis García Suárez  Álvaro Moreno Cisneros  Juan Pérez Guerra...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{ TrabajoED | Ecuación del calor. Grupo LÁJ| [[:Categoría:EDP|EDP]]|[[:Categoría:EDP25/26|2025-26]] | Luis García Suárez&lt;br /&gt;
&lt;br /&gt;
Álvaro Moreno Cisneros&lt;br /&gt;
&lt;br /&gt;
Juan Pérez Guerra }}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ecuación del calor LÁJ.jpeg||800px]]&lt;br /&gt;
[[Medio:Ecuación del calor LÁJ.pdf | PDF del póster]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Abajo se puede ver el código que se ha utilizado para conseguir las gráficas. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
&lt;br /&gt;
import numpy as np&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
from scipy.integrate import trapezoid&lt;br /&gt;
from matplotlib import cm&lt;br /&gt;
&lt;br /&gt;
# Ecuación del calor acotada-----------------------------------------------------------------------&lt;br /&gt;
def Eca_Acotada(L,alpha,n_terms,f):&lt;br /&gt;
&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Aproxima la solución de la ecuación del calor u_t -alpha * u_xx = 0, con &lt;br /&gt;
    condición inicial f(x) y condiciones frontera dirichlet homogéneas&lt;br /&gt;
&lt;br /&gt;
    Inputs: &lt;br /&gt;
        L: longitud de la barra&lt;br /&gt;
        alpha: constante&lt;br /&gt;
        n_terms: número de términos para la serie de Fourier&lt;br /&gt;
        f: condición inicial&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    # 1. Preparar la malla con T en el eje &amp;quot;X&amp;quot; y X en el eje &amp;quot;Y&amp;quot;&lt;br /&gt;
    t_plot = np.linspace(0, 0.1, 100)&lt;br /&gt;
    x_plot = np.linspace(0, L, 100)&lt;br /&gt;
    T, X = np.meshgrid(t_plot, x_plot)&lt;br /&gt;
&lt;br /&gt;
    # 2. Cálculo de coeficientes a_n con la fórmula del trapecio&lt;br /&gt;
    x_fine = np.linspace(0, L, 1000)&lt;br /&gt;
    y_init = f(x_fine)&lt;br /&gt;
    a = np.zeros(n_terms + 1)&lt;br /&gt;
    for n in range(1, n_terms + 1):&lt;br /&gt;
        integrando = y_init * np.sin(n * np.pi * x_fine / L)&lt;br /&gt;
        a[n] = (2/L) * trapezoid(integrando, x=x_fine)&lt;br /&gt;
&lt;br /&gt;
    # 3. Calcular la solución U(T, X)&lt;br /&gt;
    U = np.zeros_like(T)&lt;br /&gt;
    for n in range(1, n_terms + 1):&lt;br /&gt;
        term_exp = np.exp(-alpha * (n * np.pi / L)**2 * T)&lt;br /&gt;
        term_sin = np.sin(n * np.pi * X / L)&lt;br /&gt;
        U += a[n] * term_exp * term_sin&lt;br /&gt;
&lt;br /&gt;
    # 4. Graficar&lt;br /&gt;
    fig = plt.figure(figsize=(12, 8))&lt;br /&gt;
    ax = fig.add_subplot(111, projection='3d')&lt;br /&gt;
&lt;br /&gt;
    # Ahora graficamos T en el primer eje y X en el segundo&lt;br /&gt;
    surf = ax.plot_surface(T, X, U, cmap=cm.inferno, linewidth=0, antialiased=True)&lt;br /&gt;
&lt;br /&gt;
    ax.set_xlabel('Tiempo (t)')&lt;br /&gt;
    ax.set_ylabel('Posición (x)')&lt;br /&gt;
    ax.set_zlabel('Temperatura (u)')&lt;br /&gt;
    ax.set_title('Visualización: Tiempo vs Posición')&lt;br /&gt;
    fig.colorbar(surf, shrink=0.5, aspect=5)&lt;br /&gt;
&lt;br /&gt;
    ax.view_init(elev=30, azim=-120)&lt;br /&gt;
&lt;br /&gt;
    plt.show()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Parámetros &lt;br /&gt;
L = 1.0        &lt;br /&gt;
alpha = 1.0    &lt;br /&gt;
n_terms = 50   &lt;br /&gt;
&lt;br /&gt;
# Dato inicial&lt;br /&gt;
def f(x):&lt;br /&gt;
    return np.where((x &amp;gt;= 0.3) &amp;amp; (x &amp;lt;= 0.7), 10.0, 0.0)&lt;br /&gt;
# def f(x):&lt;br /&gt;
#     return 1.0 - 2.0 * np.abs(0.5 - x)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# LLamamos a la función&lt;br /&gt;
Eca_Acotada(L,alpha,n_terms,f)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Ecuación del calor no acotada-----------------------------------------------------------------------&lt;br /&gt;
# Visualizar como la solución fundamental tiende a la delta de Dirac------------------------&lt;br /&gt;
# Parámetros&lt;br /&gt;
alpha = 1.0  # Difusividad térmica&lt;br /&gt;
&lt;br /&gt;
# Definición de la solución fundamental&lt;br /&gt;
def solucion_fundamental(x, t, alpha):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Calcula el valor de la solución fundamental en (x, t).&lt;br /&gt;
    Representa la distribución de calor partiendo de una masa puntual en x=0.&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    # Evitamos división por cero si t=0&lt;br /&gt;
    if t &amp;lt;= 0:&lt;br /&gt;
        return np.zeros_like(x)&lt;br /&gt;
    &lt;br /&gt;
    coeficiente = 1.0 / np.sqrt(4 * np.pi * alpha * t)&lt;br /&gt;
    exponente = - (x**2) / (4 * alpha * t)&lt;br /&gt;
    return coeficiente * np.exp(exponente)&lt;br /&gt;
&lt;br /&gt;
# Configuración de la visualización&lt;br /&gt;
x = np.linspace(-2, 2, 1000)&lt;br /&gt;
# Tiempos que se acercan a cero para ver la Delta de Dirac&lt;br /&gt;
tiempos = [0.1, 0.05, 0.01, 0.005, 0.001] &lt;br /&gt;
&lt;br /&gt;
plt.figure(figsize=(10, 6))&lt;br /&gt;
&lt;br /&gt;
for t in tiempos:&lt;br /&gt;
    u = solucion_fundamental(x, t, alpha)&lt;br /&gt;
    plt.plot(x, u, label=f't = {t}')&lt;br /&gt;
&lt;br /&gt;
plt.title('Convergencia de la Solución Fundamental a la Delta de Dirac')&lt;br /&gt;
plt.xlabel('Posición (x)')&lt;br /&gt;
plt.ylabel('Temperatura (u)')&lt;br /&gt;
plt.legend()&lt;br /&gt;
plt.grid(True, linestyle=':')&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Visualizar la solución fundamental en 3D----------------&lt;br /&gt;
# Parámetros&lt;br /&gt;
alpha = 1.0&lt;br /&gt;
&lt;br /&gt;
# 1. Crear malla de puntos (T en el primer eje, X en el segundo)&lt;br /&gt;
t_plot = np.linspace(0.005, 0.1, 100)&lt;br /&gt;
x_plot = np.linspace(-2, 2, 100)&lt;br /&gt;
T, X = np.meshgrid(t_plot, x_plot) # Invertimos el orden para el intercambio&lt;br /&gt;
&lt;br /&gt;
# 2. Calcular la solución fundamental&lt;br /&gt;
U = (1.0 / np.sqrt(4 * np.pi * alpha * T)) * np.exp(-(X**2) / (4 * alpha * T))&lt;br /&gt;
&lt;br /&gt;
# 3. Graficar&lt;br /&gt;
fig = plt.figure(figsize=(12, 8))&lt;br /&gt;
ax = fig.add_subplot(111, projection='3d')&lt;br /&gt;
&lt;br /&gt;
# Graficamos T en el eje X del gráfico, X en el eje Y&lt;br /&gt;
surf = ax.plot_surface(T, X, U, cmap=cm.viridis, linewidth=0, antialiased=True)&lt;br /&gt;
&lt;br /&gt;
# Etiquetas corregidas&lt;br /&gt;
ax.set_xlabel('Tiempo (t)')&lt;br /&gt;
ax.set_ylabel('Posición (x)')&lt;br /&gt;
ax.set_zlabel('Temperatura (u)')&lt;br /&gt;
ax.set_title('Núcleo de Calor: Evolución del Pico (t -&amp;gt; 0)')&lt;br /&gt;
&lt;br /&gt;
fig.colorbar(surf, shrink=0.5, aspect=5)&lt;br /&gt;
&lt;br /&gt;
ax.view_init(elev=30, azim=-120)&lt;br /&gt;
&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Visualizar solución de la ecuación del calor no acotada----------------&lt;br /&gt;
&lt;br /&gt;
# 1. Definición del núcleo y dato inicial&lt;br /&gt;
def kernel(x, t, alpha=1.0):&lt;br /&gt;
    return (1.0 / np.sqrt(4 * np.pi * alpha * t)) * np.exp(-(x**2) / (4 * alpha * t))&lt;br /&gt;
&lt;br /&gt;
def u0(y):&lt;br /&gt;
    # Dato inicial&lt;br /&gt;
    return np.where((y &amp;gt;= 0) &amp;amp; (y &amp;lt;= 1), 1.0, 0.0)&lt;br /&gt;
&lt;br /&gt;
# 2. Configuración de la malla&lt;br /&gt;
t_range = np.linspace(0.001, 1, 50)  # Eje T&lt;br /&gt;
x_range = np.linspace(-2, 3, 60)      # Eje X&lt;br /&gt;
T, X = np.meshgrid(t_range, x_range)&lt;br /&gt;
&lt;br /&gt;
# Espacio de integración para la convolución (eje y)&lt;br /&gt;
y_int = np.linspace(-4, 5, 500)&lt;br /&gt;
u_initial_values = u0(y_int)&lt;br /&gt;
&lt;br /&gt;
# 3. Cálculo de la superficie U(T, X)&lt;br /&gt;
U = np.zeros_like(X)&lt;br /&gt;
&lt;br /&gt;
for i in range(len(x_range)):&lt;br /&gt;
    for j in range(len(t_range)):&lt;br /&gt;
        curr_x = X[i, j]&lt;br /&gt;
        curr_t = T[i, j]&lt;br /&gt;
        # Realizamos la convolución numérica para cada punto (x, t)&lt;br /&gt;
        integrando = kernel(curr_x - y_int, curr_t) * u_initial_values&lt;br /&gt;
        U[i, j] = trapezoid(integrando, x=y_int)&lt;br /&gt;
&lt;br /&gt;
# 4. Graficar en 3D&lt;br /&gt;
fig = plt.figure(figsize=(12, 8))&lt;br /&gt;
ax = fig.add_subplot(111, projection='3d')&lt;br /&gt;
&lt;br /&gt;
# Graficamos con Tiempo en el primer eje y Posición en el segundo&lt;br /&gt;
surf = ax.plot_surface(T, X, U, cmap=cm.plasma, linewidth=0, antialiased=True)&lt;br /&gt;
&lt;br /&gt;
ax.set_xlabel('Tiempo (t)')&lt;br /&gt;
ax.set_ylabel('Posición (x)')&lt;br /&gt;
ax.set_zlabel('Temperatura (u)')&lt;br /&gt;
ax.set_title('Solución por Convolución: Disipación de un bloque de calor')&lt;br /&gt;
&lt;br /&gt;
fig.colorbar(surf, shrink=0.5, aspect=5)&lt;br /&gt;
ax.view_init(elev=30, azim=-130)&lt;br /&gt;
&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
#Ver como el máximo va disminuyendo a lo largo del tiempo&lt;br /&gt;
maximos = [np.max(U[:, j]) for j in range(len(t_range))]&lt;br /&gt;
&lt;br /&gt;
plt.figure(figsize=(8, 4))&lt;br /&gt;
plt.plot(t_range, maximos, color='red', linewidth=2)&lt;br /&gt;
plt.axhline(y=1.0, color='black', linestyle='--', label='Máximo Inicial (t=0)')&lt;br /&gt;
plt.title('Validación del Principio del Máximo')&lt;br /&gt;
plt.xlabel('Tiempo (t)')&lt;br /&gt;
plt.ylabel('Temperatura Máxima alcanzada')&lt;br /&gt;
plt.legend()&lt;br /&gt;
plt.grid(True)&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP25/26]]&lt;/div&gt;</summary>
		<author><name>Álvaro Moreno</name></author>	</entry>

	</feed>