<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
		<id>https://mat.caminos.upm.es/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Marcos+Cabellos</id>
		<title>MateWiki - Contribuciones del usuario [es]</title>
		<link rel="self" type="application/atom+xml" href="https://mat.caminos.upm.es/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Marcos+Cabellos"/>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/wiki/Especial:Contribuciones/Marcos_Cabellos"/>
		<updated>2026-04-30T02:11:13Z</updated>
		<subtitle>Contribuciones del usuario</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=85114</id>
		<title>Ecuación del calor (ADMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=85114"/>
				<updated>2025-03-19T17:24:12Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: /* Análisis de los errores */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor (Grupo ADMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | &lt;br /&gt;
*Ángel De Lucas Miranda, &lt;br /&gt;
*Daniel Rodríguez Calderón, &lt;br /&gt;
*Marcos Cabellos Hernández, &lt;br /&gt;
*Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
El desarrollo de la ecuación del calor se atribuye principalmente al matemático y físico francés Joseph Fourier, quien en 1822 publicó su obra ''Théorie analytique de la chaleur''. En este trabajo formuló una ecuación diferencial en derivadas parciales que describe la propagación del calor por difusión en un medio continuo. En esta ocasión, profundicemos en dos aspectos de este modelo.&lt;br /&gt;
&lt;br /&gt;
Desde un punto de vista físico, estas ecuaciones permiten la modelización de fenómenos como el calentamiento de materiales o la difusión de solutos en fluidos estacionarios. Sin embargo, la influencia de la física es más profunda: de hecho, el coeficiente de difusión lleva su nombre por la interpretación física de su acción en el sistema. ¿Cuál es este efecto, y por qué se lo denota de esta forma?&lt;br /&gt;
&lt;br /&gt;
Planteemos también el paso entre problemas de dominio acotado y los de no acotado. ¿Podemos aproximar las soluciones del sistema no acotado mediante las del acotado? Y de ser así, ¿qué condiciones de frontera en una dimensión funcionan mejor?&lt;br /&gt;
&lt;br /&gt;
=Solución acotada vs Solución no acotada=&lt;br /&gt;
Demos por conocidos el uso de separación de variables para resolver problemas de autofunciones en caso acotado y el manejo de la solución fundamental junto con la convolución para el sistema no acotado. Para comparar todas las soluciones correspondientes, consideremos sistema &amp;lt;math&amp;gt; 1-&amp;lt;/math&amp;gt;dimensional, con una gaussiana &amp;lt;math&amp;gt; e^{-x^2} &amp;lt;/math&amp;gt; como condición inicial. Justificamos físicamente como el uso de un láser para calentar un punto de una tira fina de metal. Considerando que los fotones puedan desviarse como una distribución normal por el teorema central del límite, es un montaje experimental factible y regular.  ¿Y qué condiciones de frontera?&lt;br /&gt;
&lt;br /&gt;
Si consideramos de Dirichlet, a una tira de longitud &amp;lt;math&amp;gt; 2a &amp;lt;/math&amp;gt; le colocaremos en los extremos un material que se mantenga siempre a la misma temperatura, pongamos que a una temperatura nula. El sistema resulta&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad  &amp;amp;\forall t &amp;gt; 0, x\in [-a,a],\\ &lt;br /&gt;
u(-a,t) = u(a,t) = 0 \quad  &amp;amp;\forall t &amp;gt; 0, \\ &lt;br /&gt;
u(x,0) = e^{-x^2} \quad  &amp;amp;\forall x\in [-a,a].&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La solución al resolver el problema de autofunciones viene dada por&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
u(x,t) = \sum_{n=1}^\infty A_{n} \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right) e^{-\dfrac{\pi^2}{a^2}\left(n - \frac{1}{2}\right)^2 t},&lt;br /&gt;
\quad \text{ donde } \quad&lt;br /&gt;
A_n = \frac{\int_{-a}^{a} u(x,0) \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}{\int_{-a}^{a} \cos^2\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Consideremos ahora condiciones de frontera Neumann, con un flujo nulo que físicamente viene de poner extremos aislantes. Para cierto &amp;lt;math&amp;gt; b &amp;gt; 0,&amp;lt;/math&amp;gt; y no necesariamente igual que con &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Consideraremos la ecuación del calor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad  &amp;amp;\forall t &amp;gt; 0 , x\in [-b,b],\\ &lt;br /&gt;
u_x(-b,t) = u_x(b,t) = 0 \quad  &amp;amp;\forall t &amp;gt; 0, \\ &lt;br /&gt;
u(x,0) = e^{-x^2} \quad &amp;amp;\forall x\in[-b,b].&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De nuevo podemos resolver el sistema, por ser homogéneo, mediante separación de variables, obteniendo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
u(x,t) = \sum_{m=0}^\infty B_{m} cos\left(\frac{m\pi}{b} x\right) e^{-\dfrac{m^2\pi^2}{b^2} t},\quad \text{ donde } \quad&lt;br /&gt;
B_m = \frac{\int_{-b}^{b} u(x,0) \cos\left(\frac{m\pi}{b} x\right)dx}{\int_{-b}^{b} \cos^2\left(\frac{m\pi}{b}x\right)dx}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un último detalle antes de proceder a los errores es la obtención simbólica de la solución no acotada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad &amp;amp;\forall t&amp;gt;0, x\in \mathbb{R},\\  &lt;br /&gt;
u(x,0) = e^{-x^2} \quad &amp;amp;\forall x\in \mathbb{R}&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
\quad&lt;br /&gt;
\Longrightarrow&lt;br /&gt;
\quad&lt;br /&gt;
u(x,t) = \frac{1}{\sqrt{4\pi t}}e^{\frac{-x^2}{4t}} * e^{-x^2} = \frac{e^{\frac{-x^2}{4t+1}}}{\sqrt{4t+1}}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Queremos comprobar cuán bien aproximan las soluciones del caso acotado Dirichlet y Neumann a la obtenida por la solución fundamental. Para ello, escojamos un tiempo máximo &amp;lt;math&amp;gt;t_{max} &amp;lt;/math&amp;gt; hasta el cuál tomaremos el error en norma &amp;lt;math&amp;gt; L^{\infty} &amp;lt;/math&amp;gt;. Queremos estudiar:&lt;br /&gt;
&lt;br /&gt;
* El efecto de aumentar el rango de definición con &amp;lt;math&amp;gt; a,b &amp;lt;/math&amp;gt;.&lt;br /&gt;
* El efecto de aumentar el número de términos en las series de los sistemas acotados.&lt;br /&gt;
&lt;br /&gt;
=== Análisis de los errores ===&lt;br /&gt;
[[Archivo:GrupoADMR Calor Errores1.jpg|750px|thumb|right| Representación gráfica de las soluciones del problema acotado (&amp;lt;math&amp;gt;a = b = 20&amp;lt;/math&amp;gt;) y no acotado truncando las series de Fourier en su término &amp;lt;math&amp;gt;100&amp;lt;/math&amp;gt;, para un tiempo máximo de &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;; y de sus errores. Nótese el orden de magnitud de los errores -pequeño-, los picos generados por los errores numéricos dados por la fórmula del trapecio y la suavidad en la frontera dada por las condiciones en esta.]]&lt;br /&gt;
&lt;br /&gt;
Consideramos los parámetros, donde &amp;lt;math&amp;gt; n &amp;lt;/math&amp;gt; es el término de la serie de Fourier donde truncamos:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;math&amp;gt; a = b = 20, &amp;lt;/math&amp;gt;&lt;br /&gt;
*&amp;lt;math&amp;gt; t_{max} = 1, &amp;lt;/math&amp;gt;&lt;br /&gt;
*&amp;lt;math&amp;gt; n = 100. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con &amp;lt;math&amp;gt; t_{max} &amp;lt;/math&amp;gt; fijo podemos observar que al aumentar &amp;lt;math&amp;gt;a, b&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; el error entre las soluciones acotadas y no acotada disminuye. Nótese que se estanca a partir de cierto &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;. De hecho, el error llega a aumentar a partir de ciertos &amp;lt;math&amp;gt; a,b &amp;lt;/math&amp;gt; si truncamos demasiado pronto o demasiado tarde por la aproximación del trapecio para particiones del espacio demasiado bastas -no observado por pericia en código final-.&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
| [[Archivo:GrupoADMR Calor Errores MaxD.jpeg|550px|thumb|upright|Con &amp;lt;math&amp;gt;t_{max}=1&amp;lt;/math&amp;gt;, vamos obteniendo errores máximos en escala logarítmica con diferentes longitudes y truncamientos entre la solución del problema no acotado y el acotado Dirichlet. Los errores son bastante pequeños si se toman suficientes términos de la serie y una discretización espacial adecuada (en otro caso, aunque no esté representado en esta versión final, los errores divergen).]]&lt;br /&gt;
| [[Archivo:GrupoADMR Calor Errores MaxNe.jpeg|550px|thumb|upright|Análogo a la figura adyacente. Nótese que ambas son buenas aproximaciones con suficiente longitud y términos de la serie.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Al ampliar el tiempo con la &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; y fijada &amp;lt;math&amp;gt;a=b=15&amp;lt;/math&amp;gt;, al hacer más grande &amp;lt;math&amp;gt;t_{max}&amp;lt;/math&amp;gt; los errores máximos no aumentan. En cambio, si tomamos el máximo error para diferentes tiempos vemos con suficiente precisión que no hay diferencia pero que para truncamientos precoces Neumann tiene ligeramente menor error.&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
| [[Archivo:GrupoADMR Calor Errores9.jpg|550px|thumb|upright|Con dominio fijo, el error en escala logarítmica entre solución no acotada y sistema Dirichlet decae incluso con el paso del tiempo. Esto encaja con que el estado estacionario de Dirichlet será la constante de temperatura nula, al igual que la convolución con la solución fundamental.]]&lt;br /&gt;
| [[Archivo:GrupoADMR Calor Errores NoNe.jpeg|550px|thumb|upright|Con condiciones análogas en frontera Neumann, el resultado es igualmente excelente para aproximar el caso no acotado. Aunque en el caso Neumann la solución estacionaria no sea nula, sino un reparto equitativo del calor inicial, cuando el rango es suficientemente amplio, la aproximación será adecuada.]] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
| [[Archivo:GrupoADMR Calor Errores DNe.jpeg|550px|thumb|upright|Podemos ver además que ambos sistemas se asemejan cada vez más, por lo que ambas aproximaciones son igualmente útiles para el caso no acotado.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Coeficiente de difusión=&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Fundamental.gif|500px|thumb|right|Solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. La representación gráfica parte del tiempo inicial &amp;lt;math/&amp;gt; 0.01, &amp;lt;math/&amp;gt; esperando una delta de Dirac en el instante inicial. Nótese que en este tiempo, a mayor coeficiente de difusión más se ha difundido el calor en el sistema, lo que se nota especialmente en el valor máximo observado y su disminución cuanto más crece el coeficiente.]]&lt;br /&gt;
&lt;br /&gt;
Interpretemos el valor de &amp;lt;math/&amp;gt; D &amp;lt;math/&amp;gt; aprovechando el montaje físico anterior. Numéricamente vemos que cuanto mayor es este coeficiente más rápido se difunde el calor, evidenciado en la caída de la solución en tiempos cada vez más cortos.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Convoluciones_teorica.gif|500px|thumb|right|Soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión.]]&lt;br /&gt;
&lt;br /&gt;
Tanto las soluciones del caso unidimensional no acotado como las del acotado  -que pueden reformularse considerando &amp;lt;math/&amp;gt; D &amp;lt;math/&amp;gt; en su exponencial, o aproximando por la sección anterior-  podemos ver que un mayor coeficiente &amp;lt;math/&amp;gt; D &amp;lt;math/&amp;gt; acelera el decaimiento de la exponencial por lo que tendrá un efecto similar, justificándose su nombre.&lt;br /&gt;
&lt;br /&gt;
= Códigos =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión&lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,2,3,4,5,6,7,8,9,10];&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Fundamental.gif';&lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for i = 1:length(DD)&lt;br /&gt;
    D = DD(i);&lt;br /&gt;
&lt;br /&gt;
    % Función fundamental de la ecuación del calor&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -1:0.01:1;         % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
    [X, T] = meshgrid(xx, tt); % Malla de coordenadas&lt;br /&gt;
    PHI_D = phi_D(X, T);   % Evaluación de la función&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    surf(X, T, PHI_D);&lt;br /&gt;
    shading flat&lt;br /&gt;
    shading interp&lt;br /&gt;
    colormap('jet')&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)$', 'Interpreter', 'latex');&lt;br /&gt;
    title(['Solución fundamental de la ecuación del calor, cuando D=', num2str(D)])&lt;br /&gt;
    axis([-1, 1, 0, 1, 0, 3])&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if i == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión&lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,10,20,30,40,50,60,70,80,90,100];&lt;br /&gt;
&lt;br /&gt;
% Función gaussiana&lt;br /&gt;
gaus = @(x) (exp(-x.^2));&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Convoluciones_teorica.gif'; &lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for h = 1:length(DD)&lt;br /&gt;
    D = DD(h);&lt;br /&gt;
&lt;br /&gt;
    % Funciones fundamentales y convolución&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
    convo = @(x,t) (exp(-x.^2./(4*D.*t+1))/sqrt(4*D.*t+1));&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -10:0.1:10;        % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
&lt;br /&gt;
    % Inicialización de la matriz de convolución&lt;br /&gt;
    conv = zeros(length(xx), length(tt));&lt;br /&gt;
&lt;br /&gt;
    % Cálculo de la convolución&lt;br /&gt;
    for j = 1:length(tt) &lt;br /&gt;
        auxt = tt(j);&lt;br /&gt;
        for i = 1:length(xx)&lt;br /&gt;
            auxx = xx(i);&lt;br /&gt;
            val_conv(i,j) = convo(auxx, auxt);&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    hold on;&lt;br /&gt;
    view(3);&lt;br /&gt;
    surf(xx, tt, val_conv.');&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)*N(x)$', 'Interpreter', 'latex');&lt;br /&gt;
    shading flat;&lt;br /&gt;
    shading interp;&lt;br /&gt;
    colormap('jet');&lt;br /&gt;
    title(['Soluciones en dominio no acotado, cuando D=', num2str(D)]);&lt;br /&gt;
    axis([-10, 10, 0, 1, 0, 1]);&lt;br /&gt;
    hold off;&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if h == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de los errores entre las soluciones &lt;br /&gt;
&lt;br /&gt;
function [Diff12,Difft1,Difft2] = errores2(n_max, a, b,t_max)&lt;br /&gt;
&lt;br /&gt;
% Función como condición inicial: una función Gaussiana&lt;br /&gt;
gaus = @(x) (exp(-x.^2));&lt;br /&gt;
u0 = @(x) exp(-x.^2);  &lt;br /&gt;
D = 1;  % Coeficiente de difusión&lt;br /&gt;
&lt;br /&gt;
% Funciones fundamentales y convolución para el modelo de difusión&lt;br /&gt;
phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);  &lt;br /&gt;
convo = @(x,t) (exp(-x.^2./(4*D.*t+1))/sqrt(4*D.*t+1));  &lt;br /&gt;
&lt;br /&gt;
% Definición de la malla (espacio y tiempo)&lt;br /&gt;
xx = -a:0.01:a;  &lt;br /&gt;
tt = 10^(-2):0.01:t_max;  &lt;br /&gt;
[X, T] = meshgrid(xx, tt);  &lt;br /&gt;
&lt;br /&gt;
% Inicialización de la matriz de convolución&lt;br /&gt;
conv = zeros(length(xx), length(tt));  &lt;br /&gt;
&lt;br /&gt;
% Cálculo de la convolución&lt;br /&gt;
for j = 1:length(tt)  &lt;br /&gt;
    auxt = tt(j);  &lt;br /&gt;
    for i = 1:length(xx)  &lt;br /&gt;
        auxx = xx(i);  &lt;br /&gt;
        val_conv(j,i) = convo(auxx, auxt);  &lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Inicialización de la matriz de resultados para la solución Dirichlet&lt;br /&gt;
res_dir = zeros(length(xx), length(tt)); &lt;br /&gt;
&lt;br /&gt;
% Cálculo de la solución directa&lt;br /&gt;
for n=1:n_max  &lt;br /&gt;
    A(n) = trapz(xx, u0(xx) .* cos((pi/a)*(n - 1/2) * xx)) /...&lt;br /&gt;
        trapz(xx, cos((pi/a)*(n - 1/2) * xx).^2);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Evaluación de la solución directa en el dominio espacio-temporal&lt;br /&gt;
for j = 1:length(tt)  &lt;br /&gt;
    auxt = tt(j);  &lt;br /&gt;
    for i = 1:length(xx) &lt;br /&gt;
        auxx = xx(i);  &lt;br /&gt;
        u = 0;  &lt;br /&gt;
&lt;br /&gt;
        % Sumar los términos de la serie de Fourier&lt;br /&gt;
        for n=1:n_max&lt;br /&gt;
            u = u + A(n) .* cos((pi/a)*(n - 1/2) * auxx) .*...&lt;br /&gt;
                exp(-((pi^2 / a^2) * (n - 1/2)^2) .* auxt);  &lt;br /&gt;
        end&lt;br /&gt;
        res_dir(i,j) = u;  &lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Inicialización de la matriz de resultados para la solución en frontera Neumann&lt;br /&gt;
res_neu = zeros(length(xx), length(tt));&lt;br /&gt;
&lt;br /&gt;
% Cálculo de la solución en frontera Neumann&lt;br /&gt;
for n=1:n_max  &lt;br /&gt;
    B(n) = trapz(xx, u0(xx) .* cos((n*pi/b) * xx)) /...&lt;br /&gt;
        trapz(xx, cos((n*pi/b) * xx).^2);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Evaluación de la solución en frontera Neumann en el dominio espacio-temporal&lt;br /&gt;
for j = 1:length(tt)  &lt;br /&gt;
    auxt = tt(j);  &lt;br /&gt;
    for i = 1:length(xx)  &lt;br /&gt;
        auxx = xx(i); &lt;br /&gt;
        u = trapz(xx, u0(xx))./(2.*b);  &lt;br /&gt;
&lt;br /&gt;
        % Sumar los términos de la serie de Fourier&lt;br /&gt;
        for n=1:n_max&lt;br /&gt;
            u = u + B(n) .* cos((n*pi/b) * auxx) .* exp(-((n^2 * pi^2 / b^2)) .* auxt);  &lt;br /&gt;
        end&lt;br /&gt;
        res_neu(i,j) = u;  &lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Transponer los resultados para compararlos con la convolución&lt;br /&gt;
U1 = res_dir.'; &lt;br /&gt;
U2 = res_neu.';  &lt;br /&gt;
&lt;br /&gt;
% Calcular las diferencias entre las soluciones y la convolución&lt;br /&gt;
Diff12 = abs(U1 - U2);  &lt;br /&gt;
Difft1 = abs(val_conv - U1);  &lt;br /&gt;
Difft2 = abs(val_conv - U2);  &lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de las soluciones de la ecuación del calor unidimensional junto con la comparación de sus errores&lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Función como condicion inicial&lt;br /&gt;
% Se define la función inicial gausiana y la función u0 que se utilizarán más adelante para los cálculos.&lt;br /&gt;
gaus = @(x) (exp(-x.^2));&lt;br /&gt;
u0 = @(x) exp(-x.^2);&lt;br /&gt;
D = 1;&lt;br /&gt;
&lt;br /&gt;
% Funciones fundamentales y convolución&lt;br /&gt;
% Se definen las funciones que describen la solución fundamental de la ecuación y la convolución utilizada.&lt;br /&gt;
phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
convo = @(x,t) (exp(-x.^2./(4*D.*t+1))/sqrt(4*D.*t+1));&lt;br /&gt;
&lt;br /&gt;
% Definición de la malla&lt;br /&gt;
% Se definen los parámetros de la malla para las variables espaciales (xx) y temporales (tt), y se crea la malla 2D.&lt;br /&gt;
a = 100;&lt;br /&gt;
b = 100;&lt;br /&gt;
tmax = 1;&lt;br /&gt;
n_max = 1000;&lt;br /&gt;
&lt;br /&gt;
xx = linspace(-a, a, 1000);&lt;br /&gt;
tt = linspace(10^(-2), tmax, 1000);&lt;br /&gt;
[X, T] = meshgrid(xx, tt);&lt;br /&gt;
&lt;br /&gt;
% Inicialización de la matriz de convolución&lt;br /&gt;
% Se crea una matriz vacía para almacenar los valores de la convolución.&lt;br /&gt;
conv = zeros(length(xx), length(tt));&lt;br /&gt;
&lt;br /&gt;
% Cálculo de la convolución&lt;br /&gt;
% Se calcula la convolución para cada punto en la malla de la variable temporal tt y espacial xx.&lt;br /&gt;
for j = 1:length(tt)&lt;br /&gt;
    auxt = tt(j);&lt;br /&gt;
    for i = 1:length(xx)&lt;br /&gt;
        auxx = xx(i);&lt;br /&gt;
        val_conv(i,j) = convo(auxx, auxt);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Resolución de la ecuación con condiciones de frontera Dirichlet&lt;br /&gt;
% Se calculan los coeficientes A para la expansión en series de Fourier y se calcula la solución directa en cada paso temporal.&lt;br /&gt;
res_dir = zeros(length(xx), length(tt));&lt;br /&gt;
&lt;br /&gt;
for n=1:n_max&lt;br /&gt;
        A(n) = trapz(xx, u0(xx) .* cos((pi/a)*(n - 1/2) * xx)) /...&lt;br /&gt;
        trapz(xx, cos((pi/a)*(n - 1/2) * xx).^2);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
for j = 1:length(tt)&lt;br /&gt;
    auxt = tt(j);&lt;br /&gt;
&lt;br /&gt;
    for i = 1:length(xx)&lt;br /&gt;
        auxx = xx(i);&lt;br /&gt;
        u = 0;&lt;br /&gt;
&lt;br /&gt;
        for n=1:n_max&lt;br /&gt;
            u = u + A(n) .* cos((pi/a)*(n - 1/2) * auxx) .*...&lt;br /&gt;
        exp(-((pi^2 / a^2) * (n - 1/2)^2) .* auxt);&lt;br /&gt;
&lt;br /&gt;
        end&lt;br /&gt;
        res_dir(j,i) = u;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Resolución de la ecuación con condiciones de frontera Neumann&lt;br /&gt;
% Se calculan los coeficientes B para la expansión en series de Fourier con las condiciones de frontera Neumann y se calcula la solución en cada paso temporal.&lt;br /&gt;
res_neu = zeros(length(xx), length(tt));&lt;br /&gt;
&lt;br /&gt;
for n=1:n_max&lt;br /&gt;
        B(n) = trapz(xx, u0(xx) .* cos((n*pi/b) * xx)) /...&lt;br /&gt;
        trapz(xx, cos((n*pi/b) * xx).^2);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
for j = 1:length(tt)&lt;br /&gt;
    auxt = tt(j);&lt;br /&gt;
&lt;br /&gt;
    for i = 1:length(xx)&lt;br /&gt;
        auxx = xx(i);&lt;br /&gt;
        u = trapz(xx, u0(xx))./(2.*b);&lt;br /&gt;
&lt;br /&gt;
        for n=1:n_max&lt;br /&gt;
            u = u + B(n) .* cos((n*pi/b) * auxx) .* exp(-((n^2 * pi^2 / b^2)) .* auxt);&lt;br /&gt;
&lt;br /&gt;
        end&lt;br /&gt;
        res_neu(j,i) = u;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Comparación entre las soluciones obtenidas&lt;br /&gt;
% Se calcula la diferencia entre las soluciones directa y Neumann, así como entre las soluciones y la convolución.&lt;br /&gt;
U1 = res_dir;  &lt;br /&gt;
U2 = res_neu;  &lt;br /&gt;
&lt;br /&gt;
Diff12 = abs(U1 - U2);  &lt;br /&gt;
Difft1 = abs(val_conv.' - U1);  &lt;br /&gt;
Difft2 = abs(val_conv.' - U2);  &lt;br /&gt;
&lt;br /&gt;
% Visualización de los resultados&lt;br /&gt;
% Se muestran las superficies 3D de las soluciones y sus diferencias en gráficos para comparar los resultados obtenidos.&lt;br /&gt;
figure(1);&lt;br /&gt;
&lt;br /&gt;
subplot(2,4,2);&lt;br /&gt;
view(3);&lt;br /&gt;
surf(X, T, U1);&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('t'); &lt;br /&gt;
zlabel('$u_1(x,t)$', 'Interpreter', 'latex');&lt;br /&gt;
shading flat;&lt;br /&gt;
shading interp;&lt;br /&gt;
colormap(gca,'jet');&lt;br /&gt;
axis([-a,a,0,tmax,0,1])&lt;br /&gt;
title('$u_1(x,t)$', 'Interpreter', 'latex');&lt;br /&gt;
&lt;br /&gt;
subplot(2,4,3);&lt;br /&gt;
view(3);&lt;br /&gt;
surf(X, T, U2);&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('t');&lt;br /&gt;
zlabel('$u_2(x,t)$', 'Interpreter', 'latex');&lt;br /&gt;
shading flat;&lt;br /&gt;
shading interp;&lt;br /&gt;
colormap(gca, 'jet');&lt;br /&gt;
axis([-b,b,0,tmax,0,1])&lt;br /&gt;
title('$u_2(x,t)$', 'Interpreter', 'latex');&lt;br /&gt;
&lt;br /&gt;
subplot(2,4,4);&lt;br /&gt;
view(3);&lt;br /&gt;
surf(X, T, Diff12);&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('t');&lt;br /&gt;
zlabel('$|u_1(x,t)-u_2(x,t)|$', 'Interpreter', 'latex');&lt;br /&gt;
shading flat;&lt;br /&gt;
shading interp;&lt;br /&gt;
colormap(gca, 'hot');&lt;br /&gt;
title('$|u_1(x,t)-u_2(x,t)|$', 'Interpreter', 'latex');&lt;br /&gt;
&lt;br /&gt;
subplot(2,4,5)&lt;br /&gt;
view(3);&lt;br /&gt;
surf(X, T, val_conv.');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('t');&lt;br /&gt;
zlabel('$\Phi_D(x,t)*N(x)$', 'Interpreter', 'latex');&lt;br /&gt;
shading flat;&lt;br /&gt;
shading interp;&lt;br /&gt;
colormap(gca, 'jet');&lt;br /&gt;
axis([-a,a,0,tmax,0,1])&lt;br /&gt;
title('$\Phi_D(x,t)*N(x)$', 'Interpreter', 'latex');&lt;br /&gt;
&lt;br /&gt;
subplot(2,4,6);&lt;br /&gt;
view(3);&lt;br /&gt;
surf(X, T, Difft1);&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('t');&lt;br /&gt;
zlabel('$|\Phi_D(x,t)*N(x)-u_1(x,t)|$', 'Interpreter', 'latex');&lt;br /&gt;
shading flat;&lt;br /&gt;
shading interp;&lt;br /&gt;
colormap(gca, 'hot');&lt;br /&gt;
title('$|\Phi_D(x,t)*N(x)-u_1(x,t)|$', 'Interpreter', 'latex');&lt;br /&gt;
&lt;br /&gt;
subplot(2,4,7);&lt;br /&gt;
view(3);&lt;br /&gt;
surf(X, T, Difft2);&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('t');&lt;br /&gt;
zlabel('$|\Phi_D(x,t)*N(x)-u_2(x,t)|$', 'Interpreter', 'latex');&lt;br /&gt;
shading flat;&lt;br /&gt;
shading interp;&lt;br /&gt;
colormap(gca, 'hot');&lt;br /&gt;
title('$|\Phi_D(x,t)*N(x)-u_2(x,t)|$', 'Interpreter', 'latex');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Referencias =&lt;br /&gt;
&lt;br /&gt;
* Sandro Salsa, Gianmaria Verzini. Partial Differential Equations in Action From Modelling to Theory ([https://link.springer.com/book/10.1007/978-3-031-21853-8 [1&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:GrupoADMR_Calor_Errores9.jpg&amp;diff=85113</id>
		<title>Archivo:GrupoADMR Calor Errores9.jpg</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:GrupoADMR_Calor_Errores9.jpg&amp;diff=85113"/>
				<updated>2025-03-19T17:23:35Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84949</id>
		<title>Ecuación del calor (ADMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84949"/>
				<updated>2025-03-18T23:08:34Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: /* Coeficiente de difusión */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor (Grupo ADMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | &lt;br /&gt;
*Ángel De Lucas Miranda, &lt;br /&gt;
*Daniel Rodríguez Calderón, &lt;br /&gt;
*Marcos Cabellos Hernández, &lt;br /&gt;
*Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
El desarrollo de la ecuación del calor se atribuye principalmente al matemático y físico francés Joseph Fourier, quien en 1822 publicó su obra ''Théorie analytique de la chaleur''. En este trabajo formuló una ecuación diferencial en derivadas parciales que describe la propagación del calor por difusión en un medio continuo. En esta ocasión, profundicemos en dos aspectos de este modelo.&lt;br /&gt;
&lt;br /&gt;
Desde un punto de vista físico, estas ecuaciones permiten la modelización de fenómenos como el calentamiento de materiales o la difusión de solutos en fluidos estacionarios. Sin embargo, la influencia de la física es más profunda: de hecho, el coeficiente de difusión lleva su nombre por la interpretación física de su acción en el sistema. ¿Cuál es este efecto, y por qué se lo denota de esta forma?&lt;br /&gt;
&lt;br /&gt;
Planteemos también el paso entre problemas de dominio acotado y los de no acotado. ¿Podemos aproximar las soluciones del sistema no acotado mediante las del acotado? Y de ser así, ¿qué condiciones de frontera en una dimensión funcionan mejor?&lt;br /&gt;
&lt;br /&gt;
=Solución acotada vs Solución no acotada=&lt;br /&gt;
Demos por conocidos el uso de separación de variables para resolver problemas de autofunciones en caso acotado y el manejo de la solución fundamental junto con la convolución para el sistema no acotado. Para comparar todas las soluciones correspondientes, consideremos sistema &amp;lt;math&amp;gt; 1-&amp;lt;/math&amp;gt;dimensional, con una gaussiana &amp;lt;math&amp;gt; e^{-x^2} &amp;lt;/math&amp;gt; como condición inicial. Justificamos físicamente como el uso de un láser para calentar un punto de una tira fina de metal. Considerando que los fotones puedan desviarse como una distribución normal por el teorema central del límite, es un montaje experimental factible y regular.  ¿Y qué condiciones de frontera?&lt;br /&gt;
&lt;br /&gt;
Si consideramos de Dirichlet, a una tira de longitud &amp;lt;math&amp;gt; 2a &amp;lt;/math&amp;gt; le colocaremos en los extremos un material que se mantenga siempre a la misma temperatura, pongamos que a una temperatura nula. El sistema resulta&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad  &amp;amp;\forall t &amp;gt; 0, x\in [-a,a],\\ &lt;br /&gt;
u(-a,t) = u(a,t) = 0 \quad  &amp;amp;\forall t &amp;gt; 0, \\ &lt;br /&gt;
u(x,0) = e^{-x^2} \quad  &amp;amp;\forall x\in [-a,a].&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La solución al resolver el problema de autofunciones viene dada por&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
u(x,t) = \sum_{n=1}^\infty A_{n} \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right) e^{-\dfrac{\pi^2}{a^2}\left(n - \frac{1}{2}\right)^2 t},&lt;br /&gt;
\quad \text{ donde } \quad&lt;br /&gt;
A_n = \frac{\int_{-a}^{a} u(x,0) \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}{\int_{-a}^{a} \cos^2\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Consideremos ahora condiciones de frontera Neumann, con un flujo nulo que físicamente viene de poner extremos aislantes. Para cierto &amp;lt;math&amp;gt; b &amp;gt; 0,&amp;lt;/math&amp;gt; y no necesariamente igual que con &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Consideraremos la ecuación del calor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad  &amp;amp;\forall t &amp;gt; 0 , x\in [-b,b],\\ &lt;br /&gt;
u_x(-b,t) = u_x(b,t) = 0 \quad  &amp;amp;\forall t &amp;gt; 0, \\ &lt;br /&gt;
u(x,0) = e^{-x^2} \quad &amp;amp;\forall x\in[-b,b].&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De nuevo podemos resolver el sistema, por ser homogéneo, mediante separación de variables, obteniendo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
u(x,t) = \sum_{m=0}^\infty B_{m} cos\left(\frac{m\pi}{b} x\right) e^{-\dfrac{m^2\pi^2}{b^2} t},\quad \text{ donde } \quad&lt;br /&gt;
B_m = \frac{\int_{-b}^{b} u(x,0) \cos\left(\frac{m\pi}{b} x\right)dx}{\int_{-b}^{b} \cos^2\left(\frac{m\pi}{b}x\right)dx}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un último detalle antes de proceder a los errores es la obtención simbólica de la solución no acotada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad &amp;amp;\forall t&amp;gt;0, x\in \mathbb{R},\\  &lt;br /&gt;
u(x,0) = e^{-x^2} \quad &amp;amp;\forall x\in \mathbb{R}&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
\quad&lt;br /&gt;
\Longrightarrow&lt;br /&gt;
\quad&lt;br /&gt;
u(x,t) = \frac{1}{\sqrt{4\pi t}}e^{\frac{-x^2}{4t}} * e^{-x^2} = \frac{e^{\frac{-x^2}{4t+1}}}{\sqrt{4t+1}}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Queremos comprobar cuán bien aproximan las soluciones del caso acotado Dirichlet y Neumann a la obtenida por la solución fundamental. Para ello, escojamos un tiempo máximo &amp;lt;math&amp;gt;t_{max} &amp;lt;/math&amp;gt; hasta el cuál tomaremos el error en norma &amp;lt;math&amp;gt; L^{\infty} &amp;lt;/math&amp;gt;. Queremos estudiar:&lt;br /&gt;
&lt;br /&gt;
* El efecto de aumentar el rango de definición con &amp;lt;math&amp;gt; a,b &amp;lt;/math&amp;gt;.&lt;br /&gt;
* El efecto de aumentar el número de términos en las series de los sistemas acotados.&lt;br /&gt;
&lt;br /&gt;
=== Análisis de los errores ===&lt;br /&gt;
[[Archivo:GrupoADMR Calor Errores1.jpg|550px|thumb|right| Representación gráfica de las soluciones del problema acotado (&amp;lt;math&amp;gt;a = b = 20&amp;lt;/math&amp;gt;) y no acotado truncando las series de Fourier en su término &amp;lt;math&amp;gt;100&amp;lt;/math&amp;gt;, para un tiempo máximo de &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;; y de sus errores. Nótese el orden de magnitud de los errores -pequeño-, los picos generados por los errores numéricos dados por la fórmula del trapecio y la suavidad en la frontera dada por las condiciones en esta.]]&lt;br /&gt;
&lt;br /&gt;
Consideramos los parámetros, donde &amp;lt;math&amp;gt; n &amp;lt;/math&amp;gt; es el término de la serie de Fourier donde truncamos:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;math&amp;gt; a = b = 20, &amp;lt;/math&amp;gt;&lt;br /&gt;
*&amp;lt;math&amp;gt; t_{max} = 1, &amp;lt;/math&amp;gt;&lt;br /&gt;
*&amp;lt;math&amp;gt; n = 100. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con &amp;lt;math&amp;gt; t_{max} &amp;lt;/math&amp;gt; fijo podemos observar que al aumentar &amp;lt;math&amp;gt;a, b&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; el error entre las soluciones acotadas y no acotada disminuye. Nótese que se estanca a partir de cierto &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;. De hecho, el error llega a aumentar a partir de ciertos &amp;lt;math&amp;gt; a,b &amp;lt;/math&amp;gt; si truncamos demasiado pronto o demasiado tarde por la aproximación del trapecio para particiones del espacio demasiado bastas -no observado por pericia en código final-.&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
| [[Archivo:GrupoADMR Calor Errores MaxD.jpeg|250px|thumb|upright|Con &amp;lt;math&amp;gt;t_{max}=1&amp;lt;/math&amp;gt;, vamos obteniendo errores máximos en escala logarítmica con diferentes longitudes y truncamientos entre la solución del problema no acotado y el acotado Dirichlet. Los errores son bastante pequeños si se toman suficientes términos de la serie y una discretización espacial adecuada (en otro caso, aunque no esté representado en esta versión final, los errores divergen)]]&lt;br /&gt;
| [[Archivo:GrupoADMR Calor Errores MaxNe.jpeg|250px|thumb|upright|Análogo a la figura adyacente. Nótese que ambas son buenas aproximaciones con suficiente longitud y términos de la serie.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Al ampliar el tiempo con la &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; y fijada &amp;lt;math&amp;gt;a=b=15&amp;lt;/math&amp;gt;, al hacer más grande &amp;lt;math&amp;gt;t_{max}&amp;lt;/math&amp;gt; los errores máximos no aumentan. En cambio, si tomamos el máximo error para diferentes tiempos vemos con suficiente precisión que no hay diferencia pero que para truncamientos precoces Neumann tiene ligeramente menor error.&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
| [[Archivo:GrupoADMR Calor Errores DNo.jpeg|250px|thumb|upright|Con dominio fijo, el error en escala logarítmica entre solución no acotada y sistema Dirichlet decae incluso con el paso del tiempo. Esto encaja con que el estado estacionario de Dirichlet será la constante de temperatura nula, al igual que la convolución con la solución fundamental.]]&lt;br /&gt;
| [[Archivo:GrupoADMR Calor Errores NoNe.jpeg|250px|thumb|upright|Con condiciones análogas en frontera Neumann, el resultado es igualmente excelente para aproximar el caso no acotado. Aunque en el caso Neumann la solución estacionaria no sea nula, sino un reparto equitativo del calor inicial, cuando el rango es suficientemente amplio, la aproximación será adecuada.]]&lt;br /&gt;
| [[Archivo:GrupoADMR Calor Errores DNe.jpeg|250px|thumb|upright|Podemos ver además que ambos sistemas se asemejan cada vez más, por lo que ambas aproximaciones son igualmente útiles para el caso no acotado.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Coeficiente de difusión=&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Fundamental.gif|300px|thumb|right|Solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. La representación gráfica parte del tiempo inicial &amp;lt;math/&amp;gt; 0.01, &amp;lt;math/&amp;gt; esperando una delta de Dirac en el instante inicial. Nótese que en este tiempo, a mayor coeficiente de difusión más se ha difundido el calor en el sistema, lo que se nota especialmente en el valor máximo observado y su disminución cuanto más crece el coeficiente.]]&lt;br /&gt;
&lt;br /&gt;
Vamos a interpretar como influye exactamente el coeficiente de difusión en la solución de la ecuación del calor. Imaginemos por un segundo que tenemos varias barras (cada una de un material diferente) y queremos estudiar como se difunde el calor a través de cada una de ellas. Usando Matlab podemos calcular y representar fácilmente la solución del problema para diferentes valores del coeficiente de difusión, que denotaremos por &amp;lt;math/&amp;gt; D &amp;lt;math/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
## Interpretemos el valor de &amp;lt;math/&amp;gt; D &amp;lt;math/&amp;gt; aprovechando el montaje físico anterior. Numéricamente vemos que cuanto mayor es este coeficiente más rápido se difunde el calor, evidenciado en la caída de la solución en tiempos cada vez más cortos.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Convoluciones_teorica.gif|500px|thumb|right|Soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión.]]&lt;br /&gt;
&lt;br /&gt;
Como se puede observar en la animación, fijado un tiempo, a medida que crece el valor del coeficiente de difusión el pico de la solución fundamental se va haciendo más cada vez más pequeño, es decir, a mayor coeficiente de difusión, menor es el tiempo que tarda en expandirse el calor. De hecho, podemos observar este hecho directamente de la expresión de la solución fundamental del calor. La solución de la ecuación del calor unidimensional en una barra de longitud \( L = 1 \), con coeficiente de difusión \( D \) y condición inicial dada por una función gaussiana \( f(x) = e^{-x^2} \), se expresa como una serie de Fourier:&lt;br /&gt;
&lt;br /&gt;
## En el caso unidimensional acotado con solución&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,t) = \sum_{n=1}^{\infty} A_n e^{-D (n\pi)^2 t} \sin(n\pi x),&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[Solución que depende de D]- [Viendo la solución del apartado 3 me estoy dando cuenta que también depende de la longitud de la barra, si estuviésemos trabajando con el problema acotado podríamos ver como afectan estos dos parámetros al tiempo de difusión]&lt;br /&gt;
&lt;br /&gt;
Tomando el límite de D tendiendo a &amp;lt;math/&amp;gt; \infty &amp;lt;math/&amp;gt; vemos que u(x,t) tiende a 0, fijado un t determinado. Por tanto, podemos concluir que la solución del calor alcanzará el estado estacionario antes si su coeficiente del calor es mayor.&lt;br /&gt;
&lt;br /&gt;
## Podemos ver que un mayor coeficiente &amp;lt;math/&amp;gt; D &amp;lt;math/&amp;gt; acelera el decaimiento de la exponencial por lo que tendrá un efecto similar justificando su nombre.&lt;br /&gt;
&lt;br /&gt;
= Códigos =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión&lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,2,3,4,5,6,7,8,9,10];&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Fundamental.gif';&lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for i = 1:length(DD)&lt;br /&gt;
    D = DD(i);&lt;br /&gt;
&lt;br /&gt;
    % Función fundamental de la ecuación del calor&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -1:0.01:1;         % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
    [X, T] = meshgrid(xx, tt); % Malla de coordenadas&lt;br /&gt;
    PHI_D = phi_D(X, T);   % Evaluación de la función&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    surf(X, T, PHI_D);&lt;br /&gt;
    shading flat&lt;br /&gt;
    shading interp&lt;br /&gt;
    colormap('jet')&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)$', 'Interpreter', 'latex');&lt;br /&gt;
    title(['Solución fundamental de la ecuación del calor, cuando D=', num2str(D)])&lt;br /&gt;
    axis([-1, 1, 0, 1, 0, 3])&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if i == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Convoluciones_teorica.gif|500px|thumb|right|Soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión&lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,10,20,30,40,50,60,70,80,90,100];&lt;br /&gt;
&lt;br /&gt;
% Función gaussiana&lt;br /&gt;
gaus = @(x) (exp(-x.^2));&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Convoluciones_teorica.gif'; &lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for h = 1:length(DD)&lt;br /&gt;
    D = DD(h);&lt;br /&gt;
&lt;br /&gt;
    % Funciones fundamentales y convolución&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
    convo = @(x,t) (exp(-x.^2./(4*D.*t+1))/sqrt(4*D.*t+1));&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -10:0.1:10;        % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
&lt;br /&gt;
    % Inicialización de la matriz de convolución&lt;br /&gt;
    conv = zeros(length(xx), length(tt));&lt;br /&gt;
&lt;br /&gt;
    % Cálculo de la convolución&lt;br /&gt;
    for j = 1:length(tt) &lt;br /&gt;
        auxt = tt(j);&lt;br /&gt;
        for i = 1:length(xx)&lt;br /&gt;
            auxx = xx(i);&lt;br /&gt;
            val_conv(i,j) = convo(auxx, auxt);&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    hold on;&lt;br /&gt;
    view(3);&lt;br /&gt;
    surf(xx, tt, val_conv.');&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)*N(x)$', 'Interpreter', 'latex');&lt;br /&gt;
    shading flat;&lt;br /&gt;
    shading interp;&lt;br /&gt;
    colormap('jet');&lt;br /&gt;
    title(['Soluciones en dominio no acotado, cuando D=', num2str(D)]);&lt;br /&gt;
    axis([-10, 10, 0, 1, 0, 1]);&lt;br /&gt;
    hold off;&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if h == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de los errores entre las soluciones &lt;br /&gt;
&lt;br /&gt;
function [Diff12,Difft1,Difft2] = errores2(n_max, a, b,t_max)&lt;br /&gt;
&lt;br /&gt;
% Función como condición inicial: una función Gaussiana&lt;br /&gt;
gaus = @(x) (exp(-x.^2));&lt;br /&gt;
u0 = @(x) exp(-x.^2);  &lt;br /&gt;
D = 1;  % Coeficiente de difusión&lt;br /&gt;
&lt;br /&gt;
% Funciones fundamentales y convolución para el modelo de difusión&lt;br /&gt;
phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);  &lt;br /&gt;
convo = @(x,t) (exp(-x.^2./(4*D.*t+1))/sqrt(4*D.*t+1));  &lt;br /&gt;
&lt;br /&gt;
% Definición de la malla (espacio y tiempo)&lt;br /&gt;
xx = -a:0.01:a;  &lt;br /&gt;
tt = 10^(-2):0.01:t_max;  &lt;br /&gt;
[X, T] = meshgrid(xx, tt);  &lt;br /&gt;
&lt;br /&gt;
% Inicialización de la matriz de convolución&lt;br /&gt;
conv = zeros(length(xx), length(tt));  &lt;br /&gt;
&lt;br /&gt;
% Cálculo de la convolución&lt;br /&gt;
for j = 1:length(tt)  &lt;br /&gt;
    auxt = tt(j);  &lt;br /&gt;
    for i = 1:length(xx)  &lt;br /&gt;
        auxx = xx(i);  &lt;br /&gt;
        val_conv(j,i) = convo(auxx, auxt);  &lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Inicialización de la matriz de resultados para la solución Dirichlet&lt;br /&gt;
res_dir = zeros(length(xx), length(tt)); &lt;br /&gt;
&lt;br /&gt;
% Cálculo de la solución directa&lt;br /&gt;
for n=1:n_max  &lt;br /&gt;
    A(n) = trapz(xx, u0(xx) .* cos((pi/a)*(n - 1/2) * xx)) /...&lt;br /&gt;
        trapz(xx, cos((pi/a)*(n - 1/2) * xx).^2);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Evaluación de la solución directa en el dominio espacio-temporal&lt;br /&gt;
for j = 1:length(tt)  &lt;br /&gt;
    auxt = tt(j);  &lt;br /&gt;
    for i = 1:length(xx) &lt;br /&gt;
        auxx = xx(i);  &lt;br /&gt;
        u = 0;  &lt;br /&gt;
&lt;br /&gt;
        % Sumar los términos de la serie de Fourier&lt;br /&gt;
        for n=1:n_max&lt;br /&gt;
            u = u + A(n) .* cos((pi/a)*(n - 1/2) * auxx) .*...&lt;br /&gt;
                exp(-((pi^2 / a^2) * (n - 1/2)^2) .* auxt);  &lt;br /&gt;
        end&lt;br /&gt;
        res_dir(i,j) = u;  &lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Inicialización de la matriz de resultados para la solución en frontera Neumann&lt;br /&gt;
res_neu = zeros(length(xx), length(tt));&lt;br /&gt;
&lt;br /&gt;
% Cálculo de la solución en frontera Neumann&lt;br /&gt;
for n=1:n_max  &lt;br /&gt;
    B(n) = trapz(xx, u0(xx) .* cos((n*pi/b) * xx)) /...&lt;br /&gt;
        trapz(xx, cos((n*pi/b) * xx).^2);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Evaluación de la solución en frontera Neumann en el dominio espacio-temporal&lt;br /&gt;
for j = 1:length(tt)  &lt;br /&gt;
    auxt = tt(j);  &lt;br /&gt;
    for i = 1:length(xx)  &lt;br /&gt;
        auxx = xx(i); &lt;br /&gt;
        u = trapz(xx, u0(xx))./(2.*b);  &lt;br /&gt;
&lt;br /&gt;
        % Sumar los términos de la serie de Fourier&lt;br /&gt;
        for n=1:n_max&lt;br /&gt;
            u = u + B(n) .* cos((n*pi/b) * auxx) .* exp(-((n^2 * pi^2 / b^2)) .* auxt);  &lt;br /&gt;
        end&lt;br /&gt;
        res_neu(i,j) = u;  &lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Transponer los resultados para compararlos con la convolución&lt;br /&gt;
U1 = res_dir.'; &lt;br /&gt;
U2 = res_neu.';  &lt;br /&gt;
&lt;br /&gt;
% Calcular las diferencias entre las soluciones y la convolución&lt;br /&gt;
Diff12 = abs(U1 - U2);  &lt;br /&gt;
Difft1 = abs(val_conv - U1);  &lt;br /&gt;
Difft2 = abs(val_conv - U2);  &lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de las soluciones de la ecuación del calor unidimensional junto con la comparación de sus errores&lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Función como condicion inicial&lt;br /&gt;
% Se define la función inicial gausiana y la función u0 que se utilizarán más adelante para los cálculos.&lt;br /&gt;
gaus = @(x) (exp(-x.^2));&lt;br /&gt;
u0 = @(x) exp(-x.^2);&lt;br /&gt;
D = 1;&lt;br /&gt;
&lt;br /&gt;
% Funciones fundamentales y convolución&lt;br /&gt;
% Se definen las funciones que describen la solución fundamental de la ecuación y la convolución utilizada.&lt;br /&gt;
phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
convo = @(x,t) (exp(-x.^2./(4*D.*t+1))/sqrt(4*D.*t+1));&lt;br /&gt;
&lt;br /&gt;
% Definición de la malla&lt;br /&gt;
% Se definen los parámetros de la malla para las variables espaciales (xx) y temporales (tt), y se crea la malla 2D.&lt;br /&gt;
a = 100;&lt;br /&gt;
b = 100;&lt;br /&gt;
tmax = 1;&lt;br /&gt;
n_max = 1000;&lt;br /&gt;
&lt;br /&gt;
xx = linspace(-a, a, 1000);&lt;br /&gt;
tt = linspace(10^(-2), tmax, 1000);&lt;br /&gt;
[X, T] = meshgrid(xx, tt);&lt;br /&gt;
&lt;br /&gt;
% Inicialización de la matriz de convolución&lt;br /&gt;
% Se crea una matriz vacía para almacenar los valores de la convolución.&lt;br /&gt;
conv = zeros(length(xx), length(tt));&lt;br /&gt;
&lt;br /&gt;
% Cálculo de la convolución&lt;br /&gt;
% Se calcula la convolución para cada punto en la malla de la variable temporal tt y espacial xx.&lt;br /&gt;
for j = 1:length(tt)&lt;br /&gt;
    auxt = tt(j);&lt;br /&gt;
    for i = 1:length(xx)&lt;br /&gt;
        auxx = xx(i);&lt;br /&gt;
        val_conv(i,j) = convo(auxx, auxt);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Resolución de la ecuación con condiciones de frontera Dirichlet&lt;br /&gt;
% Se calculan los coeficientes A para la expansión en series de Fourier y se calcula la solución directa en cada paso temporal.&lt;br /&gt;
res_dir = zeros(length(xx), length(tt));&lt;br /&gt;
&lt;br /&gt;
for n=1:n_max&lt;br /&gt;
        A(n) = trapz(xx, u0(xx) .* cos((pi/a)*(n - 1/2) * xx)) /...&lt;br /&gt;
        trapz(xx, cos((pi/a)*(n - 1/2) * xx).^2);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
for j = 1:length(tt)&lt;br /&gt;
    auxt = tt(j);&lt;br /&gt;
&lt;br /&gt;
    for i = 1:length(xx)&lt;br /&gt;
        auxx = xx(i);&lt;br /&gt;
        u = 0;&lt;br /&gt;
&lt;br /&gt;
        for n=1:n_max&lt;br /&gt;
            u = u + A(n) .* cos((pi/a)*(n - 1/2) * auxx) .*...&lt;br /&gt;
        exp(-((pi^2 / a^2) * (n - 1/2)^2) .* auxt);&lt;br /&gt;
&lt;br /&gt;
        end&lt;br /&gt;
        res_dir(j,i) = u;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Resolución de la ecuación con condiciones de frontera Neumann&lt;br /&gt;
% Se calculan los coeficientes B para la expansión en series de Fourier con las condiciones de frontera Neumann y se calcula la solución en cada paso temporal.&lt;br /&gt;
res_neu = zeros(length(xx), length(tt));&lt;br /&gt;
&lt;br /&gt;
for n=1:n_max&lt;br /&gt;
        B(n) = trapz(xx, u0(xx) .* cos((n*pi/b) * xx)) /...&lt;br /&gt;
        trapz(xx, cos((n*pi/b) * xx).^2);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
for j = 1:length(tt)&lt;br /&gt;
    auxt = tt(j);&lt;br /&gt;
&lt;br /&gt;
    for i = 1:length(xx)&lt;br /&gt;
        auxx = xx(i);&lt;br /&gt;
        u = trapz(xx, u0(xx))./(2.*b);&lt;br /&gt;
&lt;br /&gt;
        for n=1:n_max&lt;br /&gt;
            u = u + B(n) .* cos((n*pi/b) * auxx) .* exp(-((n^2 * pi^2 / b^2)) .* auxt);&lt;br /&gt;
&lt;br /&gt;
        end&lt;br /&gt;
        res_neu(j,i) = u;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Comparación entre las soluciones obtenidas&lt;br /&gt;
% Se calcula la diferencia entre las soluciones directa y Neumann, así como entre las soluciones y la convolución.&lt;br /&gt;
U1 = res_dir;  &lt;br /&gt;
U2 = res_neu;  &lt;br /&gt;
&lt;br /&gt;
Diff12 = abs(U1 - U2);  &lt;br /&gt;
Difft1 = abs(val_conv.' - U1);  &lt;br /&gt;
Difft2 = abs(val_conv.' - U2);  &lt;br /&gt;
&lt;br /&gt;
% Visualización de los resultados&lt;br /&gt;
% Se muestran las superficies 3D de las soluciones y sus diferencias en gráficos para comparar los resultados obtenidos.&lt;br /&gt;
figure(1);&lt;br /&gt;
&lt;br /&gt;
subplot(2,4,2);&lt;br /&gt;
view(3);&lt;br /&gt;
surf(X, T, U1);&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('t'); &lt;br /&gt;
zlabel('$u_1(x,t)$', 'Interpreter', 'latex');&lt;br /&gt;
shading flat;&lt;br /&gt;
shading interp;&lt;br /&gt;
colormap(gca,'jet');&lt;br /&gt;
axis([-a,a,0,tmax,0,1])&lt;br /&gt;
title('$u_1(x,t)$', 'Interpreter', 'latex');&lt;br /&gt;
&lt;br /&gt;
subplot(2,4,3);&lt;br /&gt;
view(3);&lt;br /&gt;
surf(X, T, U2);&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('t');&lt;br /&gt;
zlabel('$u_2(x,t)$', 'Interpreter', 'latex');&lt;br /&gt;
shading flat;&lt;br /&gt;
shading interp;&lt;br /&gt;
colormap(gca, 'jet');&lt;br /&gt;
axis([-b,b,0,tmax,0,1])&lt;br /&gt;
title('$u_2(x,t)$', 'Interpreter', 'latex');&lt;br /&gt;
&lt;br /&gt;
subplot(2,4,4);&lt;br /&gt;
view(3);&lt;br /&gt;
surf(X, T, Diff12);&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('t');&lt;br /&gt;
zlabel('$|u_1(x,t)-u_2(x,t)|$', 'Interpreter', 'latex');&lt;br /&gt;
shading flat;&lt;br /&gt;
shading interp;&lt;br /&gt;
colormap(gca, 'hot');&lt;br /&gt;
title('$|u_1(x,t)-u_2(x,t)|$', 'Interpreter', 'latex');&lt;br /&gt;
&lt;br /&gt;
subplot(2,4,5)&lt;br /&gt;
view(3);&lt;br /&gt;
surf(X, T, val_conv.');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('t');&lt;br /&gt;
zlabel('$\Phi_D(x,t)*N(x)$', 'Interpreter', 'latex');&lt;br /&gt;
shading flat;&lt;br /&gt;
shading interp;&lt;br /&gt;
colormap(gca, 'jet');&lt;br /&gt;
axis([-a,a,0,tmax,0,1])&lt;br /&gt;
title('$\Phi_D(x,t)*N(x)$', 'Interpreter', 'latex');&lt;br /&gt;
&lt;br /&gt;
subplot(2,4,6);&lt;br /&gt;
view(3);&lt;br /&gt;
surf(X, T, Difft1);&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('t');&lt;br /&gt;
zlabel('$|\Phi_D(x,t)*N(x)-u_1(x,t)|$', 'Interpreter', 'latex');&lt;br /&gt;
shading flat;&lt;br /&gt;
shading interp;&lt;br /&gt;
colormap(gca, 'hot');&lt;br /&gt;
title('$|\Phi_D(x,t)*N(x)-u_1(x,t)|$', 'Interpreter', 'latex');&lt;br /&gt;
&lt;br /&gt;
subplot(2,4,7);&lt;br /&gt;
view(3);&lt;br /&gt;
surf(X, T, Difft2);&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('t');&lt;br /&gt;
zlabel('$|\Phi_D(x,t)*N(x)-u_2(x,t)|$', 'Interpreter', 'latex');&lt;br /&gt;
shading flat;&lt;br /&gt;
shading interp;&lt;br /&gt;
colormap(gca, 'hot');&lt;br /&gt;
title('$|\Phi_D(x,t)*N(x)-u_2(x,t)|$', 'Interpreter', 'latex');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Referencias =&lt;br /&gt;
&lt;br /&gt;
* Sandro Salsa, Gianmaria Verzini. Partial Differential Equations in Action From Modelling to Theory ([https://link.springer.com/book/10.1007/978-3-031-21853-8 [1&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84947</id>
		<title>Ecuación del calor (ADMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84947"/>
				<updated>2025-03-18T23:06:55Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: /* Análisis de los errores */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor (Grupo ADMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | &lt;br /&gt;
*Ángel De Lucas Miranda, &lt;br /&gt;
*Daniel Rodríguez Calderón, &lt;br /&gt;
*Marcos Cabellos Hernández, &lt;br /&gt;
*Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
El desarrollo de la ecuación del calor se atribuye principalmente al matemático y físico francés Joseph Fourier, quien en 1822 publicó su obra ''Théorie analytique de la chaleur''. En este trabajo formuló una ecuación diferencial en derivadas parciales que describe la propagación del calor por difusión en un medio continuo. En esta ocasión, profundicemos en dos aspectos de este modelo.&lt;br /&gt;
&lt;br /&gt;
Desde un punto de vista físico, estas ecuaciones permiten la modelización de fenómenos como el calentamiento de materiales o la difusión de solutos en fluidos estacionarios. Sin embargo, la influencia de la física es más profunda: de hecho, el coeficiente de difusión lleva su nombre por la interpretación física de su acción en el sistema. ¿Cuál es este efecto, y por qué se lo denota de esta forma?&lt;br /&gt;
&lt;br /&gt;
Planteemos también el paso entre problemas de dominio acotado y los de no acotado. ¿Podemos aproximar las soluciones del sistema no acotado mediante las del acotado? Y de ser así, ¿qué condiciones de frontera en una dimensión funcionan mejor?&lt;br /&gt;
&lt;br /&gt;
=Solución acotada vs Solución no acotada=&lt;br /&gt;
Demos por conocidos el uso de separación de variables para resolver problemas de autofunciones en caso acotado y el manejo de la solución fundamental junto con la convolución para el sistema no acotado. Para comparar todas las soluciones correspondientes, consideremos sistema &amp;lt;math&amp;gt; 1-&amp;lt;/math&amp;gt;dimensional, con una gaussiana &amp;lt;math&amp;gt; e^{-x^2} &amp;lt;/math&amp;gt; como condición inicial. Justificamos físicamente como el uso de un láser para calentar un punto de una tira fina de metal. Considerando que los fotones puedan desviarse como una distribución normal por el teorema central del límite, es un montaje experimental factible y regular.  ¿Y qué condiciones de frontera?&lt;br /&gt;
&lt;br /&gt;
Si consideramos de Dirichlet, a una tira de longitud &amp;lt;math&amp;gt; 2a &amp;lt;/math&amp;gt; le colocaremos en los extremos un material que se mantenga siempre a la misma temperatura, pongamos que a una temperatura nula. El sistema resulta&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad  &amp;amp;\forall t &amp;gt; 0, x\in [-a,a],\\ &lt;br /&gt;
u(-a,t) = u(a,t) = 0 \quad  &amp;amp;\forall t &amp;gt; 0, \\ &lt;br /&gt;
u(x,0) = e^{-x^2} \quad  &amp;amp;\forall x\in [-a,a].&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La solución al resolver el problema de autofunciones viene dada por&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
u(x,t) = \sum_{n=1}^\infty A_{n} \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right) e^{-\dfrac{\pi^2}{a^2}\left(n - \frac{1}{2}\right)^2 t},&lt;br /&gt;
\quad \text{ donde } \quad&lt;br /&gt;
A_n = \frac{\int_{-a}^{a} u(x,0) \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}{\int_{-a}^{a} \cos^2\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Consideremos ahora condiciones de frontera Neumann, con un flujo nulo que físicamente viene de poner extremos aislantes. Para cierto &amp;lt;math&amp;gt; b &amp;gt; 0,&amp;lt;/math&amp;gt; y no necesariamente igual que con &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Consideraremos la ecuación del calor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad  &amp;amp;\forall t &amp;gt; 0 , x\in [-b,b],\\ &lt;br /&gt;
u_x(-b,t) = u_x(b,t) = 0 \quad  &amp;amp;\forall t &amp;gt; 0, \\ &lt;br /&gt;
u(x,0) = e^{-x^2} \quad &amp;amp;\forall x\in[-b,b].&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De nuevo podemos resolver el sistema, por ser homogéneo, mediante separación de variables, obteniendo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
u(x,t) = \sum_{m=0}^\infty B_{m} cos\left(\frac{m\pi}{b} x\right) e^{-\dfrac{m^2\pi^2}{b^2} t},\quad \text{ donde } \quad&lt;br /&gt;
B_m = \frac{\int_{-b}^{b} u(x,0) \cos\left(\frac{m\pi}{b} x\right)dx}{\int_{-b}^{b} \cos^2\left(\frac{m\pi}{b}x\right)dx}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un último detalle antes de proceder a los errores es la obtención simbólica de la solución no acotada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad &amp;amp;\forall t&amp;gt;0, x\in \mathbb{R},\\  &lt;br /&gt;
u(x,0) = e^{-x^2} \quad &amp;amp;\forall x\in \mathbb{R}&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
\quad&lt;br /&gt;
\Longrightarrow&lt;br /&gt;
\quad&lt;br /&gt;
u(x,t) = \frac{1}{\sqrt{4\pi t}}e^{\frac{-x^2}{4t}} * e^{-x^2} = \frac{e^{\frac{-x^2}{4t+1}}}{\sqrt{4t+1}}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Queremos comprobar cuán bien aproximan las soluciones del caso acotado Dirichlet y Neumann a la obtenida por la solución fundamental. Para ello, escojamos un tiempo máximo &amp;lt;math&amp;gt;t_{max} &amp;lt;/math&amp;gt; hasta el cuál tomaremos el error en norma &amp;lt;math&amp;gt; L^{\infty} &amp;lt;/math&amp;gt;. Queremos estudiar:&lt;br /&gt;
&lt;br /&gt;
* El efecto de aumentar el rango de definición con &amp;lt;math&amp;gt; a,b &amp;lt;/math&amp;gt;.&lt;br /&gt;
* El efecto de aumentar el número de términos en las series de los sistemas acotados.&lt;br /&gt;
&lt;br /&gt;
=== Análisis de los errores ===&lt;br /&gt;
[[Archivo:GrupoADMR Calor Errores1.jpg|550px|thumb|right| Representación gráfica de las soluciones del problema acotado (&amp;lt;math&amp;gt;a = b = 20&amp;lt;/math&amp;gt;) y no acotado truncando las series de Fourier en su término &amp;lt;math&amp;gt;100&amp;lt;/math&amp;gt;, para un tiempo máximo de &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;; y de sus errores. Nótese el orden de magnitud de los errores -pequeño-, los picos generados por los errores numéricos dados por la fórmula del trapecio y la suavidad en la frontera dada por las condiciones en esta.]]&lt;br /&gt;
&lt;br /&gt;
Consideramos los parámetros, donde &amp;lt;math&amp;gt; n &amp;lt;/math&amp;gt; es el término de la serie de Fourier donde truncamos:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;math&amp;gt; a = b = 20, &amp;lt;/math&amp;gt;&lt;br /&gt;
*&amp;lt;math&amp;gt; t_{max} = 1, &amp;lt;/math&amp;gt;&lt;br /&gt;
*&amp;lt;math&amp;gt; n = 100. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con &amp;lt;math&amp;gt; t_{max} &amp;lt;/math&amp;gt; fijo podemos observar que al aumentar &amp;lt;math&amp;gt;a, b&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; el error entre las soluciones acotadas y no acotada disminuye. Nótese que se estanca a partir de cierto &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;. De hecho, el error llega a aumentar a partir de ciertos &amp;lt;math&amp;gt; a,b &amp;lt;/math&amp;gt; si truncamos demasiado pronto o demasiado tarde por la aproximación del trapecio para particiones del espacio demasiado bastas -no observado por pericia en código final-.&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
| [[Archivo:GrupoADMR Calor Errores MaxD.jpeg|250px|thumb|upright|Con &amp;lt;math&amp;gt;t_{max}=1&amp;lt;/math&amp;gt;, vamos obteniendo errores máximos en escala logarítmica con diferentes longitudes y truncamientos entre la solución del problema no acotado y el acotado Dirichlet. Los errores son bastante pequeños si se toman suficientes términos de la serie y una discretización espacial adecuada (en otro caso, aunque no esté representado en esta versión final, los errores divergen)]]&lt;br /&gt;
| [[Archivo:GrupoADMR Calor Errores MaxNe.jpeg|250px|thumb|upright|Análogo a la figura adyacente. Nótese que ambas son buenas aproximaciones con suficiente longitud y términos de la serie.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Al ampliar el tiempo con la &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; y fijada &amp;lt;math&amp;gt;a=b=15&amp;lt;/math&amp;gt;, al hacer más grande &amp;lt;math&amp;gt;t_{max}&amp;lt;/math&amp;gt; los errores máximos no aumentan. En cambio, si tomamos el máximo error para diferentes tiempos vemos con suficiente precisión que no hay diferencia pero que para truncamientos precoces Neumann tiene ligeramente menor error.&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
| [[Archivo:GrupoADMR Calor Errores DNo.jpeg|250px|thumb|upright|Con dominio fijo, el error en escala logarítmica entre solución no acotada y sistema Dirichlet decae incluso con el paso del tiempo. Esto encaja con que el estado estacionario de Dirichlet será la constante de temperatura nula, al igual que la convolución con la solución fundamental.]]&lt;br /&gt;
| [[Archivo:GrupoADMR Calor Errores NoNe.jpeg|250px|thumb|upright|Con condiciones análogas en frontera Neumann, el resultado es igualmente excelente para aproximar el caso no acotado. Aunque en el caso Neumann la solución estacionaria no sea nula, sino un reparto equitativo del calor inicial, cuando el rango es suficientemente amplio, la aproximación será adecuada.]]&lt;br /&gt;
| [[Archivo:GrupoADMR Calor Errores DNe.jpeg|250px|thumb|upright|Podemos ver además que ambos sistemas se asemejan cada vez más, por lo que ambas aproximaciones son igualmente útiles para el caso no acotado.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Coeficiente de difusión=&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Fundamental.gif|300px|thumb|right|Solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. La representación gráfica parte del tiempo inicial &amp;lt;math/&amp;gt; 0.01, &amp;lt;math/&amp;gt; esperando una delta de Dirac en el instante inicial. Nótese que en este tiempo, a mayor coeficiente de difusión más se ha difundido el calor en el sistema, lo que se nota especialmente en el valor máximo observado y su disminución cuanto más crece el coeficiente.]]&lt;br /&gt;
&lt;br /&gt;
Vamos a interpretar como influye exactamente el coeficiente de difusión en la solución de la ecuación del calor. Imaginemos por un segundo que tenemos varias barras (cada una de un material diferente) y queremos estudiar como se difunde el calor a través de cada una de ellas. Usando Matlab podemos calcular y representar fácilmente la solución del problema para diferentes valores del coeficiente de difusión, que denotaremos por &amp;lt;math/&amp;gt; D &amp;lt;math/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
## Interpretemos el valor de &amp;lt;math/&amp;gt; D &amp;lt;math/&amp;gt; aprovechando el montaje físico anterior. Numéricamente vemos que cuanto mayor es este coeficiente más rápido se difunde el calor, evidenciado en la caída de la solución en tiempos cada vez más cortos.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Fundamental.gif|400px|thumb|right|Solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. La representación gráfica parte del tiempo inicial &amp;lt;math/&amp;gt; 0.01, &amp;lt;math/&amp;gt; esperando una delta de Dirac en el instante inicial. Nótese que en este tiempo, a mayor coeficiente de difusión más se ha difundido el calor en el sistema, lo que se nota especialmente en el valor máximo observado y su disminución cuanto más crece el coeficiente.]]&lt;br /&gt;
&lt;br /&gt;
Como se puede observar en la animación, fijado un tiempo, a medida que crece el valor del coeficiente de difusión el pico de la solución fundamental se va haciendo más cada vez más pequeño, es decir, a mayor coeficiente de difusión, menor es el tiempo que tarda en expandirse el calor. De hecho, podemos observar este hecho directamente de la expresión de la solución fundamental del calor. La solución de la ecuación del calor unidimensional en una barra de longitud \( L = 1 \), con coeficiente de difusión \( D \) y condición inicial dada por una función gaussiana \( f(x) = e^{-x^2} \), se expresa como una serie de Fourier:&lt;br /&gt;
&lt;br /&gt;
## En el caso unidimensional acotado con solución&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,t) = \sum_{n=1}^{\infty} A_n e^{-D (n\pi)^2 t} \sin(n\pi x),&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[Solución que depende de D]- [Viendo la solución del apartado 3 me estoy dando cuenta que también depende de la longitud de la barra, si estuviésemos trabajando con el problema acotado podríamos ver como afectan estos dos parámetros al tiempo de difusión]&lt;br /&gt;
&lt;br /&gt;
Tomando el límite de D tendiendo a &amp;lt;math/&amp;gt; \infty &amp;lt;math/&amp;gt; vemos que u(x,t) tiende a 0, fijado un t determinado. Por tanto, podemos concluir que la solución del calor alcanzará el estado estacionario antes si su coeficiente del calor es mayor.&lt;br /&gt;
&lt;br /&gt;
## Podemos ver que un mayor coeficiente &amp;lt;math/&amp;gt; D &amp;lt;math/&amp;gt; acelera el decaimiento de la exponencial por lo que tendrá un efecto similar justificando su nombre.&lt;br /&gt;
&lt;br /&gt;
= Códigos =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión&lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,2,3,4,5,6,7,8,9,10];&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Fundamental.gif';&lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for i = 1:length(DD)&lt;br /&gt;
    D = DD(i);&lt;br /&gt;
&lt;br /&gt;
    % Función fundamental de la ecuación del calor&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -1:0.01:1;         % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
    [X, T] = meshgrid(xx, tt); % Malla de coordenadas&lt;br /&gt;
    PHI_D = phi_D(X, T);   % Evaluación de la función&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    surf(X, T, PHI_D);&lt;br /&gt;
    shading flat&lt;br /&gt;
    shading interp&lt;br /&gt;
    colormap('jet')&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)$', 'Interpreter', 'latex');&lt;br /&gt;
    title(['Solución fundamental de la ecuación del calor, cuando D=', num2str(D)])&lt;br /&gt;
    axis([-1, 1, 0, 1, 0, 3])&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if i == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Convoluciones_teorica.gif|500px|thumb|right|Soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión&lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,10,20,30,40,50,60,70,80,90,100];&lt;br /&gt;
&lt;br /&gt;
% Función gaussiana&lt;br /&gt;
gaus = @(x) (exp(-x.^2));&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Convoluciones_teorica.gif'; &lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for h = 1:length(DD)&lt;br /&gt;
    D = DD(h);&lt;br /&gt;
&lt;br /&gt;
    % Funciones fundamentales y convolución&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
    convo = @(x,t) (exp(-x.^2./(4*D.*t+1))/sqrt(4*D.*t+1));&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -10:0.1:10;        % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
&lt;br /&gt;
    % Inicialización de la matriz de convolución&lt;br /&gt;
    conv = zeros(length(xx), length(tt));&lt;br /&gt;
&lt;br /&gt;
    % Cálculo de la convolución&lt;br /&gt;
    for j = 1:length(tt) &lt;br /&gt;
        auxt = tt(j);&lt;br /&gt;
        for i = 1:length(xx)&lt;br /&gt;
            auxx = xx(i);&lt;br /&gt;
            val_conv(i,j) = convo(auxx, auxt);&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    hold on;&lt;br /&gt;
    view(3);&lt;br /&gt;
    surf(xx, tt, val_conv.');&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)*N(x)$', 'Interpreter', 'latex');&lt;br /&gt;
    shading flat;&lt;br /&gt;
    shading interp;&lt;br /&gt;
    colormap('jet');&lt;br /&gt;
    title(['Soluciones en dominio no acotado, cuando D=', num2str(D)]);&lt;br /&gt;
    axis([-10, 10, 0, 1, 0, 1]);&lt;br /&gt;
    hold off;&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if h == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de los errores entre las soluciones &lt;br /&gt;
&lt;br /&gt;
function [Diff12,Difft1,Difft2] = errores2(n_max, a, b,t_max)&lt;br /&gt;
&lt;br /&gt;
% Función como condición inicial: una función Gaussiana&lt;br /&gt;
gaus = @(x) (exp(-x.^2));&lt;br /&gt;
u0 = @(x) exp(-x.^2);  &lt;br /&gt;
D = 1;  % Coeficiente de difusión&lt;br /&gt;
&lt;br /&gt;
% Funciones fundamentales y convolución para el modelo de difusión&lt;br /&gt;
phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);  &lt;br /&gt;
convo = @(x,t) (exp(-x.^2./(4*D.*t+1))/sqrt(4*D.*t+1));  &lt;br /&gt;
&lt;br /&gt;
% Definición de la malla (espacio y tiempo)&lt;br /&gt;
xx = -a:0.01:a;  &lt;br /&gt;
tt = 10^(-2):0.01:t_max;  &lt;br /&gt;
[X, T] = meshgrid(xx, tt);  &lt;br /&gt;
&lt;br /&gt;
% Inicialización de la matriz de convolución&lt;br /&gt;
conv = zeros(length(xx), length(tt));  &lt;br /&gt;
&lt;br /&gt;
% Cálculo de la convolución&lt;br /&gt;
for j = 1:length(tt)  &lt;br /&gt;
    auxt = tt(j);  &lt;br /&gt;
    for i = 1:length(xx)  &lt;br /&gt;
        auxx = xx(i);  &lt;br /&gt;
        val_conv(j,i) = convo(auxx, auxt);  &lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Inicialización de la matriz de resultados para la solución Dirichlet&lt;br /&gt;
res_dir = zeros(length(xx), length(tt)); &lt;br /&gt;
&lt;br /&gt;
% Cálculo de la solución directa&lt;br /&gt;
for n=1:n_max  &lt;br /&gt;
    A(n) = trapz(xx, u0(xx) .* cos((pi/a)*(n - 1/2) * xx)) /...&lt;br /&gt;
        trapz(xx, cos((pi/a)*(n - 1/2) * xx).^2);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Evaluación de la solución directa en el dominio espacio-temporal&lt;br /&gt;
for j = 1:length(tt)  &lt;br /&gt;
    auxt = tt(j);  &lt;br /&gt;
    for i = 1:length(xx) &lt;br /&gt;
        auxx = xx(i);  &lt;br /&gt;
        u = 0;  &lt;br /&gt;
&lt;br /&gt;
        % Sumar los términos de la serie de Fourier&lt;br /&gt;
        for n=1:n_max&lt;br /&gt;
            u = u + A(n) .* cos((pi/a)*(n - 1/2) * auxx) .*...&lt;br /&gt;
                exp(-((pi^2 / a^2) * (n - 1/2)^2) .* auxt);  &lt;br /&gt;
        end&lt;br /&gt;
        res_dir(i,j) = u;  &lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Inicialización de la matriz de resultados para la solución en frontera Neumann&lt;br /&gt;
res_neu = zeros(length(xx), length(tt));&lt;br /&gt;
&lt;br /&gt;
% Cálculo de la solución en frontera Neumann&lt;br /&gt;
for n=1:n_max  &lt;br /&gt;
    B(n) = trapz(xx, u0(xx) .* cos((n*pi/b) * xx)) /...&lt;br /&gt;
        trapz(xx, cos((n*pi/b) * xx).^2);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Evaluación de la solución en frontera Neumann en el dominio espacio-temporal&lt;br /&gt;
for j = 1:length(tt)  &lt;br /&gt;
    auxt = tt(j);  &lt;br /&gt;
    for i = 1:length(xx)  &lt;br /&gt;
        auxx = xx(i); &lt;br /&gt;
        u = trapz(xx, u0(xx))./(2.*b);  &lt;br /&gt;
&lt;br /&gt;
        % Sumar los términos de la serie de Fourier&lt;br /&gt;
        for n=1:n_max&lt;br /&gt;
            u = u + B(n) .* cos((n*pi/b) * auxx) .* exp(-((n^2 * pi^2 / b^2)) .* auxt);  &lt;br /&gt;
        end&lt;br /&gt;
        res_neu(i,j) = u;  &lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Transponer los resultados para compararlos con la convolución&lt;br /&gt;
U1 = res_dir.'; &lt;br /&gt;
U2 = res_neu.';  &lt;br /&gt;
&lt;br /&gt;
% Calcular las diferencias entre las soluciones y la convolución&lt;br /&gt;
Diff12 = abs(U1 - U2);  &lt;br /&gt;
Difft1 = abs(val_conv - U1);  &lt;br /&gt;
Difft2 = abs(val_conv - U2);  &lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de las soluciones de la ecuación del calor unidimensional junto con la comparación de sus errores&lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Función como condicion inicial&lt;br /&gt;
% Se define la función inicial gausiana y la función u0 que se utilizarán más adelante para los cálculos.&lt;br /&gt;
gaus = @(x) (exp(-x.^2));&lt;br /&gt;
u0 = @(x) exp(-x.^2);&lt;br /&gt;
D = 1;&lt;br /&gt;
&lt;br /&gt;
% Funciones fundamentales y convolución&lt;br /&gt;
% Se definen las funciones que describen la solución fundamental de la ecuación y la convolución utilizada.&lt;br /&gt;
phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
convo = @(x,t) (exp(-x.^2./(4*D.*t+1))/sqrt(4*D.*t+1));&lt;br /&gt;
&lt;br /&gt;
% Definición de la malla&lt;br /&gt;
% Se definen los parámetros de la malla para las variables espaciales (xx) y temporales (tt), y se crea la malla 2D.&lt;br /&gt;
a = 100;&lt;br /&gt;
b = 100;&lt;br /&gt;
tmax = 1;&lt;br /&gt;
n_max = 1000;&lt;br /&gt;
&lt;br /&gt;
xx = linspace(-a, a, 1000);&lt;br /&gt;
tt = linspace(10^(-2), tmax, 1000);&lt;br /&gt;
[X, T] = meshgrid(xx, tt);&lt;br /&gt;
&lt;br /&gt;
% Inicialización de la matriz de convolución&lt;br /&gt;
% Se crea una matriz vacía para almacenar los valores de la convolución.&lt;br /&gt;
conv = zeros(length(xx), length(tt));&lt;br /&gt;
&lt;br /&gt;
% Cálculo de la convolución&lt;br /&gt;
% Se calcula la convolución para cada punto en la malla de la variable temporal tt y espacial xx.&lt;br /&gt;
for j = 1:length(tt)&lt;br /&gt;
    auxt = tt(j);&lt;br /&gt;
    for i = 1:length(xx)&lt;br /&gt;
        auxx = xx(i);&lt;br /&gt;
        val_conv(i,j) = convo(auxx, auxt);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Resolución de la ecuación con condiciones de frontera Dirichlet&lt;br /&gt;
% Se calculan los coeficientes A para la expansión en series de Fourier y se calcula la solución directa en cada paso temporal.&lt;br /&gt;
res_dir = zeros(length(xx), length(tt));&lt;br /&gt;
&lt;br /&gt;
for n=1:n_max&lt;br /&gt;
        A(n) = trapz(xx, u0(xx) .* cos((pi/a)*(n - 1/2) * xx)) /...&lt;br /&gt;
        trapz(xx, cos((pi/a)*(n - 1/2) * xx).^2);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
for j = 1:length(tt)&lt;br /&gt;
    auxt = tt(j);&lt;br /&gt;
&lt;br /&gt;
    for i = 1:length(xx)&lt;br /&gt;
        auxx = xx(i);&lt;br /&gt;
        u = 0;&lt;br /&gt;
&lt;br /&gt;
        for n=1:n_max&lt;br /&gt;
            u = u + A(n) .* cos((pi/a)*(n - 1/2) * auxx) .*...&lt;br /&gt;
        exp(-((pi^2 / a^2) * (n - 1/2)^2) .* auxt);&lt;br /&gt;
&lt;br /&gt;
        end&lt;br /&gt;
        res_dir(j,i) = u;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Resolución de la ecuación con condiciones de frontera Neumann&lt;br /&gt;
% Se calculan los coeficientes B para la expansión en series de Fourier con las condiciones de frontera Neumann y se calcula la solución en cada paso temporal.&lt;br /&gt;
res_neu = zeros(length(xx), length(tt));&lt;br /&gt;
&lt;br /&gt;
for n=1:n_max&lt;br /&gt;
        B(n) = trapz(xx, u0(xx) .* cos((n*pi/b) * xx)) /...&lt;br /&gt;
        trapz(xx, cos((n*pi/b) * xx).^2);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
for j = 1:length(tt)&lt;br /&gt;
    auxt = tt(j);&lt;br /&gt;
&lt;br /&gt;
    for i = 1:length(xx)&lt;br /&gt;
        auxx = xx(i);&lt;br /&gt;
        u = trapz(xx, u0(xx))./(2.*b);&lt;br /&gt;
&lt;br /&gt;
        for n=1:n_max&lt;br /&gt;
            u = u + B(n) .* cos((n*pi/b) * auxx) .* exp(-((n^2 * pi^2 / b^2)) .* auxt);&lt;br /&gt;
&lt;br /&gt;
        end&lt;br /&gt;
        res_neu(j,i) = u;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Comparación entre las soluciones obtenidas&lt;br /&gt;
% Se calcula la diferencia entre las soluciones directa y Neumann, así como entre las soluciones y la convolución.&lt;br /&gt;
U1 = res_dir;  &lt;br /&gt;
U2 = res_neu;  &lt;br /&gt;
&lt;br /&gt;
Diff12 = abs(U1 - U2);  &lt;br /&gt;
Difft1 = abs(val_conv.' - U1);  &lt;br /&gt;
Difft2 = abs(val_conv.' - U2);  &lt;br /&gt;
&lt;br /&gt;
% Visualización de los resultados&lt;br /&gt;
% Se muestran las superficies 3D de las soluciones y sus diferencias en gráficos para comparar los resultados obtenidos.&lt;br /&gt;
figure(1);&lt;br /&gt;
&lt;br /&gt;
subplot(2,4,2);&lt;br /&gt;
view(3);&lt;br /&gt;
surf(X, T, U1);&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('t'); &lt;br /&gt;
zlabel('$u_1(x,t)$', 'Interpreter', 'latex');&lt;br /&gt;
shading flat;&lt;br /&gt;
shading interp;&lt;br /&gt;
colormap(gca,'jet');&lt;br /&gt;
axis([-a,a,0,tmax,0,1])&lt;br /&gt;
title('$u_1(x,t)$', 'Interpreter', 'latex');&lt;br /&gt;
&lt;br /&gt;
subplot(2,4,3);&lt;br /&gt;
view(3);&lt;br /&gt;
surf(X, T, U2);&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('t');&lt;br /&gt;
zlabel('$u_2(x,t)$', 'Interpreter', 'latex');&lt;br /&gt;
shading flat;&lt;br /&gt;
shading interp;&lt;br /&gt;
colormap(gca, 'jet');&lt;br /&gt;
axis([-b,b,0,tmax,0,1])&lt;br /&gt;
title('$u_2(x,t)$', 'Interpreter', 'latex');&lt;br /&gt;
&lt;br /&gt;
subplot(2,4,4);&lt;br /&gt;
view(3);&lt;br /&gt;
surf(X, T, Diff12);&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('t');&lt;br /&gt;
zlabel('$|u_1(x,t)-u_2(x,t)|$', 'Interpreter', 'latex');&lt;br /&gt;
shading flat;&lt;br /&gt;
shading interp;&lt;br /&gt;
colormap(gca, 'hot');&lt;br /&gt;
title('$|u_1(x,t)-u_2(x,t)|$', 'Interpreter', 'latex');&lt;br /&gt;
&lt;br /&gt;
subplot(2,4,5)&lt;br /&gt;
view(3);&lt;br /&gt;
surf(X, T, val_conv.');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('t');&lt;br /&gt;
zlabel('$\Phi_D(x,t)*N(x)$', 'Interpreter', 'latex');&lt;br /&gt;
shading flat;&lt;br /&gt;
shading interp;&lt;br /&gt;
colormap(gca, 'jet');&lt;br /&gt;
axis([-a,a,0,tmax,0,1])&lt;br /&gt;
title('$\Phi_D(x,t)*N(x)$', 'Interpreter', 'latex');&lt;br /&gt;
&lt;br /&gt;
subplot(2,4,6);&lt;br /&gt;
view(3);&lt;br /&gt;
surf(X, T, Difft1);&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('t');&lt;br /&gt;
zlabel('$|\Phi_D(x,t)*N(x)-u_1(x,t)|$', 'Interpreter', 'latex');&lt;br /&gt;
shading flat;&lt;br /&gt;
shading interp;&lt;br /&gt;
colormap(gca, 'hot');&lt;br /&gt;
title('$|\Phi_D(x,t)*N(x)-u_1(x,t)|$', 'Interpreter', 'latex');&lt;br /&gt;
&lt;br /&gt;
subplot(2,4,7);&lt;br /&gt;
view(3);&lt;br /&gt;
surf(X, T, Difft2);&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('t');&lt;br /&gt;
zlabel('$|\Phi_D(x,t)*N(x)-u_2(x,t)|$', 'Interpreter', 'latex');&lt;br /&gt;
shading flat;&lt;br /&gt;
shading interp;&lt;br /&gt;
colormap(gca, 'hot');&lt;br /&gt;
title('$|\Phi_D(x,t)*N(x)-u_2(x,t)|$', 'Interpreter', 'latex');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Referencias =&lt;br /&gt;
&lt;br /&gt;
* Sandro Salsa, Gianmaria Verzini. Partial Differential Equations in Action From Modelling to Theory ([https://link.springer.com/book/10.1007/978-3-031-21853-8 [1&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84946</id>
		<title>Ecuación del calor (ADMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84946"/>
				<updated>2025-03-18T23:05:52Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: /* Análisis de los errores */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor (Grupo ADMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | &lt;br /&gt;
*Ángel De Lucas Miranda, &lt;br /&gt;
*Daniel Rodríguez Calderón, &lt;br /&gt;
*Marcos Cabellos Hernández, &lt;br /&gt;
*Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
El desarrollo de la ecuación del calor se atribuye principalmente al matemático y físico francés Joseph Fourier, quien en 1822 publicó su obra ''Théorie analytique de la chaleur''. En este trabajo formuló una ecuación diferencial en derivadas parciales que describe la propagación del calor por difusión en un medio continuo. En esta ocasión, profundicemos en dos aspectos de este modelo.&lt;br /&gt;
&lt;br /&gt;
Desde un punto de vista físico, estas ecuaciones permiten la modelización de fenómenos como el calentamiento de materiales o la difusión de solutos en fluidos estacionarios. Sin embargo, la influencia de la física es más profunda: de hecho, el coeficiente de difusión lleva su nombre por la interpretación física de su acción en el sistema. ¿Cuál es este efecto, y por qué se lo denota de esta forma?&lt;br /&gt;
&lt;br /&gt;
Planteemos también el paso entre problemas de dominio acotado y los de no acotado. ¿Podemos aproximar las soluciones del sistema no acotado mediante las del acotado? Y de ser así, ¿qué condiciones de frontera en una dimensión funcionan mejor?&lt;br /&gt;
&lt;br /&gt;
=Solución acotada vs Solución no acotada=&lt;br /&gt;
Demos por conocidos el uso de separación de variables para resolver problemas de autofunciones en caso acotado y el manejo de la solución fundamental junto con la convolución para el sistema no acotado. Para comparar todas las soluciones correspondientes, consideremos sistema &amp;lt;math&amp;gt; 1-&amp;lt;/math&amp;gt;dimensional, con una gaussiana &amp;lt;math&amp;gt; e^{-x^2} &amp;lt;/math&amp;gt; como condición inicial. Justificamos físicamente como el uso de un láser para calentar un punto de una tira fina de metal. Considerando que los fotones puedan desviarse como una distribución normal por el teorema central del límite, es un montaje experimental factible y regular.  ¿Y qué condiciones de frontera?&lt;br /&gt;
&lt;br /&gt;
Si consideramos de Dirichlet, a una tira de longitud &amp;lt;math&amp;gt; 2a &amp;lt;/math&amp;gt; le colocaremos en los extremos un material que se mantenga siempre a la misma temperatura, pongamos que a una temperatura nula. El sistema resulta&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad  &amp;amp;\forall t &amp;gt; 0, x\in [-a,a],\\ &lt;br /&gt;
u(-a,t) = u(a,t) = 0 \quad  &amp;amp;\forall t &amp;gt; 0, \\ &lt;br /&gt;
u(x,0) = e^{-x^2} \quad  &amp;amp;\forall x\in [-a,a].&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La solución al resolver el problema de autofunciones viene dada por&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
u(x,t) = \sum_{n=1}^\infty A_{n} \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right) e^{-\dfrac{\pi^2}{a^2}\left(n - \frac{1}{2}\right)^2 t},&lt;br /&gt;
\quad \text{ donde } \quad&lt;br /&gt;
A_n = \frac{\int_{-a}^{a} u(x,0) \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}{\int_{-a}^{a} \cos^2\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Consideremos ahora condiciones de frontera Neumann, con un flujo nulo que físicamente viene de poner extremos aislantes. Para cierto &amp;lt;math&amp;gt; b &amp;gt; 0,&amp;lt;/math&amp;gt; y no necesariamente igual que con &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Consideraremos la ecuación del calor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad  &amp;amp;\forall t &amp;gt; 0 , x\in [-b,b],\\ &lt;br /&gt;
u_x(-b,t) = u_x(b,t) = 0 \quad  &amp;amp;\forall t &amp;gt; 0, \\ &lt;br /&gt;
u(x,0) = e^{-x^2} \quad &amp;amp;\forall x\in[-b,b].&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De nuevo podemos resolver el sistema, por ser homogéneo, mediante separación de variables, obteniendo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
u(x,t) = \sum_{m=0}^\infty B_{m} cos\left(\frac{m\pi}{b} x\right) e^{-\dfrac{m^2\pi^2}{b^2} t},\quad \text{ donde } \quad&lt;br /&gt;
B_m = \frac{\int_{-b}^{b} u(x,0) \cos\left(\frac{m\pi}{b} x\right)dx}{\int_{-b}^{b} \cos^2\left(\frac{m\pi}{b}x\right)dx}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un último detalle antes de proceder a los errores es la obtención simbólica de la solución no acotada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad &amp;amp;\forall t&amp;gt;0, x\in \mathbb{R},\\  &lt;br /&gt;
u(x,0) = e^{-x^2} \quad &amp;amp;\forall x\in \mathbb{R}&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
\quad&lt;br /&gt;
\Longrightarrow&lt;br /&gt;
\quad&lt;br /&gt;
u(x,t) = \frac{1}{\sqrt{4\pi t}}e^{\frac{-x^2}{4t}} * e^{-x^2} = \frac{e^{\frac{-x^2}{4t+1}}}{\sqrt{4t+1}}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Queremos comprobar cuán bien aproximan las soluciones del caso acotado Dirichlet y Neumann a la obtenida por la solución fundamental. Para ello, escojamos un tiempo máximo &amp;lt;math&amp;gt;t_{max} &amp;lt;/math&amp;gt; hasta el cuál tomaremos el error en norma &amp;lt;math&amp;gt; L^{\infty} &amp;lt;/math&amp;gt;. Queremos estudiar:&lt;br /&gt;
&lt;br /&gt;
* El efecto de aumentar el rango de definición con &amp;lt;math&amp;gt; a,b &amp;lt;/math&amp;gt;.&lt;br /&gt;
* El efecto de aumentar el número de términos en las series de los sistemas acotados.&lt;br /&gt;
&lt;br /&gt;
=== Análisis de los errores ===&lt;br /&gt;
[[Archivo:GrupoADMR Calor Errores1.jpg|550px|thumb|right| Representación gráfica de las soluciones del problema acotado (&amp;lt;math&amp;gt;a = b = 20&amp;lt;/math&amp;gt;) y no acotado truncando las series de Fourier en su término &amp;lt;math&amp;gt;100&amp;lt;/math&amp;gt;, para un tiempo máximo de &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;; y de sus errores. Nótese el orden de magnitud de los errores -pequeño-, los picos generados por los errores numéricos dados por la fórmula del trapecio y la suavidad en la frontera dada por las condiciones en esta.]]&lt;br /&gt;
&lt;br /&gt;
Consideramos los parámetros, donde &amp;lt;math&amp;gt; n &amp;lt;/math&amp;gt; es el término de la serie de Fourier donde truncamos:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;math&amp;gt; a = b = 20, &amp;lt;/math&amp;gt;&lt;br /&gt;
*&amp;lt;math&amp;gt; t_{max} = 1, &amp;lt;/math&amp;gt;&lt;br /&gt;
*&amp;lt;math&amp;gt; n = 100. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con &amp;lt;math&amp;gt; t_{max} &amp;lt;/math&amp;gt; fijo podemos observar que al aumentar &amp;lt;math&amp;gt;a, b&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; el error entre las soluciones acotadas y no acotada disminuye. Nótese que se estanca a partir de cierto &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;. De hecho, el error llega a aumentar a partir de ciertos &amp;lt;math&amp;gt; a,b &amp;lt;/math&amp;gt; si truncamos demasiado pronto o demasiado tarde por la aproximación del trapecio para particiones del espacio demasiado bastas -no observado por pericia en código final-.&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
| [[Archivo:GrupoADMR Calor Errores MaxD.jpeg|250px|thumb|upright|Con &amp;lt;math&amp;gt;t_{max}=1&amp;lt;\math&amp;gt;, vamos obteniendo errores máximos en escala logarítmica con diferentes longitudes y truncamientos entre la solución del problema no acotado y el acotado Dirichlet. Los errores son bastante pequeños si se toman suficientes términos de la serie y una discretización espacial adecuada (en otro caso, aunque no esté representado en esta versión final, los errores divergen)]]&lt;br /&gt;
| [[Archivo:GrupoADMR Calor Errores MaxNe.jpeg|250px|thumb|upright|Análogo a la figura adyacente. Nótese que ambas son buenas aproximaciones con suficiente longitud y términos de la serie.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Al ampliar el tiempo con la &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; y fijada &amp;lt;math&amp;gt;a=b=15&amp;lt;/math&amp;gt;, al hacer más grande &amp;lt;math&amp;gt;t_{max}&amp;lt;/math&amp;gt; los errores máximos no aumentan. En cambio, si tomamos el máximo error para diferentes tiempos vemos con suficiente precisión que no hay diferencia pero que para truncamientos precoces Neumann tiene ligeramente menor error.&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
| [[Archivo:GrupoADMR Calor Errores DNo.jpeg|250px|thumb|upright|Con dominio fijo, el error en escala logarítmica entre solución no acotada y sistema Dirichlet decae incluso con el paso del tiempo. Esto encaja con que el estado estacionario de Dirichlet será la constante de temperatura nula, al igual que la convolución con la solución fundamental.]]&lt;br /&gt;
| [[Archivo:GrupoADMR Calor Errores NoNe.jpeg|250px|thumb|upright|Con condiciones análogas en frontera Neumann, el resultado es igualmente excelente para aproximar el caso no acotado. Aunque en el caso Neumann la solución estacionaria no sea nula, sino un reparto equitativo del calor inicial, cuando el rango es suficientemente amplio, la aproximación será adecuada.]]&lt;br /&gt;
| [[Archivo:GrupoADMR Calor Errores DNe.jpeg|250px|thumb|upright|Podemos ver además que ambos sistemas se asemejan cada vez más, por lo que ambas aproximaciones son igualmente útiles para el caso no acotado.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Coeficiente de difusión=&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Fundamental.gif|300px|thumb|right|Solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. La representación gráfica parte del tiempo inicial &amp;lt;math/&amp;gt; 0.01, &amp;lt;math/&amp;gt; esperando una delta de Dirac en el instante inicial. Nótese que en este tiempo, a mayor coeficiente de difusión más se ha difundido el calor en el sistema, lo que se nota especialmente en el valor máximo observado y su disminución cuanto más crece el coeficiente.]]&lt;br /&gt;
&lt;br /&gt;
Vamos a interpretar como influye exactamente el coeficiente de difusión en la solución de la ecuación del calor. Imaginemos por un segundo que tenemos varias barras (cada una de un material diferente) y queremos estudiar como se difunde el calor a través de cada una de ellas. Usando Matlab podemos calcular y representar fácilmente la solución del problema para diferentes valores del coeficiente de difusión, que denotaremos por &amp;lt;math/&amp;gt; D &amp;lt;math/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
## Interpretemos el valor de &amp;lt;math/&amp;gt; D &amp;lt;math/&amp;gt; aprovechando el montaje físico anterior. Numéricamente vemos que cuanto mayor es este coeficiente más rápido se difunde el calor, evidenciado en la caída de la solución en tiempos cada vez más cortos.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Fundamental.gif|400px|thumb|right|Solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. La representación gráfica parte del tiempo inicial &amp;lt;math/&amp;gt; 0.01, &amp;lt;math/&amp;gt; esperando una delta de Dirac en el instante inicial. Nótese que en este tiempo, a mayor coeficiente de difusión más se ha difundido el calor en el sistema, lo que se nota especialmente en el valor máximo observado y su disminución cuanto más crece el coeficiente.]]&lt;br /&gt;
&lt;br /&gt;
Como se puede observar en la animación, fijado un tiempo, a medida que crece el valor del coeficiente de difusión el pico de la solución fundamental se va haciendo más cada vez más pequeño, es decir, a mayor coeficiente de difusión, menor es el tiempo que tarda en expandirse el calor. De hecho, podemos observar este hecho directamente de la expresión de la solución fundamental del calor. La solución de la ecuación del calor unidimensional en una barra de longitud \( L = 1 \), con coeficiente de difusión \( D \) y condición inicial dada por una función gaussiana \( f(x) = e^{-x^2} \), se expresa como una serie de Fourier:&lt;br /&gt;
&lt;br /&gt;
## En el caso unidimensional acotado con solución&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,t) = \sum_{n=1}^{\infty} A_n e^{-D (n\pi)^2 t} \sin(n\pi x),&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[Solución que depende de D]- [Viendo la solución del apartado 3 me estoy dando cuenta que también depende de la longitud de la barra, si estuviésemos trabajando con el problema acotado podríamos ver como afectan estos dos parámetros al tiempo de difusión]&lt;br /&gt;
&lt;br /&gt;
Tomando el límite de D tendiendo a &amp;lt;math/&amp;gt; \infty &amp;lt;math/&amp;gt; vemos que u(x,t) tiende a 0, fijado un t determinado. Por tanto, podemos concluir que la solución del calor alcanzará el estado estacionario antes si su coeficiente del calor es mayor.&lt;br /&gt;
&lt;br /&gt;
## Podemos ver que un mayor coeficiente &amp;lt;math/&amp;gt; D &amp;lt;math/&amp;gt; acelera el decaimiento de la exponencial por lo que tendrá un efecto similar justificando su nombre.&lt;br /&gt;
&lt;br /&gt;
= Códigos =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión&lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,2,3,4,5,6,7,8,9,10];&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Fundamental.gif';&lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for i = 1:length(DD)&lt;br /&gt;
    D = DD(i);&lt;br /&gt;
&lt;br /&gt;
    % Función fundamental de la ecuación del calor&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -1:0.01:1;         % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
    [X, T] = meshgrid(xx, tt); % Malla de coordenadas&lt;br /&gt;
    PHI_D = phi_D(X, T);   % Evaluación de la función&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    surf(X, T, PHI_D);&lt;br /&gt;
    shading flat&lt;br /&gt;
    shading interp&lt;br /&gt;
    colormap('jet')&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)$', 'Interpreter', 'latex');&lt;br /&gt;
    title(['Solución fundamental de la ecuación del calor, cuando D=', num2str(D)])&lt;br /&gt;
    axis([-1, 1, 0, 1, 0, 3])&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if i == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Convoluciones_teorica.gif|500px|thumb|right|Soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión&lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,10,20,30,40,50,60,70,80,90,100];&lt;br /&gt;
&lt;br /&gt;
% Función gaussiana&lt;br /&gt;
gaus = @(x) (exp(-x.^2));&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Convoluciones_teorica.gif'; &lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for h = 1:length(DD)&lt;br /&gt;
    D = DD(h);&lt;br /&gt;
&lt;br /&gt;
    % Funciones fundamentales y convolución&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
    convo = @(x,t) (exp(-x.^2./(4*D.*t+1))/sqrt(4*D.*t+1));&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -10:0.1:10;        % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
&lt;br /&gt;
    % Inicialización de la matriz de convolución&lt;br /&gt;
    conv = zeros(length(xx), length(tt));&lt;br /&gt;
&lt;br /&gt;
    % Cálculo de la convolución&lt;br /&gt;
    for j = 1:length(tt) &lt;br /&gt;
        auxt = tt(j);&lt;br /&gt;
        for i = 1:length(xx)&lt;br /&gt;
            auxx = xx(i);&lt;br /&gt;
            val_conv(i,j) = convo(auxx, auxt);&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    hold on;&lt;br /&gt;
    view(3);&lt;br /&gt;
    surf(xx, tt, val_conv.');&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)*N(x)$', 'Interpreter', 'latex');&lt;br /&gt;
    shading flat;&lt;br /&gt;
    shading interp;&lt;br /&gt;
    colormap('jet');&lt;br /&gt;
    title(['Soluciones en dominio no acotado, cuando D=', num2str(D)]);&lt;br /&gt;
    axis([-10, 10, 0, 1, 0, 1]);&lt;br /&gt;
    hold off;&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if h == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de los errores entre las soluciones &lt;br /&gt;
&lt;br /&gt;
function [Diff12,Difft1,Difft2] = errores2(n_max, a, b,t_max)&lt;br /&gt;
&lt;br /&gt;
% Función como condición inicial: una función Gaussiana&lt;br /&gt;
gaus = @(x) (exp(-x.^2));&lt;br /&gt;
u0 = @(x) exp(-x.^2);  &lt;br /&gt;
D = 1;  % Coeficiente de difusión&lt;br /&gt;
&lt;br /&gt;
% Funciones fundamentales y convolución para el modelo de difusión&lt;br /&gt;
phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);  &lt;br /&gt;
convo = @(x,t) (exp(-x.^2./(4*D.*t+1))/sqrt(4*D.*t+1));  &lt;br /&gt;
&lt;br /&gt;
% Definición de la malla (espacio y tiempo)&lt;br /&gt;
xx = -a:0.01:a;  &lt;br /&gt;
tt = 10^(-2):0.01:t_max;  &lt;br /&gt;
[X, T] = meshgrid(xx, tt);  &lt;br /&gt;
&lt;br /&gt;
% Inicialización de la matriz de convolución&lt;br /&gt;
conv = zeros(length(xx), length(tt));  &lt;br /&gt;
&lt;br /&gt;
% Cálculo de la convolución&lt;br /&gt;
for j = 1:length(tt)  &lt;br /&gt;
    auxt = tt(j);  &lt;br /&gt;
    for i = 1:length(xx)  &lt;br /&gt;
        auxx = xx(i);  &lt;br /&gt;
        val_conv(j,i) = convo(auxx, auxt);  &lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Inicialización de la matriz de resultados para la solución Dirichlet&lt;br /&gt;
res_dir = zeros(length(xx), length(tt)); &lt;br /&gt;
&lt;br /&gt;
% Cálculo de la solución directa&lt;br /&gt;
for n=1:n_max  &lt;br /&gt;
    A(n) = trapz(xx, u0(xx) .* cos((pi/a)*(n - 1/2) * xx)) /...&lt;br /&gt;
        trapz(xx, cos((pi/a)*(n - 1/2) * xx).^2);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Evaluación de la solución directa en el dominio espacio-temporal&lt;br /&gt;
for j = 1:length(tt)  &lt;br /&gt;
    auxt = tt(j);  &lt;br /&gt;
    for i = 1:length(xx) &lt;br /&gt;
        auxx = xx(i);  &lt;br /&gt;
        u = 0;  &lt;br /&gt;
&lt;br /&gt;
        % Sumar los términos de la serie de Fourier&lt;br /&gt;
        for n=1:n_max&lt;br /&gt;
            u = u + A(n) .* cos((pi/a)*(n - 1/2) * auxx) .*...&lt;br /&gt;
                exp(-((pi^2 / a^2) * (n - 1/2)^2) .* auxt);  &lt;br /&gt;
        end&lt;br /&gt;
        res_dir(i,j) = u;  &lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Inicialización de la matriz de resultados para la solución en frontera Neumann&lt;br /&gt;
res_neu = zeros(length(xx), length(tt));&lt;br /&gt;
&lt;br /&gt;
% Cálculo de la solución en frontera Neumann&lt;br /&gt;
for n=1:n_max  &lt;br /&gt;
    B(n) = trapz(xx, u0(xx) .* cos((n*pi/b) * xx)) /...&lt;br /&gt;
        trapz(xx, cos((n*pi/b) * xx).^2);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Evaluación de la solución en frontera Neumann en el dominio espacio-temporal&lt;br /&gt;
for j = 1:length(tt)  &lt;br /&gt;
    auxt = tt(j);  &lt;br /&gt;
    for i = 1:length(xx)  &lt;br /&gt;
        auxx = xx(i); &lt;br /&gt;
        u = trapz(xx, u0(xx))./(2.*b);  &lt;br /&gt;
&lt;br /&gt;
        % Sumar los términos de la serie de Fourier&lt;br /&gt;
        for n=1:n_max&lt;br /&gt;
            u = u + B(n) .* cos((n*pi/b) * auxx) .* exp(-((n^2 * pi^2 / b^2)) .* auxt);  &lt;br /&gt;
        end&lt;br /&gt;
        res_neu(i,j) = u;  &lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Transponer los resultados para compararlos con la convolución&lt;br /&gt;
U1 = res_dir.'; &lt;br /&gt;
U2 = res_neu.';  &lt;br /&gt;
&lt;br /&gt;
% Calcular las diferencias entre las soluciones y la convolución&lt;br /&gt;
Diff12 = abs(U1 - U2);  &lt;br /&gt;
Difft1 = abs(val_conv - U1);  &lt;br /&gt;
Difft2 = abs(val_conv - U2);  &lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de las soluciones de la ecuación del calor unidimensional junto con la comparación de sus errores&lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Función como condicion inicial&lt;br /&gt;
% Se define la función inicial gausiana y la función u0 que se utilizarán más adelante para los cálculos.&lt;br /&gt;
gaus = @(x) (exp(-x.^2));&lt;br /&gt;
u0 = @(x) exp(-x.^2);&lt;br /&gt;
D = 1;&lt;br /&gt;
&lt;br /&gt;
% Funciones fundamentales y convolución&lt;br /&gt;
% Se definen las funciones que describen la solución fundamental de la ecuación y la convolución utilizada.&lt;br /&gt;
phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
convo = @(x,t) (exp(-x.^2./(4*D.*t+1))/sqrt(4*D.*t+1));&lt;br /&gt;
&lt;br /&gt;
% Definición de la malla&lt;br /&gt;
% Se definen los parámetros de la malla para las variables espaciales (xx) y temporales (tt), y se crea la malla 2D.&lt;br /&gt;
a = 100;&lt;br /&gt;
b = 100;&lt;br /&gt;
tmax = 1;&lt;br /&gt;
n_max = 1000;&lt;br /&gt;
&lt;br /&gt;
xx = linspace(-a, a, 1000);&lt;br /&gt;
tt = linspace(10^(-2), tmax, 1000);&lt;br /&gt;
[X, T] = meshgrid(xx, tt);&lt;br /&gt;
&lt;br /&gt;
% Inicialización de la matriz de convolución&lt;br /&gt;
% Se crea una matriz vacía para almacenar los valores de la convolución.&lt;br /&gt;
conv = zeros(length(xx), length(tt));&lt;br /&gt;
&lt;br /&gt;
% Cálculo de la convolución&lt;br /&gt;
% Se calcula la convolución para cada punto en la malla de la variable temporal tt y espacial xx.&lt;br /&gt;
for j = 1:length(tt)&lt;br /&gt;
    auxt = tt(j);&lt;br /&gt;
    for i = 1:length(xx)&lt;br /&gt;
        auxx = xx(i);&lt;br /&gt;
        val_conv(i,j) = convo(auxx, auxt);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Resolución de la ecuación con condiciones de frontera Dirichlet&lt;br /&gt;
% Se calculan los coeficientes A para la expansión en series de Fourier y se calcula la solución directa en cada paso temporal.&lt;br /&gt;
res_dir = zeros(length(xx), length(tt));&lt;br /&gt;
&lt;br /&gt;
for n=1:n_max&lt;br /&gt;
        A(n) = trapz(xx, u0(xx) .* cos((pi/a)*(n - 1/2) * xx)) /...&lt;br /&gt;
        trapz(xx, cos((pi/a)*(n - 1/2) * xx).^2);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
for j = 1:length(tt)&lt;br /&gt;
    auxt = tt(j);&lt;br /&gt;
&lt;br /&gt;
    for i = 1:length(xx)&lt;br /&gt;
        auxx = xx(i);&lt;br /&gt;
        u = 0;&lt;br /&gt;
&lt;br /&gt;
        for n=1:n_max&lt;br /&gt;
            u = u + A(n) .* cos((pi/a)*(n - 1/2) * auxx) .*...&lt;br /&gt;
        exp(-((pi^2 / a^2) * (n - 1/2)^2) .* auxt);&lt;br /&gt;
&lt;br /&gt;
        end&lt;br /&gt;
        res_dir(j,i) = u;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Resolución de la ecuación con condiciones de frontera Neumann&lt;br /&gt;
% Se calculan los coeficientes B para la expansión en series de Fourier con las condiciones de frontera Neumann y se calcula la solución en cada paso temporal.&lt;br /&gt;
res_neu = zeros(length(xx), length(tt));&lt;br /&gt;
&lt;br /&gt;
for n=1:n_max&lt;br /&gt;
        B(n) = trapz(xx, u0(xx) .* cos((n*pi/b) * xx)) /...&lt;br /&gt;
        trapz(xx, cos((n*pi/b) * xx).^2);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
for j = 1:length(tt)&lt;br /&gt;
    auxt = tt(j);&lt;br /&gt;
&lt;br /&gt;
    for i = 1:length(xx)&lt;br /&gt;
        auxx = xx(i);&lt;br /&gt;
        u = trapz(xx, u0(xx))./(2.*b);&lt;br /&gt;
&lt;br /&gt;
        for n=1:n_max&lt;br /&gt;
            u = u + B(n) .* cos((n*pi/b) * auxx) .* exp(-((n^2 * pi^2 / b^2)) .* auxt);&lt;br /&gt;
&lt;br /&gt;
        end&lt;br /&gt;
        res_neu(j,i) = u;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Comparación entre las soluciones obtenidas&lt;br /&gt;
% Se calcula la diferencia entre las soluciones directa y Neumann, así como entre las soluciones y la convolución.&lt;br /&gt;
U1 = res_dir;  &lt;br /&gt;
U2 = res_neu;  &lt;br /&gt;
&lt;br /&gt;
Diff12 = abs(U1 - U2);  &lt;br /&gt;
Difft1 = abs(val_conv.' - U1);  &lt;br /&gt;
Difft2 = abs(val_conv.' - U2);  &lt;br /&gt;
&lt;br /&gt;
% Visualización de los resultados&lt;br /&gt;
% Se muestran las superficies 3D de las soluciones y sus diferencias en gráficos para comparar los resultados obtenidos.&lt;br /&gt;
figure(1);&lt;br /&gt;
&lt;br /&gt;
subplot(2,4,2);&lt;br /&gt;
view(3);&lt;br /&gt;
surf(X, T, U1);&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('t'); &lt;br /&gt;
zlabel('$u_1(x,t)$', 'Interpreter', 'latex');&lt;br /&gt;
shading flat;&lt;br /&gt;
shading interp;&lt;br /&gt;
colormap(gca,'jet');&lt;br /&gt;
axis([-a,a,0,tmax,0,1])&lt;br /&gt;
title('$u_1(x,t)$', 'Interpreter', 'latex');&lt;br /&gt;
&lt;br /&gt;
subplot(2,4,3);&lt;br /&gt;
view(3);&lt;br /&gt;
surf(X, T, U2);&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('t');&lt;br /&gt;
zlabel('$u_2(x,t)$', 'Interpreter', 'latex');&lt;br /&gt;
shading flat;&lt;br /&gt;
shading interp;&lt;br /&gt;
colormap(gca, 'jet');&lt;br /&gt;
axis([-b,b,0,tmax,0,1])&lt;br /&gt;
title('$u_2(x,t)$', 'Interpreter', 'latex');&lt;br /&gt;
&lt;br /&gt;
subplot(2,4,4);&lt;br /&gt;
view(3);&lt;br /&gt;
surf(X, T, Diff12);&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('t');&lt;br /&gt;
zlabel('$|u_1(x,t)-u_2(x,t)|$', 'Interpreter', 'latex');&lt;br /&gt;
shading flat;&lt;br /&gt;
shading interp;&lt;br /&gt;
colormap(gca, 'hot');&lt;br /&gt;
title('$|u_1(x,t)-u_2(x,t)|$', 'Interpreter', 'latex');&lt;br /&gt;
&lt;br /&gt;
subplot(2,4,5)&lt;br /&gt;
view(3);&lt;br /&gt;
surf(X, T, val_conv.');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('t');&lt;br /&gt;
zlabel('$\Phi_D(x,t)*N(x)$', 'Interpreter', 'latex');&lt;br /&gt;
shading flat;&lt;br /&gt;
shading interp;&lt;br /&gt;
colormap(gca, 'jet');&lt;br /&gt;
axis([-a,a,0,tmax,0,1])&lt;br /&gt;
title('$\Phi_D(x,t)*N(x)$', 'Interpreter', 'latex');&lt;br /&gt;
&lt;br /&gt;
subplot(2,4,6);&lt;br /&gt;
view(3);&lt;br /&gt;
surf(X, T, Difft1);&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('t');&lt;br /&gt;
zlabel('$|\Phi_D(x,t)*N(x)-u_1(x,t)|$', 'Interpreter', 'latex');&lt;br /&gt;
shading flat;&lt;br /&gt;
shading interp;&lt;br /&gt;
colormap(gca, 'hot');&lt;br /&gt;
title('$|\Phi_D(x,t)*N(x)-u_1(x,t)|$', 'Interpreter', 'latex');&lt;br /&gt;
&lt;br /&gt;
subplot(2,4,7);&lt;br /&gt;
view(3);&lt;br /&gt;
surf(X, T, Difft2);&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('t');&lt;br /&gt;
zlabel('$|\Phi_D(x,t)*N(x)-u_2(x,t)|$', 'Interpreter', 'latex');&lt;br /&gt;
shading flat;&lt;br /&gt;
shading interp;&lt;br /&gt;
colormap(gca, 'hot');&lt;br /&gt;
title('$|\Phi_D(x,t)*N(x)-u_2(x,t)|$', 'Interpreter', 'latex');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Referencias =&lt;br /&gt;
&lt;br /&gt;
* Sandro Salsa, Gianmaria Verzini. Partial Differential Equations in Action From Modelling to Theory ([https://link.springer.com/book/10.1007/978-3-031-21853-8 [1&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84938</id>
		<title>Ecuación del calor (ADMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84938"/>
				<updated>2025-03-18T22:40:54Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: /* Introducción */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor (Grupo ADMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | &lt;br /&gt;
*Ángel De Lucas Miranda, &lt;br /&gt;
*Daniel Rodríguez Calderón, &lt;br /&gt;
*Marcos Cabellos Hernández, &lt;br /&gt;
*Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
El desarrollo de la ecuación del calor se atribuye principalmente al matemático y físico francés Joseph Fourier, quien en 1822 publicó su obra ''Théorie analytique de la chaleur''. En este trabajo formuló una ecuación diferencial en derivadas parciales que describe la propagación del calor por difusión en un medio continuo. En esta ocasión, profundicemos en dos aspectos de este modelo.&lt;br /&gt;
&lt;br /&gt;
Desde un punto de vista físico, estas ecuaciones permiten la modelización de fenómenos como el calentamiento de materiales o la difusión de solutos en fluidos estacionarios. Sin embargo, la influencia de la física es más profunda: de hecho, el coeficiente de difusión lleva su nombre por la interpretación física de su acción en el sistema. ¿Cuál es este efecto, y por qué se lo denota de esta forma?&lt;br /&gt;
&lt;br /&gt;
Planteemos también el paso entre problemas de dominio acotado y los de no acotado. ¿Podemos aproximar las soluciones del sistema no acotado mediante las del acotado? Y de ser así, ¿qué condiciones de frontera en una dimensión funcionan mejor?&lt;br /&gt;
&lt;br /&gt;
=Solución acotada vs Solución no acotada=&lt;br /&gt;
Demos por conocidos el uso de separación de variables para resolver problemas de autofunciones en caso acotado y el manejo de la solución fundamental junto con la convolución para el sistema no acotado. Para comparar todas las soluciones correspondientes, consideremos sistema &amp;lt;math&amp;gt; 1-&amp;lt;/math&amp;gt;dimensional, con una gaussiana &amp;lt;math&amp;gt; e^{-x^2} &amp;lt;/math&amp;gt; como condición inicial. Justificamos físicamente como el uso de un láser para calentar un punto de una tira fina de metal. Considerando que los fotones puedan desviarse como una distribución normal por el teorema central del límite, es un montaje experimental factible y regular.  ¿Y qué condiciones de frontera?&lt;br /&gt;
&lt;br /&gt;
Si consideramos de Dirichlet, a una tira de longitud &amp;lt;math&amp;gt; 2a &amp;lt;/math&amp;gt; le colocaremos en los extremos un material que se mantenga siempre a la misma temperatura, pongamos que a una temperatura nula. El sistema resulta&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad  &amp;amp;\forall t &amp;gt; 0, x\in [-a,a],\\ &lt;br /&gt;
u(-a,t) = u(a,t) = 0 \quad  &amp;amp;\forall t &amp;gt; 0, \\ &lt;br /&gt;
u(x,0) = e^{-x^2} \quad  &amp;amp;\forall x\in [-a,a].&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La solución al resolver el problema de autofunciones viene dada por&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
u(x,t) = \sum_{n=1}^\infty A_{n} \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right) e^{-\dfrac{\pi^2}{a^2}\left(n - \frac{1}{2}\right)^2 t},&lt;br /&gt;
\quad \text{ donde } \quad&lt;br /&gt;
A_n = \frac{\int_{-a}^{a} u(x,0) \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}{\int_{-a}^{a} \cos^2\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Consideremos ahora condiciones de frontera Neumann, con un flujo nulo que físicamente viene de poner extremos aislantes. Para cierto &amp;lt;math&amp;gt; b &amp;gt; 0,&amp;lt;/math&amp;gt; y no necesariamente igual que con &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Consideraremos la ecuación del calor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad  &amp;amp;\forall t &amp;gt; 0 , x\in [-b,b],\\ &lt;br /&gt;
u_x(-b,t) = u_x(b,t) = 0 \quad  &amp;amp;\forall t &amp;gt; 0, \\ &lt;br /&gt;
u(x,0) = e^{-x^2} \quad &amp;amp;\forall x\in[-b,b].&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De nuevo podemos resolver el sistema, por ser homogéneo, mediante separación de variables, obteniendo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
u(x,t) = \sum_{m=0}^\infty B_{m} cos\left(\frac{m\pi}{b} x\right) e^{-\dfrac{m^2\pi^2}{b^2} t},\quad \text{ donde } \quad&lt;br /&gt;
B_m = \frac{\int_{-b}^{b} u(x,0) \cos\left(\frac{m\pi}{b} x\right)dx}{\int_{-b}^{b} \cos^2\left(\frac{m\pi}{b}x\right)dx}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un último detalle antes de proceder a los errores es la obtención simbólica de la solución no acotada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad &amp;amp;\forall t&amp;gt;0, x\in \mathbb{R},\\  &lt;br /&gt;
u(x,0) = e^{-x^2} \quad &amp;amp;\forall x\in \mathbb{R}&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
\quad&lt;br /&gt;
\Longrightarrow&lt;br /&gt;
\quad&lt;br /&gt;
u(x,t) = \frac{1}{\sqrt{4\pi t}}e^{\frac{-x^2}{4t}} * e^{-x^2} = \frac{e^{\frac{-x^2}{4t+1}}}{\sqrt{4t+1}}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Queremos comprobar cuán bien aproximan las soluciones del caso acotado Dirichlet y Neumann a la obtenida por la solución fundamental. Para ello, escojamos un tiempo máximo &amp;lt;math&amp;gt;t_{max} &amp;lt;/math&amp;gt; hasta el cuál tomaremos el error en norma &amp;lt;math&amp;gt; L^{\infty} &amp;lt;/math&amp;gt;. Queremos estudiar:&lt;br /&gt;
&lt;br /&gt;
* El efecto de aumentar el rango de definición con &amp;lt;math&amp;gt; a,b &amp;lt;/math&amp;gt;.&lt;br /&gt;
* El efecto de aumentar el número de términos en las series de los sistemas acotados.&lt;br /&gt;
&lt;br /&gt;
=== Análisis de los errores ===&lt;br /&gt;
[[Archivo:GrupoADMR Calor Errores1.jpg|550px|thumb|right| Representación gráfica de las soluciones del problema acotado (&amp;lt;math&amp;gt;a = b = 20&amp;lt;/math&amp;gt;) y no acotado truncando las series de Fourier en su término &amp;lt;math&amp;gt;100&amp;lt;/math&amp;gt;, para un tiempo máximo de &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;; y de sus errores. Nótese el orden de magnitud de los errores -pequeño-, los picos generados por los errores numéricos dados por la fórmula del trapecio y la suavidad en la frontera dada por las condiciones en esta.]]&lt;br /&gt;
&lt;br /&gt;
Consideramos los parámetros, donde &amp;lt;math&amp;gt; n &amp;lt;/math&amp;gt; es el término de la serie de Fourier donde truncamos:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;math&amp;gt; a = b = 20, &amp;lt;/math&amp;gt;&lt;br /&gt;
*&amp;lt;math&amp;gt; t_{max} = 1, &amp;lt;/math&amp;gt;&lt;br /&gt;
*&amp;lt;math&amp;gt; n = 100. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con &amp;lt;math&amp;gt; t_{max} &amp;lt;/math&amp;gt; fijo podemos observar que al aumentar &amp;lt;math&amp;gt;a, b&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; el error entre las soluciones acotadas y no acotada disminuye. Nótese que se estanca a partir de cierto &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;. De hecho, el error llega a aumentar a partir de ciertos &amp;lt;math&amp;gt; a,b &amp;lt;/math&amp;gt; si truncamos demasiado pronto o demasiado tarde por la aproximación del trapecio para particiones del espacio demasiado bastas -no observado por pericia en código final-.&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
| [[Archivo:GrupoADMR Calor Errores MaxD.jpeg|250px|thumb|upright|]]&lt;br /&gt;
| [[Archivo:GrupoADMR Calor Errores MaxNe.jpeg|250px|thumb|upright|]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Al ampliar el tiempo con la &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; y fijada la longitud, al hacer más grande &amp;lt;math&amp;gt;t_{max}&amp;lt;/math&amp;gt; los errores máximos no aumentan. En cambio, si tomamos el máximo error para diferentes tiempos vemos con suficiente precisión que no hay diferencia pero que para truncamientos precoces Neumann tiene ligeramente menor error.&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
| [[Archivo:GrupoADMR Calor Errores DNo.jpeg|250px|thumb|upright|]]&lt;br /&gt;
| [[Archivo:GrupoADMR Calor Errores NoNe.jpeg|250px|thumb|upright|]]&lt;br /&gt;
| [[Archivo:GrupoADMR Calor Errores DNe.jpeg|250px|thumb|upright|]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Coeficiente de difusión=&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Fundamental.gif|300px|thumb|right|Solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. La representación gráfica parte del tiempo inicial &amp;lt;math/&amp;gt; 0.01, &amp;lt;math/&amp;gt; esperando una delta de Dirac en el instante inicial. Nótese que en este tiempo, a mayor coeficiente de difusión más se ha difundido el calor en el sistema, lo que se nota especialmente en el valor máximo observado y su disminución cuanto más crece el coeficiente.]]&lt;br /&gt;
&lt;br /&gt;
Vamos a interpretar como influye exactamente el coeficiente de difusión en la solución de la ecuación del calor. Imaginemos por un segundo que tenemos varias barras (cada una de un material diferente) y queremos estudiar como se difunde el calor a través de cada una de ellas. Usando Matlab podemos calcular y representar fácilmente la solución del problema para diferentes valores del coeficiente de difusión, que denotaremos por &amp;lt;math/&amp;gt; D &amp;lt;math/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
## Interpretemos el valor de &amp;lt;math/&amp;gt; D &amp;lt;math/&amp;gt; aprovechando el montaje físico anterior. Numéricamente vemos que cuanto mayor es este coeficiente más rápido se difunde el calor, evidenciado en la caída de la solución en tiempos cada vez más cortos.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Fundamental.gif|400px|thumb|right|Solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. La representación gráfica parte del tiempo inicial &amp;lt;math/&amp;gt; 0.01, &amp;lt;math/&amp;gt; esperando una delta de Dirac en el instante inicial. Nótese que en este tiempo, a mayor coeficiente de difusión más se ha difundido el calor en el sistema, lo que se nota especialmente en el valor máximo observado y su disminución cuanto más crece el coeficiente.]]&lt;br /&gt;
&lt;br /&gt;
Como se puede observar en la animación, fijado un tiempo, a medida que crece el valor del coeficiente de difusión el pico de la solución fundamental se va haciendo más cada vez más pequeño, es decir, a mayor coeficiente de difusión, menor es el tiempo que tarda en expandirse el calor. De hecho, podemos observar este hecho directamente de la expresión de la solución fundamental del calor. La solución de la ecuación del calor unidimensional en una barra de longitud \( L = 1 \), con coeficiente de difusión \( D \) y condición inicial dada por una función gaussiana \( f(x) = e^{-x^2} \), se expresa como una serie de Fourier:&lt;br /&gt;
&lt;br /&gt;
## En el caso unidimensional acotado con solución&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,t) = \sum_{n=1}^{\infty} A_n e^{-D (n\pi)^2 t} \sin(n\pi x),&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[Solución que depende de D]- [Viendo la solución del apartado 3 me estoy dando cuenta que también depende de la longitud de la barra, si estuviésemos trabajando con el problema acotado podríamos ver como afectan estos dos parámetros al tiempo de difusión]&lt;br /&gt;
&lt;br /&gt;
Tomando el límite de D tendiendo a &amp;lt;math/&amp;gt; \infty &amp;lt;math/&amp;gt; vemos que u(x,t) tiende a 0, fijado un t determinado. Por tanto, podemos concluir que la solución del calor alcanzará el estado estacionario antes si su coeficiente del calor es mayor.&lt;br /&gt;
&lt;br /&gt;
## Podemos ver que un mayor coeficiente &amp;lt;math/&amp;gt; D &amp;lt;math/&amp;gt; acelera el decaimiento de la exponencial por lo que tendrá un efecto similar justificando su nombre.&lt;br /&gt;
&lt;br /&gt;
= Códigos =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,2,3,4,5,6,7,8,9,10];&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Fundamental.gif';&lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for i = 1:length(DD)&lt;br /&gt;
    D = DD(i);&lt;br /&gt;
&lt;br /&gt;
    % Función fundamental de la ecuación del calor&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -1:0.01:1;         % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
    [X, T] = meshgrid(xx, tt); % Malla de coordenadas&lt;br /&gt;
    PHI_D = phi_D(X, T);   % Evaluación de la función&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    surf(X, T, PHI_D);&lt;br /&gt;
    shading flat&lt;br /&gt;
    shading interp&lt;br /&gt;
    colormap('jet')&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)$', 'Interpreter', 'latex');&lt;br /&gt;
    title(['Solución fundamental de la ecuación del calor, cuando D=', num2str(D)])&lt;br /&gt;
    axis([-1, 1, 0, 1, 0, 3])&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if i == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Convoluciones_teorica.gif|500px|thumb|right|Soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,10,20,30,40,50,60,70,80,90,100];&lt;br /&gt;
&lt;br /&gt;
% Función gaussiana&lt;br /&gt;
gaus = @(x) (exp(-x.^2));&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Convoluciones_teorica.gif'; &lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for h = 1:length(DD)&lt;br /&gt;
    D = DD(h);&lt;br /&gt;
&lt;br /&gt;
    % Funciones fundamentales y convolución&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
    convo = @(x,t) (exp(-x.^2./(4*D.*t+1))/sqrt(4*D.*t+1));&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -10:0.1:10;        % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
&lt;br /&gt;
    % Inicialización de la matriz de convolución&lt;br /&gt;
    conv = zeros(length(xx), length(tt));&lt;br /&gt;
&lt;br /&gt;
    % Cálculo de la convolución&lt;br /&gt;
    for j = 1:length(tt) &lt;br /&gt;
        auxt = tt(j);&lt;br /&gt;
        for i = 1:length(xx)&lt;br /&gt;
            auxx = xx(i);&lt;br /&gt;
            val_conv(i,j) = convo(auxx, auxt);&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    hold on;&lt;br /&gt;
    view(3);&lt;br /&gt;
    surf(xx, tt, val_conv.');&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)*N(x)$', 'Interpreter', 'latex');&lt;br /&gt;
    shading flat;&lt;br /&gt;
    shading interp;&lt;br /&gt;
    colormap('jet');&lt;br /&gt;
    title(['Soluciones en dominio no acotado, cuando D=', num2str(D)]);&lt;br /&gt;
    axis([-10, 10, 0, 1, 0, 1]);&lt;br /&gt;
    hold off;&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if h == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Referencias =&lt;br /&gt;
&lt;br /&gt;
* Sandro Salsa, Gianmaria Verzini. Partial Differential Equations in Action From Modelling to Theory ([https://link.springer.com/book/10.1007/978-3-031-21853-8 [1&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84931</id>
		<title>Ecuación del calor (ADMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84931"/>
				<updated>2025-03-18T22:19:02Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: /* Análisis de los errores */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor (Grupo ADMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | &lt;br /&gt;
*Ángel De Lucas Miranda, &lt;br /&gt;
*Daniel Rodríguez Calderón, &lt;br /&gt;
*Marcos Cabellos Hernández, &lt;br /&gt;
*Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
El desarrollo de la ecuación del calor se atribuye principalmente al matemático y físico francés Joseph Fourier, quien en 1822 publicó su obra ''Théorie analytique de la chaleur''. En este trabajo formuló una ecuación diferencial en derivadas parciales que describe la propagación del calor por difusión en un medio continuo. Su análisis no sólo permitió comprender mejor este fenómeno físico, sino que también promovió el desarrollo de las Series de Fourier, que fueron objeto de estudio en nuestro trabajo anterior. En esta ocasión, profundicemos en dos aspectos de este modelo.&lt;br /&gt;
&lt;br /&gt;
Desde un punto de vista físico, estas ecuaciones permiten la modelización de fenómenos como el calentamiento de materiales o la difusión de solutos en fluidos estacionarios, como ya hemos explorado en algunos ejercicios. Sin embargo, la influencia de la física es más profunda: de hecho, el coeficiente de difusión lleva su nombre por la interpretación física de su acción en el sistema. ¿Cuál es este efecto, y por qué se lo denota de esta forma?&lt;br /&gt;
&lt;br /&gt;
Al tiempo que exploramos este efecto, planteemos también el paso entre problemas de dominio acotado y los de no acotado. Parecería evidente que estos últimos se extiendan naturalmente con los anteriores, pero en el desarrollo teórico de clase se obtenían mediante soluciones autosimilares en vez de problemas de autofunciones. ¿Convergen las soluciones del sistema acotado a la del no acotado cuando el dominio crece lo suficiente? Y de ser así, ¿qué condiciones de frontera en una dimensión funcionan mejor?&lt;br /&gt;
&lt;br /&gt;
=Solución acotada vs Solución no acotada=&lt;br /&gt;
Demos por conocidos el uso de separación de variables para resolver problemas de autofunciones en caso acotado y el manejo de la solución fundamental junto con la convolución para el sistema no acotado. Para comparar todas las soluciones correspondientes, consideremos sistema &amp;lt;math&amp;gt; 1-&amp;lt;/math&amp;gt;dimensional, con una gaussiana &amp;lt;math&amp;gt; e^{-x^2} &amp;lt;/math&amp;gt; como condición inicial. La justificación de una curva así puede ser, en un experimento físico, el uso de un láser para calentar un punto de una tira fina de metal. Considerando que los fotones puedan desviarse como una distribución normal por el teorema central del límite, es un montaje experimental factible. Además, es una función continua y diferenciable, par y asintóticamente nula, buenas propiedades para un estado inicial del sistema. Pongamos ahora dos posibles condiciones en las fronteras.&lt;br /&gt;
&lt;br /&gt;
Si consideramos de Dirichlet, a una tira de longitud &amp;lt;math&amp;gt; 2a &amp;lt;/math&amp;gt; le colocaremos en los extremos un material que se mantenga siempre a la misma temperatura, pongamos que a una temperatura nula. El sistema resulta&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad  &amp;amp;\forall t &amp;gt; 0, x\in [-a,a],\\ &lt;br /&gt;
u(-a,t) = u(a,t) = 0 \quad  &amp;amp;\forall t &amp;gt; 0, \\ &lt;br /&gt;
u(x,0) = e^{-x^2} \quad  &amp;amp;\forall x\in [-a,a].&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La solución al resolver el problema de autofunciones viene dada por&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
u(x,t) = \sum_{n=1}^\infty A_{n} \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right) e^{-\dfrac{\pi^2}{a^2}\left(n - \frac{1}{2}\right)^2 t},&lt;br /&gt;
\quad \text{ donde } \quad&lt;br /&gt;
A_n = \frac{\int_{-a}^{a} u(x,0) \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}{\int_{-a}^{a} \cos^2\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Consideremos ahora condiciones de frontera Neumann, con un flujo nulo que físicamente viene de poner extremos aislantes. Para cierto &amp;lt;math&amp;gt; b &amp;gt; 0,&amp;lt;/math&amp;gt; y no necesariamente igual que con &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Consideraremos la ecuación del calor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad  &amp;amp;\forall t &amp;gt; 0 , x\in [-b,b],\\ &lt;br /&gt;
u_x(-b,t) = u_x(b,t) = 0 \quad  &amp;amp;\forall t &amp;gt; 0, \\ &lt;br /&gt;
u(x,0) = e^{-x^2} \quad &amp;amp;\forall x\in[-b,b].&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De nuevo podemos resolver el sistema, por ser homogéneo, mediante separación de variables, obteniendo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
u(x,t) = \sum_{m=0}^\infty B_{m} cos\left(\frac{m\pi}{b} x\right) e^{-\dfrac{m^2\pi^2}{b^2} t},\quad \text{ donde } \quad&lt;br /&gt;
B_m = \frac{\int_{-b}^{b} u(x,0) \cos\left(\frac{m\pi}{b} x\right)dx}{\int_{-b}^{b} \cos^2\left(\frac{m\pi}{b}x\right)dx}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un último detalle antes de proceder a los errores es la obtención simbólica de la solución no acotada, realizada a mano y mediante Maple.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad &amp;amp;\forall t&amp;gt;0, x\in \mathbb{R},\\  &lt;br /&gt;
u(x,0) = e^{-x^2} \quad &amp;amp;\forall x\in \mathbb{R}&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
\quad&lt;br /&gt;
\Longrightarrow&lt;br /&gt;
\quad&lt;br /&gt;
u(x,t) = \frac{1}{\sqrt{4\pi t}}e^{\frac{-x^2}{4t}} * e^{-x^2} = \frac{e^{\frac{-x^2}{4t+1}}}{\sqrt{4t+1}}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora que pasamos a los errores, es relevante indicar la naturaleza numérica de los cálculos y la acumulación de errores en estos. Con esto en mente, queremos comprobar cuán bien aproximan las soluciones del caso acotado Dirichlet y Neumann a la obtenida por la solución fundamental. Para ello, escojamos un tiempo máximo &amp;lt;math&amp;gt;t_{max} &amp;lt;/math&amp;gt; hasta el cuál tomaremos el error en norma &amp;lt;math&amp;gt; L^{\infty} &amp;lt;/math&amp;gt;. Queremos estudiar&lt;br /&gt;
&lt;br /&gt;
* El efecto de aumentar el rango de definición con &amp;lt;math&amp;gt; a,b &amp;lt;/math&amp;gt;.&lt;br /&gt;
* El efecto de aumentar el número de términos en las series de los sistemas acotados.&lt;br /&gt;
&lt;br /&gt;
=== Análisis de los errores ===&lt;br /&gt;
[[Archivo:GrupoADMR Calor Errores1.jpg|550px|thumb|right| Representación gráfica de las soluciones del problema acotado (&amp;lt;math&amp;gt;a = b = 20&amp;lt;/math&amp;gt;) y no acotado truncando las series de Fourier en su término &amp;lt;math&amp;gt;100&amp;lt;/math&amp;gt;, para un tiempo máximo de &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;; y de sus errores. Nótese el orden de magnitud de los errores -pequeño-, los picos generados por los errores numéricos dados por la fórmula del trapecio y la suavidad en la frontera dada por las condiciones en esta.]]&lt;br /&gt;
&lt;br /&gt;
Consideramos los parámetros, donde &amp;lt;math&amp;gt; n &amp;lt;/math&amp;gt; es el término de la serie de Fourier donde truncamos:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;math&amp;gt; a = b = 20, &amp;lt;/math&amp;gt;&lt;br /&gt;
*&amp;lt;math&amp;gt; t_{max} = 1, &amp;lt;/math&amp;gt;&lt;br /&gt;
*&amp;lt;math&amp;gt; n = 100. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, ampliaremos &amp;lt;math&amp;gt;a, b&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; dejando fijo &amp;lt;math&amp;gt;t_{max}&amp;lt;/math&amp;gt; y luego fijaremos &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; en vez del tiempo.&lt;br /&gt;
Podemos observar que al aumentar &amp;lt;math&amp;gt;a, b&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; el error entre las solucionnes acotadas y no acotada disminuye. Nótese que se estanca a partir de cierto &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;. De hecho, el error llega a aumentar a partir de ciertos &amp;lt;math&amp;gt; a,b &amp;lt;/math&amp;gt; si truncamos demasiado pronto o demasiado tarde por la aproximación del trapecio para particiones del espacio demasiado bastas -no observado por pericia en código final-.&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
| [[Archivo:GrupoADMR Calor Errores MaxD.jpeg|250px|thumb|upright|]]&lt;br /&gt;
| [[Archivo:GrupoADMR Calor Errores MaxNe.jpeg|250px|thumb|upright|]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Al ampliar el tiempo con la &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; como los errores se concentran para tiempos pequeños, al hacer más grande &amp;lt;math&amp;gt;t_{max}&amp;lt;/math&amp;gt; los errores máximos no aumentan. En cambio, si tomamos el máximo error para diferentes tiempos vemos con suficiente precisión no hay diferencia pero que para truncamientos precoces Neumann tiene ligeramente menor error.&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
| [[Archivo:GrupoADMR Calor Errores DNo.jpeg|250px|thumb|upright|]]&lt;br /&gt;
| [[Archivo:GrupoADMR Calor Errores NoNe.jpeg|250px|thumb|upright|]]&lt;br /&gt;
| [[Archivo:GrupoADMR Calor Errores DNe.jpeg|250px|thumb|upright|]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Coeficiente de difusión=&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Fundamental.gif|300px|thumb|right|Solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. La representación gráfica parte del tiempo inicial &amp;lt;math/&amp;gt; 0.01, &amp;lt;math/&amp;gt; esperando una delta de Dirac en el instante inicial. Nótese que en este tiempo, a mayor coeficiente de difusión más se ha difundido el calor en el sistema, lo que se nota especialmente en el valor máximo observado y su disminución cuanto más crece el coeficiente.]]&lt;br /&gt;
&lt;br /&gt;
Vamos a interpretar como influye exactamente el coeficiente de difusión en la solución de la ecuación del calor. Imaginemos por un segundo que tenemos varias barras (cada una de un material diferente) y queremos estudiar como se difunde el calor a través de cada una de ellas. Usando Matlab podemos calcular y representar fácilmente la solución del problema para diferentes valores del coeficiente de difusión, que denotaremos por &amp;lt;math/&amp;gt; D &amp;lt;math/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Fundamental.gif|400px|thumb|right|Solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. La representación gráfica parte del tiempo inicial &amp;lt;math/&amp;gt; 0.01, &amp;lt;math/&amp;gt; esperando una delta de Dirac en el instante inicial. Nótese que en este tiempo, a mayor coeficiente de difusión más se ha difundido el calor en el sistema, lo que se nota especialmente en el valor máximo observado y su disminución cuanto más crece el coeficiente.]]&lt;br /&gt;
&lt;br /&gt;
Como se puede observar en la animación, fijado un tiempo, a medida que crece el valor del coeficiente de difusión el pico de la solución fundamental se va haciendo más cada vez más pequeño, es decir, a mayor coeficiente de difusión, menor es el tiempo que tarda en expandirse el calor. De hecho, podemos observar este hecho directamente de la expresión de la solución fundamental del calor. La solución de la ecuación del calor unidimensional en una barra de longitud \( L = 1 \), con coeficiente de difusión \( D \) y condición inicial dada por una función gaussiana \( f(x) = e^{-x^2} \), se expresa como una serie de Fourier:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,t) = \sum_{n=1}^{\infty} A_n e^{-D (n\pi)^2 t} \sin(n\pi x),&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[Solución que depende de D]- [Viendo la solución del apartado 3 me estoy dando cuenta que también depende de la longitud de la barra, si estuviésemos trabajando con el problema acotado podríamos ver como afectan estos dos parámetros al tiempo de difusión]&lt;br /&gt;
&lt;br /&gt;
Tomando el límite de D tendiendo a &amp;lt;math/&amp;gt; \infty &amp;lt;math/&amp;gt; vemos que u(x,t) tiende a 0, fijado un t determinado. Por tanto, podemos concluir que la solución del calor alcanzará el estado estacionario antes si su coeficiente del calor es mayor.&lt;br /&gt;
&lt;br /&gt;
= Códigos =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,2,3,4,5,6,7,8,9,10];&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Fundamental.gif';&lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for i = 1:length(DD)&lt;br /&gt;
    D = DD(i);&lt;br /&gt;
&lt;br /&gt;
    % Función fundamental de la ecuación del calor&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -1:0.01:1;         % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
    [X, T] = meshgrid(xx, tt); % Malla de coordenadas&lt;br /&gt;
    PHI_D = phi_D(X, T);   % Evaluación de la función&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    surf(X, T, PHI_D);&lt;br /&gt;
    shading flat&lt;br /&gt;
    shading interp&lt;br /&gt;
    colormap('jet')&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)$', 'Interpreter', 'latex');&lt;br /&gt;
    title(['Solución fundamental de la ecuación del calor, cuando D=', num2str(D)])&lt;br /&gt;
    axis([-1, 1, 0, 1, 0, 3])&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if i == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Convoluciones_teorica.gif|500px|thumb|right|Soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,10,20,30,40,50,60,70,80,90,100];&lt;br /&gt;
&lt;br /&gt;
% Función gaussiana&lt;br /&gt;
gaus = @(x) (exp(-x.^2));&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Convoluciones_teorica.gif'; &lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for h = 1:length(DD)&lt;br /&gt;
    D = DD(h);&lt;br /&gt;
&lt;br /&gt;
    % Funciones fundamentales y convolución&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
    convo = @(x,t) (exp(-x.^2./(4*D.*t+1))/sqrt(4*D.*t+1));&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -10:0.1:10;        % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
&lt;br /&gt;
    % Inicialización de la matriz de convolución&lt;br /&gt;
    conv = zeros(length(xx), length(tt));&lt;br /&gt;
&lt;br /&gt;
    % Cálculo de la convolución&lt;br /&gt;
    for j = 1:length(tt) &lt;br /&gt;
        auxt = tt(j);&lt;br /&gt;
        for i = 1:length(xx)&lt;br /&gt;
            auxx = xx(i);&lt;br /&gt;
            val_conv(i,j) = convo(auxx, auxt);&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    hold on;&lt;br /&gt;
    view(3);&lt;br /&gt;
    surf(xx, tt, val_conv.');&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)*N(x)$', 'Interpreter', 'latex');&lt;br /&gt;
    shading flat;&lt;br /&gt;
    shading interp;&lt;br /&gt;
    colormap('jet');&lt;br /&gt;
    title(['Soluciones en dominio no acotado, cuando D=', num2str(D)]);&lt;br /&gt;
    axis([-10, 10, 0, 1, 0, 1]);&lt;br /&gt;
    hold off;&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if h == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Referencias =&lt;br /&gt;
&lt;br /&gt;
* Sandro Salsa, Gianmaria Verzini. Partial Differential Equations in Action From Modelling to Theory ([https://link.springer.com/book/10.1007/978-3-031-21853-8 [1&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84930</id>
		<title>Ecuación del calor (ADMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84930"/>
				<updated>2025-03-18T22:16:39Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: /* Análisis de los errores */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor (Grupo ADMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | &lt;br /&gt;
*Ángel De Lucas Miranda, &lt;br /&gt;
*Daniel Rodríguez Calderón, &lt;br /&gt;
*Marcos Cabellos Hernández, &lt;br /&gt;
*Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
El desarrollo de la ecuación del calor se atribuye principalmente al matemático y físico francés Joseph Fourier, quien en 1822 publicó su obra ''Théorie analytique de la chaleur''. En este trabajo formuló una ecuación diferencial en derivadas parciales que describe la propagación del calor por difusión en un medio continuo. Su análisis no sólo permitió comprender mejor este fenómeno físico, sino que también promovió el desarrollo de las Series de Fourier, que fueron objeto de estudio en nuestro trabajo anterior. En esta ocasión, profundicemos en dos aspectos de este modelo.&lt;br /&gt;
&lt;br /&gt;
Desde un punto de vista físico, estas ecuaciones permiten la modelización de fenómenos como el calentamiento de materiales o la difusión de solutos en fluidos estacionarios, como ya hemos explorado en algunos ejercicios. Sin embargo, la influencia de la física es más profunda: de hecho, el coeficiente de difusión lleva su nombre por la interpretación física de su acción en el sistema. ¿Cuál es este efecto, y por qué se lo denota de esta forma?&lt;br /&gt;
&lt;br /&gt;
Al tiempo que exploramos este efecto, planteemos también el paso entre problemas de dominio acotado y los de no acotado. Parecería evidente que estos últimos se extiendan naturalmente con los anteriores, pero en el desarrollo teórico de clase se obtenían mediante soluciones autosimilares en vez de problemas de autofunciones. ¿Convergen las soluciones del sistema acotado a la del no acotado cuando el dominio crece lo suficiente? Y de ser así, ¿qué condiciones de frontera en una dimensión funcionan mejor?&lt;br /&gt;
&lt;br /&gt;
=Solución acotada vs Solución no acotada=&lt;br /&gt;
Demos por conocidos el uso de separación de variables para resolver problemas de autofunciones en caso acotado y el manejo de la solución fundamental junto con la convolución para el sistema no acotado. Para comparar todas las soluciones correspondientes, consideremos sistema &amp;lt;math&amp;gt; 1-&amp;lt;/math&amp;gt;dimensional, con una gaussiana &amp;lt;math&amp;gt; e^{-x^2} &amp;lt;/math&amp;gt; como condición inicial. La justificación de una curva así puede ser, en un experimento físico, el uso de un láser para calentar un punto de una tira fina de metal. Considerando que los fotones puedan desviarse como una distribución normal por el teorema central del límite, es un montaje experimental factible. Además, es una función continua y diferenciable, par y asintóticamente nula, buenas propiedades para un estado inicial del sistema. Pongamos ahora dos posibles condiciones en las fronteras.&lt;br /&gt;
&lt;br /&gt;
Si consideramos de Dirichlet, a una tira de longitud &amp;lt;math&amp;gt; 2a &amp;lt;/math&amp;gt; le colocaremos en los extremos un material que se mantenga siempre a la misma temperatura, pongamos que a una temperatura nula. El sistema resulta&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad  &amp;amp;\forall t &amp;gt; 0, x\in [-a,a],\\ &lt;br /&gt;
u(-a,t) = u(a,t) = 0 \quad  &amp;amp;\forall t &amp;gt; 0, \\ &lt;br /&gt;
u(x,0) = e^{-x^2} \quad  &amp;amp;\forall x\in [-a,a].&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La solución al resolver el problema de autofunciones viene dada por&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
u(x,t) = \sum_{n=1}^\infty A_{n} \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right) e^{-\dfrac{\pi^2}{a^2}\left(n - \frac{1}{2}\right)^2 t},&lt;br /&gt;
\quad \text{ donde } \quad&lt;br /&gt;
A_n = \frac{\int_{-a}^{a} u(x,0) \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}{\int_{-a}^{a} \cos^2\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Consideremos ahora condiciones de frontera Neumann, con un flujo nulo que físicamente viene de poner extremos aislantes. Para cierto &amp;lt;math&amp;gt; b &amp;gt; 0,&amp;lt;/math&amp;gt; y no necesariamente igual que con &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Consideraremos la ecuación del calor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad  &amp;amp;\forall t &amp;gt; 0 , x\in [-b,b],\\ &lt;br /&gt;
u_x(-b,t) = u_x(b,t) = 0 \quad  &amp;amp;\forall t &amp;gt; 0, \\ &lt;br /&gt;
u(x,0) = e^{-x^2} \quad &amp;amp;\forall x\in[-b,b].&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De nuevo podemos resolver el sistema, por ser homogéneo, mediante separación de variables, obteniendo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
u(x,t) = \sum_{m=0}^\infty B_{m} cos\left(\frac{m\pi}{b} x\right) e^{-\dfrac{m^2\pi^2}{b^2} t},\quad \text{ donde } \quad&lt;br /&gt;
B_m = \frac{\int_{-b}^{b} u(x,0) \cos\left(\frac{m\pi}{b} x\right)dx}{\int_{-b}^{b} \cos^2\left(\frac{m\pi}{b}x\right)dx}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un último detalle antes de proceder a los errores es la obtención simbólica de la solución no acotada, realizada a mano y mediante Maple.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad &amp;amp;\forall t&amp;gt;0, x\in \mathbb{R},\\  &lt;br /&gt;
u(x,0) = e^{-x^2} \quad &amp;amp;\forall x\in \mathbb{R}&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
\quad&lt;br /&gt;
\Longrightarrow&lt;br /&gt;
\quad&lt;br /&gt;
u(x,t) = \frac{1}{\sqrt{4\pi t}}e^{\frac{-x^2}{4t}} * e^{-x^2} = \frac{e^{\frac{-x^2}{4t+1}}}{\sqrt{4t+1}}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora que pasamos a los errores, es relevante indicar la naturaleza numérica de los cálculos y la acumulación de errores en estos. Con esto en mente, queremos comprobar cuán bien aproximan las soluciones del caso acotado Dirichlet y Neumann a la obtenida por la solución fundamental. Para ello, escojamos un tiempo máximo &amp;lt;math&amp;gt;t_{max} &amp;lt;/math&amp;gt; hasta el cuál tomaremos el error en norma &amp;lt;math&amp;gt; L^{\infty} &amp;lt;/math&amp;gt;. Queremos estudiar&lt;br /&gt;
&lt;br /&gt;
* El efecto de aumentar el rango de definición con &amp;lt;math&amp;gt; a,b &amp;lt;/math&amp;gt;.&lt;br /&gt;
* El efecto de aumentar el número de términos en las series de los sistemas acotados.&lt;br /&gt;
&lt;br /&gt;
=== Análisis de los errores ===&lt;br /&gt;
[[Archivo:GrupoADMR Calor Errores1.jpg|550px|thumb|right| Representación gráfica de las soluciones del problema acotado (&amp;lt;math&amp;gt;a = b = 20&amp;lt;/math&amp;gt;) y no acotado truncando las series de Fourier en su término &amp;lt;math&amp;gt;100&amp;lt;/math&amp;gt;, para un tiempo máximo de &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;; y de sus errores. Nótese el orden de magnitud de los errores -pequeño-, los picos generados por los errores numéricos dados por la fórmula del trapecio y la suavidad en la frontera dada por las condiciones en esta.]]&lt;br /&gt;
&lt;br /&gt;
Consideramos los parámetros, donde &amp;lt;math&amp;gt; n &amp;lt;/math&amp;gt; es el término de la serie de Fourier donde truncamos:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;math&amp;gt; a = b = 20, &amp;lt;/math&amp;gt;&lt;br /&gt;
*&amp;lt;math&amp;gt; t_{max} = 1, &amp;lt;/math&amp;gt;&lt;br /&gt;
*&amp;lt;math&amp;gt; n = 100. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, ampliaremos &amp;lt;math&amp;gt;a, b&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; dejando fijo &amp;lt;math&amp;gt;t_{max}&amp;lt;/math&amp;gt; y luego fijaremos &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; en vez del tiempo.&lt;br /&gt;
Podemos observar que al aumentar &amp;lt;math&amp;gt;a, b&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; el error entre las solucionnes acotadas y no acotada disminuye. Nótese que se estanca a partir de cierto &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;. De hecho, el error llega a aumentar a partir de ciertos &amp;lt;math&amp;gt; a,b &amp;lt;/math&amp;gt; si truncamos demasiado pronto o demasiado tarde por la aproximación del trapecio para particiones del espacio demasiado bastas -no observado por pericia en código final-.&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
| [[Archivo:GrupoADMR_Calor_Errores_MaxD.jpeg|250px|thumb|upright|]&lt;br /&gt;
| [[Archivo:GrupoADMR_Calor_Errores_MaxNe.jpeg|250px|thumb|upright|]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Al ampliar el tiempo con la &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; como los errores se concentran para tiempos pequeños, al hacer más grande &amp;lt;math&amp;gt;t_{max}&amp;lt;/math&amp;gt; los errores máximos no aumentan. En cambio, si tomamos el máximo error para diferentes tiempos vemos con suficiente precisión no hay diferencia pero que para truncamientos precoces Neumann tiene ligeramente menor error.&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
| [[Archivo:GrupoADMR_Calor_Errores_DNo.jpeg|250px|thumb|upright|]&lt;br /&gt;
| [[Archivo:GrupoADMR_Calor_Errores_NoNe.jpeg|250px|thumb|upright|]&lt;br /&gt;
| [[Archivo:GrupoADMR_Calor_Errores_DNe.jpeg|250px|thumb|upright|]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Coeficiente de difusión=&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Fundamental.gif|300px|thumb|right|Solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. La representación gráfica parte del tiempo inicial &amp;lt;math/&amp;gt; 0.01, &amp;lt;math/&amp;gt; esperando una delta de Dirac en el instante inicial. Nótese que en este tiempo, a mayor coeficiente de difusión más se ha difundido el calor en el sistema, lo que se nota especialmente en el valor máximo observado y su disminución cuanto más crece el coeficiente.]]&lt;br /&gt;
&lt;br /&gt;
Vamos a interpretar como influye exactamente el coeficiente de difusión en la solución de la ecuación del calor. Imaginemos por un segundo que tenemos varias barras (cada una de un material diferente) y queremos estudiar como se difunde el calor a través de cada una de ellas. Usando Matlab podemos calcular y representar fácilmente la solución del problema para diferentes valores del coeficiente de difusión, que denotaremos por &amp;lt;math/&amp;gt; D &amp;lt;math/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Fundamental.gif|400px|thumb|right|Solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. La representación gráfica parte del tiempo inicial &amp;lt;math/&amp;gt; 0.01, &amp;lt;math/&amp;gt; esperando una delta de Dirac en el instante inicial. Nótese que en este tiempo, a mayor coeficiente de difusión más se ha difundido el calor en el sistema, lo que se nota especialmente en el valor máximo observado y su disminución cuanto más crece el coeficiente.]]&lt;br /&gt;
&lt;br /&gt;
Como se puede observar en la animación, fijado un tiempo, a medida que crece el valor del coeficiente de difusión el pico de la solución fundamental se va haciendo más cada vez más pequeño, es decir, a mayor coeficiente de difusión, menor es el tiempo que tarda en expandirse el calor. De hecho, podemos observar este hecho directamente de la expresión de la solución fundamental del calor. La solución de la ecuación del calor unidimensional en una barra de longitud \( L = 1 \), con coeficiente de difusión \( D \) y condición inicial dada por una función gaussiana \( f(x) = e^{-x^2} \), se expresa como una serie de Fourier:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,t) = \sum_{n=1}^{\infty} A_n e^{-D (n\pi)^2 t} \sin(n\pi x),&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[Solución que depende de D]- [Viendo la solución del apartado 3 me estoy dando cuenta que también depende de la longitud de la barra, si estuviésemos trabajando con el problema acotado podríamos ver como afectan estos dos parámetros al tiempo de difusión]&lt;br /&gt;
&lt;br /&gt;
Tomando el límite de D tendiendo a &amp;lt;math/&amp;gt; \infty &amp;lt;math/&amp;gt; vemos que u(x,t) tiende a 0, fijado un t determinado. Por tanto, podemos concluir que la solución del calor alcanzará el estado estacionario antes si su coeficiente del calor es mayor.&lt;br /&gt;
&lt;br /&gt;
= Códigos =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,2,3,4,5,6,7,8,9,10];&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Fundamental.gif';&lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for i = 1:length(DD)&lt;br /&gt;
    D = DD(i);&lt;br /&gt;
&lt;br /&gt;
    % Función fundamental de la ecuación del calor&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -1:0.01:1;         % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
    [X, T] = meshgrid(xx, tt); % Malla de coordenadas&lt;br /&gt;
    PHI_D = phi_D(X, T);   % Evaluación de la función&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    surf(X, T, PHI_D);&lt;br /&gt;
    shading flat&lt;br /&gt;
    shading interp&lt;br /&gt;
    colormap('jet')&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)$', 'Interpreter', 'latex');&lt;br /&gt;
    title(['Solución fundamental de la ecuación del calor, cuando D=', num2str(D)])&lt;br /&gt;
    axis([-1, 1, 0, 1, 0, 3])&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if i == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Convoluciones_teorica.gif|500px|thumb|right|Soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,10,20,30,40,50,60,70,80,90,100];&lt;br /&gt;
&lt;br /&gt;
% Función gaussiana&lt;br /&gt;
gaus = @(x) (exp(-x.^2));&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Convoluciones_teorica.gif'; &lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for h = 1:length(DD)&lt;br /&gt;
    D = DD(h);&lt;br /&gt;
&lt;br /&gt;
    % Funciones fundamentales y convolución&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
    convo = @(x,t) (exp(-x.^2./(4*D.*t+1))/sqrt(4*D.*t+1));&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -10:0.1:10;        % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
&lt;br /&gt;
    % Inicialización de la matriz de convolución&lt;br /&gt;
    conv = zeros(length(xx), length(tt));&lt;br /&gt;
&lt;br /&gt;
    % Cálculo de la convolución&lt;br /&gt;
    for j = 1:length(tt) &lt;br /&gt;
        auxt = tt(j);&lt;br /&gt;
        for i = 1:length(xx)&lt;br /&gt;
            auxx = xx(i);&lt;br /&gt;
            val_conv(i,j) = convo(auxx, auxt);&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    hold on;&lt;br /&gt;
    view(3);&lt;br /&gt;
    surf(xx, tt, val_conv.');&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)*N(x)$', 'Interpreter', 'latex');&lt;br /&gt;
    shading flat;&lt;br /&gt;
    shading interp;&lt;br /&gt;
    colormap('jet');&lt;br /&gt;
    title(['Soluciones en dominio no acotado, cuando D=', num2str(D)]);&lt;br /&gt;
    axis([-10, 10, 0, 1, 0, 1]);&lt;br /&gt;
    hold off;&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if h == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Referencias =&lt;br /&gt;
&lt;br /&gt;
* Sandro Salsa, Gianmaria Verzini. Partial Differential Equations in Action From Modelling to Theory ([https://link.springer.com/book/10.1007/978-3-031-21853-8 [1&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84929</id>
		<title>Ecuación del calor (ADMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84929"/>
				<updated>2025-03-18T22:13:29Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: /* Análisis de los errores */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor (Grupo ADMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | &lt;br /&gt;
*Ángel De Lucas Miranda, &lt;br /&gt;
*Daniel Rodríguez Calderón, &lt;br /&gt;
*Marcos Cabellos Hernández, &lt;br /&gt;
*Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
El desarrollo de la ecuación del calor se atribuye principalmente al matemático y físico francés Joseph Fourier, quien en 1822 publicó su obra ''Théorie analytique de la chaleur''. En este trabajo formuló una ecuación diferencial en derivadas parciales que describe la propagación del calor por difusión en un medio continuo. Su análisis no sólo permitió comprender mejor este fenómeno físico, sino que también promovió el desarrollo de las Series de Fourier, que fueron objeto de estudio en nuestro trabajo anterior. En esta ocasión, profundicemos en dos aspectos de este modelo.&lt;br /&gt;
&lt;br /&gt;
Desde un punto de vista físico, estas ecuaciones permiten la modelización de fenómenos como el calentamiento de materiales o la difusión de solutos en fluidos estacionarios, como ya hemos explorado en algunos ejercicios. Sin embargo, la influencia de la física es más profunda: de hecho, el coeficiente de difusión lleva su nombre por la interpretación física de su acción en el sistema. ¿Cuál es este efecto, y por qué se lo denota de esta forma?&lt;br /&gt;
&lt;br /&gt;
Al tiempo que exploramos este efecto, planteemos también el paso entre problemas de dominio acotado y los de no acotado. Parecería evidente que estos últimos se extiendan naturalmente con los anteriores, pero en el desarrollo teórico de clase se obtenían mediante soluciones autosimilares en vez de problemas de autofunciones. ¿Convergen las soluciones del sistema acotado a la del no acotado cuando el dominio crece lo suficiente? Y de ser así, ¿qué condiciones de frontera en una dimensión funcionan mejor?&lt;br /&gt;
&lt;br /&gt;
=Solución acotada vs Solución no acotada=&lt;br /&gt;
Demos por conocidos el uso de separación de variables para resolver problemas de autofunciones en caso acotado y el manejo de la solución fundamental junto con la convolución para el sistema no acotado. Para comparar todas las soluciones correspondientes, consideremos sistema &amp;lt;math&amp;gt; 1-&amp;lt;/math&amp;gt;dimensional, con una gaussiana &amp;lt;math&amp;gt; e^{-x^2} &amp;lt;/math&amp;gt; como condición inicial. La justificación de una curva así puede ser, en un experimento físico, el uso de un láser para calentar un punto de una tira fina de metal. Considerando que los fotones puedan desviarse como una distribución normal por el teorema central del límite, es un montaje experimental factible. Además, es una función continua y diferenciable, par y asintóticamente nula, buenas propiedades para un estado inicial del sistema. Pongamos ahora dos posibles condiciones en las fronteras.&lt;br /&gt;
&lt;br /&gt;
Si consideramos de Dirichlet, a una tira de longitud &amp;lt;math&amp;gt; 2a &amp;lt;/math&amp;gt; le colocaremos en los extremos un material que se mantenga siempre a la misma temperatura, pongamos que a una temperatura nula. El sistema resulta&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad  &amp;amp;\forall t &amp;gt; 0, x\in [-a,a],\\ &lt;br /&gt;
u(-a,t) = u(a,t) = 0 \quad  &amp;amp;\forall t &amp;gt; 0, \\ &lt;br /&gt;
u(x,0) = e^{-x^2} \quad  &amp;amp;\forall x\in [-a,a].&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La solución al resolver el problema de autofunciones viene dada por&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
u(x,t) = \sum_{n=1}^\infty A_{n} \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right) e^{-\dfrac{\pi^2}{a^2}\left(n - \frac{1}{2}\right)^2 t},&lt;br /&gt;
\quad \text{ donde } \quad&lt;br /&gt;
A_n = \frac{\int_{-a}^{a} u(x,0) \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}{\int_{-a}^{a} \cos^2\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Consideremos ahora condiciones de frontera Neumann, con un flujo nulo que físicamente viene de poner extremos aislantes. Para cierto &amp;lt;math&amp;gt; b &amp;gt; 0,&amp;lt;/math&amp;gt; y no necesariamente igual que con &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Consideraremos la ecuación del calor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad  &amp;amp;\forall t &amp;gt; 0 , x\in [-b,b],\\ &lt;br /&gt;
u_x(-b,t) = u_x(b,t) = 0 \quad  &amp;amp;\forall t &amp;gt; 0, \\ &lt;br /&gt;
u(x,0) = e^{-x^2} \quad &amp;amp;\forall x\in[-b,b].&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De nuevo podemos resolver el sistema, por ser homogéneo, mediante separación de variables, obteniendo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
u(x,t) = \sum_{m=0}^\infty B_{m} cos\left(\frac{m\pi}{b} x\right) e^{-\dfrac{m^2\pi^2}{b^2} t},\quad \text{ donde } \quad&lt;br /&gt;
B_m = \frac{\int_{-b}^{b} u(x,0) \cos\left(\frac{m\pi}{b} x\right)dx}{\int_{-b}^{b} \cos^2\left(\frac{m\pi}{b}x\right)dx}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un último detalle antes de proceder a los errores es la obtención simbólica de la solución no acotada, realizada a mano y mediante Maple.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad &amp;amp;\forall t&amp;gt;0, x\in \mathbb{R},\\  &lt;br /&gt;
u(x,0) = e^{-x^2} \quad &amp;amp;\forall x\in \mathbb{R}&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
\quad&lt;br /&gt;
\Longrightarrow&lt;br /&gt;
\quad&lt;br /&gt;
u(x,t) = \frac{1}{\sqrt{4\pi t}}e^{\frac{-x^2}{4t}} * e^{-x^2} = \frac{e^{\frac{-x^2}{4t+1}}}{\sqrt{4t+1}}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora que pasamos a los errores, es relevante indicar la naturaleza numérica de los cálculos y la acumulación de errores en estos. Con esto en mente, queremos comprobar cuán bien aproximan las soluciones del caso acotado Dirichlet y Neumann a la obtenida por la solución fundamental. Para ello, escojamos un tiempo máximo &amp;lt;math&amp;gt;t_{max} &amp;lt;/math&amp;gt; hasta el cuál tomaremos el error en norma &amp;lt;math&amp;gt; L^{\infty} &amp;lt;/math&amp;gt;. Queremos estudiar&lt;br /&gt;
&lt;br /&gt;
* El efecto de aumentar el rango de definición con &amp;lt;math&amp;gt; a,b &amp;lt;/math&amp;gt;.&lt;br /&gt;
* El efecto de aumentar el número de términos en las series de los sistemas acotados.&lt;br /&gt;
&lt;br /&gt;
=== Análisis de los errores ===&lt;br /&gt;
[[Archivo:GrupoADMR Calor Errores1.jpg|550px|thumb|right| Representación gráfica de las soluciones del problema acotado (&amp;lt;math&amp;gt;a = b = 20&amp;lt;/math&amp;gt;) y no acotado truncando las series de Fourier en su término &amp;lt;math&amp;gt;100&amp;lt;/math&amp;gt;, para un tiempo máximo de &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;; y de sus errores. Nótese el orden de magnitud de los errores -pequeño-, los picos generados por los errores numéricos dados por la fórmula del trapecio y la suavidad en la frontera dada por las condiciones en esta.]]&lt;br /&gt;
&lt;br /&gt;
Consideramos los parámetros, donde &amp;lt;math&amp;gt; n &amp;lt;/math&amp;gt; es el término de la serie de Fourier donde truncamos:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;math&amp;gt; a = b = 20, &amp;lt;/math&amp;gt;&lt;br /&gt;
*&amp;lt;math&amp;gt; t_{max} = 1, &amp;lt;/math&amp;gt;&lt;br /&gt;
*&amp;lt;math&amp;gt; n = 100. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, ampliaremos &amp;lt;math&amp;gt;a, b&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; dejando fijo &amp;lt;math&amp;gt;t_{max}&amp;lt;/math&amp;gt; y luego fijaremos &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; en vez del tiempo.&lt;br /&gt;
Podemos observar que al aumentar &amp;lt;math&amp;gt;a, b&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; el error entre las solucionnes acotadas y no acotada disminuye. Nótese que se estanca a partir de cierto &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;. De hecho, el error llega a aumentar a partir de ciertos &amp;lt;math&amp;gt; a,b &amp;lt;/math&amp;gt; si truncamos demasiado pronto o demasiado tarde por la aproximación del trapecio para particiones del espacio demasiado bastas -no observado por pericia en código final-.&lt;br /&gt;
&lt;br /&gt;
Al ampliar el tiempo con la &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; como los errores se concentran para tiempos pequeños, al hacer más grande &amp;lt;math&amp;gt;t_{max}&amp;lt;/math&amp;gt; los errores máximos no aumentan. En cambio, si tomamos el máximo error para diferentes tiempos vemos con suficiente precisión no hay diferencia pero que para truncamientos precoces Neumann tiene ligeramente menor error.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GrupoADMR_Calor_Errores_MaxNe.jpeg|550px|thumb|right|Robed woman, seated, with sword on her lap|Philipp Veit, ''Germania'', 1834–36]]&lt;br /&gt;
[[Archivo:GrupoADMR_Calor_Errores_MaxNe.jpeg|thumb|upright|Robed woman, seated, with sword on her lap|Philipp Veit, ''Germania'', 1834–36]]&lt;br /&gt;
[[Archivo:GrupoADMR_Calor_Errores MaxNe.jpeg|thumb|upright|Robed woman, seated, with sword on her lap|Philipp Veit, ''Germania'', 1834–36]]&lt;br /&gt;
&lt;br /&gt;
=Coeficiente de difusión=&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Fundamental.gif|300px|thumb|right|Solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. La representación gráfica parte del tiempo inicial &amp;lt;math/&amp;gt; 0.01, &amp;lt;math/&amp;gt; esperando una delta de Dirac en el instante inicial. Nótese que en este tiempo, a mayor coeficiente de difusión más se ha difundido el calor en el sistema, lo que se nota especialmente en el valor máximo observado y su disminución cuanto más crece el coeficiente.]]&lt;br /&gt;
&lt;br /&gt;
Vamos a interpretar como influye exactamente el coeficiente de difusión en la solución de la ecuación del calor. Imaginemos por un segundo que tenemos varias barras (cada una de un material diferente) y queremos estudiar como se difunde el calor a través de cada una de ellas. Usando Matlab podemos calcular y representar fácilmente la solución del problema para diferentes valores del coeficiente de difusión, que denotaremos por &amp;lt;math/&amp;gt; D &amp;lt;math/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Fundamental.gif|400px|thumb|right|Solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. La representación gráfica parte del tiempo inicial &amp;lt;math/&amp;gt; 0.01, &amp;lt;math/&amp;gt; esperando una delta de Dirac en el instante inicial. Nótese que en este tiempo, a mayor coeficiente de difusión más se ha difundido el calor en el sistema, lo que se nota especialmente en el valor máximo observado y su disminución cuanto más crece el coeficiente.]]&lt;br /&gt;
&lt;br /&gt;
Como se puede observar en la animación, fijado un tiempo, a medida que crece el valor del coeficiente de difusión el pico de la solución fundamental se va haciendo más cada vez más pequeño, es decir, a mayor coeficiente de difusión, menor es el tiempo que tarda en expandirse el calor. De hecho, podemos observar este hecho directamente de la expresión de la solución fundamental del calor. La solución de la ecuación del calor unidimensional en una barra de longitud \( L = 1 \), con coeficiente de difusión \( D \) y condición inicial dada por una función gaussiana \( f(x) = e^{-x^2} \), se expresa como una serie de Fourier:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,t) = \sum_{n=1}^{\infty} A_n e^{-D (n\pi)^2 t} \sin(n\pi x),&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[Solución que depende de D]- [Viendo la solución del apartado 3 me estoy dando cuenta que también depende de la longitud de la barra, si estuviésemos trabajando con el problema acotado podríamos ver como afectan estos dos parámetros al tiempo de difusión]&lt;br /&gt;
&lt;br /&gt;
Tomando el límite de D tendiendo a &amp;lt;math/&amp;gt; \infty &amp;lt;math/&amp;gt; vemos que u(x,t) tiende a 0, fijado un t determinado. Por tanto, podemos concluir que la solución del calor alcanzará el estado estacionario antes si su coeficiente del calor es mayor.&lt;br /&gt;
&lt;br /&gt;
= Códigos =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,2,3,4,5,6,7,8,9,10];&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Fundamental.gif';&lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for i = 1:length(DD)&lt;br /&gt;
    D = DD(i);&lt;br /&gt;
&lt;br /&gt;
    % Función fundamental de la ecuación del calor&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -1:0.01:1;         % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
    [X, T] = meshgrid(xx, tt); % Malla de coordenadas&lt;br /&gt;
    PHI_D = phi_D(X, T);   % Evaluación de la función&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    surf(X, T, PHI_D);&lt;br /&gt;
    shading flat&lt;br /&gt;
    shading interp&lt;br /&gt;
    colormap('jet')&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)$', 'Interpreter', 'latex');&lt;br /&gt;
    title(['Solución fundamental de la ecuación del calor, cuando D=', num2str(D)])&lt;br /&gt;
    axis([-1, 1, 0, 1, 0, 3])&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if i == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Convoluciones_teorica.gif|500px|thumb|right|Soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,10,20,30,40,50,60,70,80,90,100];&lt;br /&gt;
&lt;br /&gt;
% Función gaussiana&lt;br /&gt;
gaus = @(x) (exp(-x.^2));&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Convoluciones_teorica.gif'; &lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for h = 1:length(DD)&lt;br /&gt;
    D = DD(h);&lt;br /&gt;
&lt;br /&gt;
    % Funciones fundamentales y convolución&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
    convo = @(x,t) (exp(-x.^2./(4*D.*t+1))/sqrt(4*D.*t+1));&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -10:0.1:10;        % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
&lt;br /&gt;
    % Inicialización de la matriz de convolución&lt;br /&gt;
    conv = zeros(length(xx), length(tt));&lt;br /&gt;
&lt;br /&gt;
    % Cálculo de la convolución&lt;br /&gt;
    for j = 1:length(tt) &lt;br /&gt;
        auxt = tt(j);&lt;br /&gt;
        for i = 1:length(xx)&lt;br /&gt;
            auxx = xx(i);&lt;br /&gt;
            val_conv(i,j) = convo(auxx, auxt);&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    hold on;&lt;br /&gt;
    view(3);&lt;br /&gt;
    surf(xx, tt, val_conv.');&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)*N(x)$', 'Interpreter', 'latex');&lt;br /&gt;
    shading flat;&lt;br /&gt;
    shading interp;&lt;br /&gt;
    colormap('jet');&lt;br /&gt;
    title(['Soluciones en dominio no acotado, cuando D=', num2str(D)]);&lt;br /&gt;
    axis([-10, 10, 0, 1, 0, 1]);&lt;br /&gt;
    hold off;&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if h == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Referencias =&lt;br /&gt;
&lt;br /&gt;
* Sandro Salsa, Gianmaria Verzini. Partial Differential Equations in Action From Modelling to Theory ([https://link.springer.com/book/10.1007/978-3-031-21853-8 [1&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84927</id>
		<title>Ecuación del calor (ADMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84927"/>
				<updated>2025-03-18T22:12:01Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: /* Análisis de los errores */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor (Grupo ADMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | &lt;br /&gt;
*Ángel De Lucas Miranda, &lt;br /&gt;
*Daniel Rodríguez Calderón, &lt;br /&gt;
*Marcos Cabellos Hernández, &lt;br /&gt;
*Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
El desarrollo de la ecuación del calor se atribuye principalmente al matemático y físico francés Joseph Fourier, quien en 1822 publicó su obra ''Théorie analytique de la chaleur''. En este trabajo formuló una ecuación diferencial en derivadas parciales que describe la propagación del calor por difusión en un medio continuo. Su análisis no sólo permitió comprender mejor este fenómeno físico, sino que también promovió el desarrollo de las Series de Fourier, que fueron objeto de estudio en nuestro trabajo anterior. En esta ocasión, profundicemos en dos aspectos de este modelo.&lt;br /&gt;
&lt;br /&gt;
Desde un punto de vista físico, estas ecuaciones permiten la modelización de fenómenos como el calentamiento de materiales o la difusión de solutos en fluidos estacionarios, como ya hemos explorado en algunos ejercicios. Sin embargo, la influencia de la física es más profunda: de hecho, el coeficiente de difusión lleva su nombre por la interpretación física de su acción en el sistema. ¿Cuál es este efecto, y por qué se lo denota de esta forma?&lt;br /&gt;
&lt;br /&gt;
Al tiempo que exploramos este efecto, planteemos también el paso entre problemas de dominio acotado y los de no acotado. Parecería evidente que estos últimos se extiendan naturalmente con los anteriores, pero en el desarrollo teórico de clase se obtenían mediante soluciones autosimilares en vez de problemas de autofunciones. ¿Convergen las soluciones del sistema acotado a la del no acotado cuando el dominio crece lo suficiente? Y de ser así, ¿qué condiciones de frontera en una dimensión funcionan mejor?&lt;br /&gt;
&lt;br /&gt;
=Solución acotada vs Solución no acotada=&lt;br /&gt;
Demos por conocidos el uso de separación de variables para resolver problemas de autofunciones en caso acotado y el manejo de la solución fundamental junto con la convolución para el sistema no acotado. Para comparar todas las soluciones correspondientes, consideremos sistema &amp;lt;math&amp;gt; 1-&amp;lt;/math&amp;gt;dimensional, con una gaussiana &amp;lt;math&amp;gt; e^{-x^2} &amp;lt;/math&amp;gt; como condición inicial. La justificación de una curva así puede ser, en un experimento físico, el uso de un láser para calentar un punto de una tira fina de metal. Considerando que los fotones puedan desviarse como una distribución normal por el teorema central del límite, es un montaje experimental factible. Además, es una función continua y diferenciable, par y asintóticamente nula, buenas propiedades para un estado inicial del sistema. Pongamos ahora dos posibles condiciones en las fronteras.&lt;br /&gt;
&lt;br /&gt;
Si consideramos de Dirichlet, a una tira de longitud &amp;lt;math&amp;gt; 2a &amp;lt;/math&amp;gt; le colocaremos en los extremos un material que se mantenga siempre a la misma temperatura, pongamos que a una temperatura nula. El sistema resulta&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad  &amp;amp;\forall t &amp;gt; 0, x\in [-a,a],\\ &lt;br /&gt;
u(-a,t) = u(a,t) = 0 \quad  &amp;amp;\forall t &amp;gt; 0, \\ &lt;br /&gt;
u(x,0) = e^{-x^2} \quad  &amp;amp;\forall x\in [-a,a].&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La solución al resolver el problema de autofunciones viene dada por&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
u(x,t) = \sum_{n=1}^\infty A_{n} \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right) e^{-\dfrac{\pi^2}{a^2}\left(n - \frac{1}{2}\right)^2 t},&lt;br /&gt;
\quad \text{ donde } \quad&lt;br /&gt;
A_n = \frac{\int_{-a}^{a} u(x,0) \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}{\int_{-a}^{a} \cos^2\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Consideremos ahora condiciones de frontera Neumann, con un flujo nulo que físicamente viene de poner extremos aislantes. Para cierto &amp;lt;math&amp;gt; b &amp;gt; 0,&amp;lt;/math&amp;gt; y no necesariamente igual que con &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Consideraremos la ecuación del calor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad  &amp;amp;\forall t &amp;gt; 0 , x\in [-b,b],\\ &lt;br /&gt;
u_x(-b,t) = u_x(b,t) = 0 \quad  &amp;amp;\forall t &amp;gt; 0, \\ &lt;br /&gt;
u(x,0) = e^{-x^2} \quad &amp;amp;\forall x\in[-b,b].&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De nuevo podemos resolver el sistema, por ser homogéneo, mediante separación de variables, obteniendo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
u(x,t) = \sum_{m=0}^\infty B_{m} cos\left(\frac{m\pi}{b} x\right) e^{-\dfrac{m^2\pi^2}{b^2} t},\quad \text{ donde } \quad&lt;br /&gt;
B_m = \frac{\int_{-b}^{b} u(x,0) \cos\left(\frac{m\pi}{b} x\right)dx}{\int_{-b}^{b} \cos^2\left(\frac{m\pi}{b}x\right)dx}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un último detalle antes de proceder a los errores es la obtención simbólica de la solución no acotada, realizada a mano y mediante Maple.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad &amp;amp;\forall t&amp;gt;0, x\in \mathbb{R},\\  &lt;br /&gt;
u(x,0) = e^{-x^2} \quad &amp;amp;\forall x\in \mathbb{R}&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
\quad&lt;br /&gt;
\Longrightarrow&lt;br /&gt;
\quad&lt;br /&gt;
u(x,t) = \frac{1}{\sqrt{4\pi t}}e^{\frac{-x^2}{4t}} * e^{-x^2} = \frac{e^{\frac{-x^2}{4t+1}}}{\sqrt{4t+1}}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora que pasamos a los errores, es relevante indicar la naturaleza numérica de los cálculos y la acumulación de errores en estos. Con esto en mente, queremos comprobar cuán bien aproximan las soluciones del caso acotado Dirichlet y Neumann a la obtenida por la solución fundamental. Para ello, escojamos un tiempo máximo &amp;lt;math&amp;gt;t_{max} &amp;lt;/math&amp;gt; hasta el cuál tomaremos el error en norma &amp;lt;math&amp;gt; L^{\infty} &amp;lt;/math&amp;gt;. Queremos estudiar&lt;br /&gt;
&lt;br /&gt;
* El efecto de aumentar el rango de definición con &amp;lt;math&amp;gt; a,b &amp;lt;/math&amp;gt;.&lt;br /&gt;
* El efecto de aumentar el número de términos en las series de los sistemas acotados.&lt;br /&gt;
&lt;br /&gt;
=== Análisis de los errores ===&lt;br /&gt;
[[Archivo:GrupoADMR Calor Errores1.jpg|550px|thumb|right| Representación gráfica de las soluciones del problema acotado (&amp;lt;math&amp;gt;a = b = 20&amp;lt;/math&amp;gt;) y no acotado truncando las series de Fourier en su término &amp;lt;math&amp;gt;100&amp;lt;/math&amp;gt;, para un tiempo máximo de &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;; y de sus errores. Nótese el orden de magnitud de los errores -pequeño-, los picos generados por los errores numéricos dados por la fórmula del trapecio y la suavidad en la frontera dada por las condiciones en esta.]]&lt;br /&gt;
&lt;br /&gt;
Consideramos los parámetros, donde &amp;lt;math&amp;gt; n &amp;lt;/math&amp;gt; es el término de la serie de Fourier donde truncamos:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;math&amp;gt; a = b = 20, &amp;lt;/math&amp;gt;&lt;br /&gt;
*&amp;lt;math&amp;gt; t_{max} = 1, &amp;lt;/math&amp;gt;&lt;br /&gt;
*&amp;lt;math&amp;gt; n = 100. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, ampliaremos &amp;lt;math&amp;gt;a, b&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; dejando fijo &amp;lt;math&amp;gt;t_{max}&amp;lt;/math&amp;gt; y luego fijaremos &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; en vez del tiempo.&lt;br /&gt;
Podemos observar que al aumentar &amp;lt;math&amp;gt;a, b&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; el error entre las solucionnes acotadas y no acotada disminuye. Nótese que se estanca a partir de cierto &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;. De hecho, el error llega a aumentar a partir de ciertos &amp;lt;math&amp;gt; a,b &amp;lt;/math&amp;gt; si truncamos demasiado pronto o demasiado tarde por la aproximación del trapecio para particiones del espacio demasiado bastas -no observado por pericia en código final-.&lt;br /&gt;
&lt;br /&gt;
Al ampliar el tiempo con la &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; como los errores se concentran para tiempos pequeños, al hacer más grande &amp;lt;math&amp;gt;t_{max}&amp;lt;/math&amp;gt; los errores máximos no aumentan. En cambio, si tomamos el máximo error para diferentes tiempos vemos con suficiente precisión no hay diferencia pero que para truncamientos precoces Neumann tiene ligeramente menor error.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GrupoADMR_Calor_Errores_MaxNe.jpg|550px|thumb|right|Robed woman, seated, with sword on her lap|Philipp Veit, ''Germania'', 1834–36]]&lt;br /&gt;
[[Archivo:GrupoADMR_Calor_Errores_MaxNe.jpg|thumb|upright|Robed woman, seated, with sword on her lap|Philipp Veit, ''Germania'', 1834–36]]&lt;br /&gt;
[[Archivo:GrupoADMR_Calor_Errores MaxNe.jpg|thumb|upright|Robed woman, seated, with sword on her lap|Philipp Veit, ''Germania'', 1834–36]]&lt;br /&gt;
&lt;br /&gt;
=Coeficiente de difusión=&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Fundamental.gif|300px|thumb|right|Solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. La representación gráfica parte del tiempo inicial &amp;lt;math/&amp;gt; 0.01, &amp;lt;math/&amp;gt; esperando una delta de Dirac en el instante inicial. Nótese que en este tiempo, a mayor coeficiente de difusión más se ha difundido el calor en el sistema, lo que se nota especialmente en el valor máximo observado y su disminución cuanto más crece el coeficiente.]]&lt;br /&gt;
&lt;br /&gt;
Vamos a interpretar como influye exactamente el coeficiente de difusión en la solución de la ecuación del calor. Imaginemos por un segundo que tenemos varias barras (cada una de un material diferente) y queremos estudiar como se difunde el calor a través de cada una de ellas. Usando Matlab podemos calcular y representar fácilmente la solución del problema para diferentes valores del coeficiente de difusión, que denotaremos por &amp;lt;math/&amp;gt; D &amp;lt;math/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Fundamental.gif|400px|thumb|right|Solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. La representación gráfica parte del tiempo inicial &amp;lt;math/&amp;gt; 0.01, &amp;lt;math/&amp;gt; esperando una delta de Dirac en el instante inicial. Nótese que en este tiempo, a mayor coeficiente de difusión más se ha difundido el calor en el sistema, lo que se nota especialmente en el valor máximo observado y su disminución cuanto más crece el coeficiente.]]&lt;br /&gt;
&lt;br /&gt;
Como se puede observar en la animación, fijado un tiempo, a medida que crece el valor del coeficiente de difusión el pico de la solución fundamental se va haciendo más cada vez más pequeño, es decir, a mayor coeficiente de difusión, menor es el tiempo que tarda en expandirse el calor. De hecho, podemos observar este hecho directamente de la expresión de la solución fundamental del calor. La solución de la ecuación del calor unidimensional en una barra de longitud \( L = 1 \), con coeficiente de difusión \( D \) y condición inicial dada por una función gaussiana \( f(x) = e^{-x^2} \), se expresa como una serie de Fourier:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,t) = \sum_{n=1}^{\infty} A_n e^{-D (n\pi)^2 t} \sin(n\pi x),&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[Solución que depende de D]- [Viendo la solución del apartado 3 me estoy dando cuenta que también depende de la longitud de la barra, si estuviésemos trabajando con el problema acotado podríamos ver como afectan estos dos parámetros al tiempo de difusión]&lt;br /&gt;
&lt;br /&gt;
Tomando el límite de D tendiendo a &amp;lt;math/&amp;gt; \infty &amp;lt;math/&amp;gt; vemos que u(x,t) tiende a 0, fijado un t determinado. Por tanto, podemos concluir que la solución del calor alcanzará el estado estacionario antes si su coeficiente del calor es mayor.&lt;br /&gt;
&lt;br /&gt;
= Códigos =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,2,3,4,5,6,7,8,9,10];&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Fundamental.gif';&lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for i = 1:length(DD)&lt;br /&gt;
    D = DD(i);&lt;br /&gt;
&lt;br /&gt;
    % Función fundamental de la ecuación del calor&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -1:0.01:1;         % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
    [X, T] = meshgrid(xx, tt); % Malla de coordenadas&lt;br /&gt;
    PHI_D = phi_D(X, T);   % Evaluación de la función&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    surf(X, T, PHI_D);&lt;br /&gt;
    shading flat&lt;br /&gt;
    shading interp&lt;br /&gt;
    colormap('jet')&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)$', 'Interpreter', 'latex');&lt;br /&gt;
    title(['Solución fundamental de la ecuación del calor, cuando D=', num2str(D)])&lt;br /&gt;
    axis([-1, 1, 0, 1, 0, 3])&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if i == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Convoluciones_teorica.gif|500px|thumb|right|Soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,10,20,30,40,50,60,70,80,90,100];&lt;br /&gt;
&lt;br /&gt;
% Función gaussiana&lt;br /&gt;
gaus = @(x) (exp(-x.^2));&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Convoluciones_teorica.gif'; &lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for h = 1:length(DD)&lt;br /&gt;
    D = DD(h);&lt;br /&gt;
&lt;br /&gt;
    % Funciones fundamentales y convolución&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
    convo = @(x,t) (exp(-x.^2./(4*D.*t+1))/sqrt(4*D.*t+1));&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -10:0.1:10;        % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
&lt;br /&gt;
    % Inicialización de la matriz de convolución&lt;br /&gt;
    conv = zeros(length(xx), length(tt));&lt;br /&gt;
&lt;br /&gt;
    % Cálculo de la convolución&lt;br /&gt;
    for j = 1:length(tt) &lt;br /&gt;
        auxt = tt(j);&lt;br /&gt;
        for i = 1:length(xx)&lt;br /&gt;
            auxx = xx(i);&lt;br /&gt;
            val_conv(i,j) = convo(auxx, auxt);&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    hold on;&lt;br /&gt;
    view(3);&lt;br /&gt;
    surf(xx, tt, val_conv.');&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)*N(x)$', 'Interpreter', 'latex');&lt;br /&gt;
    shading flat;&lt;br /&gt;
    shading interp;&lt;br /&gt;
    colormap('jet');&lt;br /&gt;
    title(['Soluciones en dominio no acotado, cuando D=', num2str(D)]);&lt;br /&gt;
    axis([-10, 10, 0, 1, 0, 1]);&lt;br /&gt;
    hold off;&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if h == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Referencias =&lt;br /&gt;
&lt;br /&gt;
* Sandro Salsa, Gianmaria Verzini. Partial Differential Equations in Action From Modelling to Theory ([https://link.springer.com/book/10.1007/978-3-031-21853-8 [1&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84926</id>
		<title>Ecuación del calor (ADMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84926"/>
				<updated>2025-03-18T22:08:25Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: /* Análisis de los errores */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor (Grupo ADMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | &lt;br /&gt;
*Ángel De Lucas Miranda, &lt;br /&gt;
*Daniel Rodríguez Calderón, &lt;br /&gt;
*Marcos Cabellos Hernández, &lt;br /&gt;
*Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
El desarrollo de la ecuación del calor se atribuye principalmente al matemático y físico francés Joseph Fourier, quien en 1822 publicó su obra ''Théorie analytique de la chaleur''. En este trabajo formuló una ecuación diferencial en derivadas parciales que describe la propagación del calor por difusión en un medio continuo. Su análisis no sólo permitió comprender mejor este fenómeno físico, sino que también promovió el desarrollo de las Series de Fourier, que fueron objeto de estudio en nuestro trabajo anterior. En esta ocasión, profundicemos en dos aspectos de este modelo.&lt;br /&gt;
&lt;br /&gt;
Desde un punto de vista físico, estas ecuaciones permiten la modelización de fenómenos como el calentamiento de materiales o la difusión de solutos en fluidos estacionarios, como ya hemos explorado en algunos ejercicios. Sin embargo, la influencia de la física es más profunda: de hecho, el coeficiente de difusión lleva su nombre por la interpretación física de su acción en el sistema. ¿Cuál es este efecto, y por qué se lo denota de esta forma?&lt;br /&gt;
&lt;br /&gt;
Al tiempo que exploramos este efecto, planteemos también el paso entre problemas de dominio acotado y los de no acotado. Parecería evidente que estos últimos se extiendan naturalmente con los anteriores, pero en el desarrollo teórico de clase se obtenían mediante soluciones autosimilares en vez de problemas de autofunciones. ¿Convergen las soluciones del sistema acotado a la del no acotado cuando el dominio crece lo suficiente? Y de ser así, ¿qué condiciones de frontera en una dimensión funcionan mejor?&lt;br /&gt;
&lt;br /&gt;
=Solución acotada vs Solución no acotada=&lt;br /&gt;
Demos por conocidos el uso de separación de variables para resolver problemas de autofunciones en caso acotado y el manejo de la solución fundamental junto con la convolución para el sistema no acotado. Para comparar todas las soluciones correspondientes, consideremos sistema &amp;lt;math&amp;gt; 1-&amp;lt;/math&amp;gt;dimensional, con una gaussiana &amp;lt;math&amp;gt; e^{-x^2} &amp;lt;/math&amp;gt; como condición inicial. La justificación de una curva así puede ser, en un experimento físico, el uso de un láser para calentar un punto de una tira fina de metal. Considerando que los fotones puedan desviarse como una distribución normal por el teorema central del límite, es un montaje experimental factible. Además, es una función continua y diferenciable, par y asintóticamente nula, buenas propiedades para un estado inicial del sistema. Pongamos ahora dos posibles condiciones en las fronteras.&lt;br /&gt;
&lt;br /&gt;
Si consideramos de Dirichlet, a una tira de longitud &amp;lt;math&amp;gt; 2a &amp;lt;/math&amp;gt; le colocaremos en los extremos un material que se mantenga siempre a la misma temperatura, pongamos que a una temperatura nula. El sistema resulta&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad  &amp;amp;\forall t &amp;gt; 0, x\in [-a,a],\\ &lt;br /&gt;
u(-a,t) = u(a,t) = 0 \quad  &amp;amp;\forall t &amp;gt; 0, \\ &lt;br /&gt;
u(x,0) = e^{-x^2} \quad  &amp;amp;\forall x\in [-a,a].&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La solución al resolver el problema de autofunciones viene dada por&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
u(x,t) = \sum_{n=1}^\infty A_{n} \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right) e^{-\dfrac{\pi^2}{a^2}\left(n - \frac{1}{2}\right)^2 t},&lt;br /&gt;
\quad \text{ donde } \quad&lt;br /&gt;
A_n = \frac{\int_{-a}^{a} u(x,0) \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}{\int_{-a}^{a} \cos^2\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Consideremos ahora condiciones de frontera Neumann, con un flujo nulo que físicamente viene de poner extremos aislantes. Para cierto &amp;lt;math&amp;gt; b &amp;gt; 0,&amp;lt;/math&amp;gt; y no necesariamente igual que con &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Consideraremos la ecuación del calor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad  &amp;amp;\forall t &amp;gt; 0 , x\in [-b,b],\\ &lt;br /&gt;
u_x(-b,t) = u_x(b,t) = 0 \quad  &amp;amp;\forall t &amp;gt; 0, \\ &lt;br /&gt;
u(x,0) = e^{-x^2} \quad &amp;amp;\forall x\in[-b,b].&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De nuevo podemos resolver el sistema, por ser homogéneo, mediante separación de variables, obteniendo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
u(x,t) = \sum_{m=0}^\infty B_{m} cos\left(\frac{m\pi}{b} x\right) e^{-\dfrac{m^2\pi^2}{b^2} t},\quad \text{ donde } \quad&lt;br /&gt;
B_m = \frac{\int_{-b}^{b} u(x,0) \cos\left(\frac{m\pi}{b} x\right)dx}{\int_{-b}^{b} \cos^2\left(\frac{m\pi}{b}x\right)dx}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un último detalle antes de proceder a los errores es la obtención simbólica de la solución no acotada, realizada a mano y mediante Maple.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad &amp;amp;\forall t&amp;gt;0, x\in \mathbb{R},\\  &lt;br /&gt;
u(x,0) = e^{-x^2} \quad &amp;amp;\forall x\in \mathbb{R}&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
\quad&lt;br /&gt;
\Longrightarrow&lt;br /&gt;
\quad&lt;br /&gt;
u(x,t) = \frac{1}{\sqrt{4\pi t}}e^{\frac{-x^2}{4t}} * e^{-x^2} = \frac{e^{\frac{-x^2}{4t+1}}}{\sqrt{4t+1}}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora que pasamos a los errores, es relevante indicar la naturaleza numérica de los cálculos y la acumulación de errores en estos. Con esto en mente, queremos comprobar cuán bien aproximan las soluciones del caso acotado Dirichlet y Neumann a la obtenida por la solución fundamental. Para ello, escojamos un tiempo máximo &amp;lt;math&amp;gt;t_{max} &amp;lt;/math&amp;gt; hasta el cuál tomaremos el error en norma &amp;lt;math&amp;gt; L^{\infty} &amp;lt;/math&amp;gt;. Queremos estudiar&lt;br /&gt;
&lt;br /&gt;
* El efecto de aumentar el rango de definición con &amp;lt;math&amp;gt; a,b &amp;lt;/math&amp;gt;.&lt;br /&gt;
* El efecto de aumentar el número de términos en las series de los sistemas acotados.&lt;br /&gt;
&lt;br /&gt;
=== Análisis de los errores ===&lt;br /&gt;
[[Archivo:GrupoADMR Calor Errores1.jpg|550px|thumb|right| Representación gráfica de las soluciones del problema acotado (&amp;lt;math&amp;gt;a = b = 20&amp;lt;/math&amp;gt;) y no acotado truncando las series de Fourier en su término &amp;lt;math&amp;gt;100&amp;lt;/math&amp;gt;, para un tiempo máximo de &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;; y de sus errores. Nótese el orden de magnitud de los errores -pequeño-, los picos generados por los errores numéricos dados por la fórmula del trapecio y la suavidad en la frontera dada por las condiciones en esta.]]&lt;br /&gt;
&lt;br /&gt;
Consideramos los parámetros, donde &amp;lt;math&amp;gt; n &amp;lt;/math&amp;gt; es el término de la serie de Fourier donde truncamos:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;math&amp;gt; a = b = 20, &amp;lt;/math&amp;gt;&lt;br /&gt;
*&amp;lt;math&amp;gt; t_{max} = 1, &amp;lt;/math&amp;gt;&lt;br /&gt;
*&amp;lt;math&amp;gt; n = 100. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, ampliaremos &amp;lt;math&amp;gt;a, b&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; dejando fijo &amp;lt;math&amp;gt;t_{max}&amp;lt;/math&amp;gt; y luego fijaremos &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; en vez del tiempo.&lt;br /&gt;
Podemos observar que al aumentar &amp;lt;math&amp;gt;a, b&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; el error entre las solucionnes acotadas y no acotada disminuye. Nótese que se estanca a partir de cierto &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;. De hecho, el error llega a aumentar a partir de ciertos &amp;lt;math&amp;gt; a,b &amp;lt;/math&amp;gt; si truncamos demasiado pronto o demasiado tarde por la aproximación del trapecio para particiones del espacio demasiado bastas -no observado por pericia en código final-.&lt;br /&gt;
&lt;br /&gt;
Al ampliar el tiempo con la &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; como los errores se concentran para tiempos pequeños, al hacer más grande &amp;lt;math&amp;gt;t_{max}&amp;lt;/math&amp;gt; los errores máximos no aumentan. En cambio, si tomamos el máximo error para diferentes tiempos vemos con suficiente precisión no hay diferencia pero que para truncamientos precoces Neumann tiene ligeramente menor error.&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
| [[Archivo:GrupoADMR Calor Errores MaxNe.jpg|thumb|alt=Robed woman, seated, with sword on her lap|Philipp Veit, ''Germania'', 1834–36]]&lt;br /&gt;
| [[Archivo:GrupoADMR Calor Errores MaxNe.jpg|thumb|alt=Robed woman, seated, with sword on her lap|Philipp Veit, ''Germania'', 1834–36]]&lt;br /&gt;
| [[Archivo:GrupoADMR Calor Errores MaxNe.jpg|thumb|alt=Robed woman, seated, with sword on her lap|Philipp Veit, ''Germania'', 1834–36]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Coeficiente de difusión=&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Fundamental.gif|300px|thumb|right|Solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. La representación gráfica parte del tiempo inicial &amp;lt;math/&amp;gt; 0.01, &amp;lt;math/&amp;gt; esperando una delta de Dirac en el instante inicial. Nótese que en este tiempo, a mayor coeficiente de difusión más se ha difundido el calor en el sistema, lo que se nota especialmente en el valor máximo observado y su disminución cuanto más crece el coeficiente.]]&lt;br /&gt;
&lt;br /&gt;
Vamos a interpretar como influye exactamente el coeficiente de difusión en la solución de la ecuación del calor. Imaginemos por un segundo que tenemos varias barras (cada una de un material diferente) y queremos estudiar como se difunde el calor a través de cada una de ellas. Usando Matlab podemos calcular y representar fácilmente la solución del problema para diferentes valores del coeficiente de difusión, que denotaremos por &amp;lt;math/&amp;gt; D &amp;lt;math/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Fundamental.gif|400px|thumb|right|Solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. La representación gráfica parte del tiempo inicial &amp;lt;math/&amp;gt; 0.01, &amp;lt;math/&amp;gt; esperando una delta de Dirac en el instante inicial. Nótese que en este tiempo, a mayor coeficiente de difusión más se ha difundido el calor en el sistema, lo que se nota especialmente en el valor máximo observado y su disminución cuanto más crece el coeficiente.]]&lt;br /&gt;
&lt;br /&gt;
Como se puede observar en la animación, fijado un tiempo, a medida que crece el valor del coeficiente de difusión el pico de la solución fundamental se va haciendo más cada vez más pequeño, es decir, a mayor coeficiente de difusión, menor es el tiempo que tarda en expandirse el calor. De hecho, podemos observar este hecho directamente de la expresión de la solución fundamental del calor. La solución de la ecuación del calor unidimensional en una barra de longitud \( L = 1 \), con coeficiente de difusión \( D \) y condición inicial dada por una función gaussiana \( f(x) = e^{-x^2} \), se expresa como una serie de Fourier:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,t) = \sum_{n=1}^{\infty} A_n e^{-D (n\pi)^2 t} \sin(n\pi x),&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[Solución que depende de D]- [Viendo la solución del apartado 3 me estoy dando cuenta que también depende de la longitud de la barra, si estuviésemos trabajando con el problema acotado podríamos ver como afectan estos dos parámetros al tiempo de difusión]&lt;br /&gt;
&lt;br /&gt;
Tomando el límite de D tendiendo a &amp;lt;math/&amp;gt; \infty &amp;lt;math/&amp;gt; vemos que u(x,t) tiende a 0, fijado un t determinado. Por tanto, podemos concluir que la solución del calor alcanzará el estado estacionario antes si su coeficiente del calor es mayor.&lt;br /&gt;
&lt;br /&gt;
= Códigos =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,2,3,4,5,6,7,8,9,10];&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Fundamental.gif';&lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for i = 1:length(DD)&lt;br /&gt;
    D = DD(i);&lt;br /&gt;
&lt;br /&gt;
    % Función fundamental de la ecuación del calor&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -1:0.01:1;         % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
    [X, T] = meshgrid(xx, tt); % Malla de coordenadas&lt;br /&gt;
    PHI_D = phi_D(X, T);   % Evaluación de la función&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    surf(X, T, PHI_D);&lt;br /&gt;
    shading flat&lt;br /&gt;
    shading interp&lt;br /&gt;
    colormap('jet')&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)$', 'Interpreter', 'latex');&lt;br /&gt;
    title(['Solución fundamental de la ecuación del calor, cuando D=', num2str(D)])&lt;br /&gt;
    axis([-1, 1, 0, 1, 0, 3])&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if i == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Convoluciones_teorica.gif|500px|thumb|right|Soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,10,20,30,40,50,60,70,80,90,100];&lt;br /&gt;
&lt;br /&gt;
% Función gaussiana&lt;br /&gt;
gaus = @(x) (exp(-x.^2));&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Convoluciones_teorica.gif'; &lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for h = 1:length(DD)&lt;br /&gt;
    D = DD(h);&lt;br /&gt;
&lt;br /&gt;
    % Funciones fundamentales y convolución&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
    convo = @(x,t) (exp(-x.^2./(4*D.*t+1))/sqrt(4*D.*t+1));&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -10:0.1:10;        % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
&lt;br /&gt;
    % Inicialización de la matriz de convolución&lt;br /&gt;
    conv = zeros(length(xx), length(tt));&lt;br /&gt;
&lt;br /&gt;
    % Cálculo de la convolución&lt;br /&gt;
    for j = 1:length(tt) &lt;br /&gt;
        auxt = tt(j);&lt;br /&gt;
        for i = 1:length(xx)&lt;br /&gt;
            auxx = xx(i);&lt;br /&gt;
            val_conv(i,j) = convo(auxx, auxt);&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    hold on;&lt;br /&gt;
    view(3);&lt;br /&gt;
    surf(xx, tt, val_conv.');&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)*N(x)$', 'Interpreter', 'latex');&lt;br /&gt;
    shading flat;&lt;br /&gt;
    shading interp;&lt;br /&gt;
    colormap('jet');&lt;br /&gt;
    title(['Soluciones en dominio no acotado, cuando D=', num2str(D)]);&lt;br /&gt;
    axis([-10, 10, 0, 1, 0, 1]);&lt;br /&gt;
    hold off;&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if h == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Referencias =&lt;br /&gt;
&lt;br /&gt;
* Sandro Salsa, Gianmaria Verzini. Partial Differential Equations in Action From Modelling to Theory ([https://link.springer.com/book/10.1007/978-3-031-21853-8 [1&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:GrupoADMR_Calor_Errores_DNo.jpeg&amp;diff=84914</id>
		<title>Archivo:GrupoADMR Calor Errores DNo.jpeg</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:GrupoADMR_Calor_Errores_DNo.jpeg&amp;diff=84914"/>
				<updated>2025-03-18T21:35:26Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:GrupoADMR_Calor_Errores_NoNe.jpeg&amp;diff=84913</id>
		<title>Archivo:GrupoADMR Calor Errores NoNe.jpeg</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:GrupoADMR_Calor_Errores_NoNe.jpeg&amp;diff=84913"/>
				<updated>2025-03-18T21:35:02Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:GrupoADMR_Calor_Errores_DNe.jpeg&amp;diff=84912</id>
		<title>Archivo:GrupoADMR Calor Errores DNe.jpeg</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:GrupoADMR_Calor_Errores_DNe.jpeg&amp;diff=84912"/>
				<updated>2025-03-18T21:34:47Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:GrupoADMR_Calor_Errores_MaxD.jpeg&amp;diff=84911</id>
		<title>Archivo:GrupoADMR Calor Errores MaxD.jpeg</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:GrupoADMR_Calor_Errores_MaxD.jpeg&amp;diff=84911"/>
				<updated>2025-03-18T21:34:34Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:GrupoADMR_Calor_Errores_MaxNe.jpeg&amp;diff=84910</id>
		<title>Archivo:GrupoADMR Calor Errores MaxNe.jpeg</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:GrupoADMR_Calor_Errores_MaxNe.jpeg&amp;diff=84910"/>
				<updated>2025-03-18T21:34:21Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84909</id>
		<title>Ecuación del calor (ADMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84909"/>
				<updated>2025-03-18T21:23:08Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: /* Solución acotada vs Solución no acotada */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor (Grupo ADMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | &lt;br /&gt;
*Ángel De Lucas Miranda, &lt;br /&gt;
*Daniel Rodríguez Calderón, &lt;br /&gt;
*Marcos Cabellos Hernández, &lt;br /&gt;
*Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
El desarrollo de la ecuación del calor se atribuye principalmente al matemático y físico francés Joseph Fourier, quien en 1822 publicó su obra ''Théorie analytique de la chaleur''. En este trabajo formuló una ecuación diferencial en derivadas parciales que describe la propagación del calor por difusión en un medio continuo. Su análisis no sólo permitió comprender mejor este fenómeno físico, sino que también promovió el desarrollo de las Series de Fourier, que fueron objeto de estudio en nuestro trabajo anterior. En esta ocasión, profundicemos en dos aspectos de este modelo.&lt;br /&gt;
&lt;br /&gt;
Desde un punto de vista físico, estas ecuaciones permiten la modelización de fenómenos como el calentamiento de materiales o la difusión de solutos en fluidos estacionarios, como ya hemos explorado en algunos ejercicios. Sin embargo, la influencia de la física es más profunda: de hecho, el coeficiente de difusión lleva su nombre por la interpretación física de su acción en el sistema. ¿Cuál es este efecto, y por qué se lo denota de esta forma?&lt;br /&gt;
&lt;br /&gt;
Al tiempo que exploramos este efecto, planteemos también el paso entre problemas de dominio acotado y los de no acotado. Parecería evidente que estos últimos se extiendan naturalmente con los anteriores, pero en el desarrollo teórico de clase se obtenían mediante soluciones autosimilares en vez de problemas de autofunciones. ¿Convergen las soluciones del sistema acotado a la del no acotado cuando el dominio crece lo suficiente? Y de ser así, ¿qué condiciones de frontera en una dimensión funcionan mejor?&lt;br /&gt;
&lt;br /&gt;
=Solución acotada vs Solución no acotada=&lt;br /&gt;
Demos por conocidos el uso de separación de variables para resolver problemas de autofunciones en caso acotado y el manejo de la solución fundamental junto con la convolución para el sistema no acotado. Para comparar todas las soluciones correspondientes, consideremos sistema &amp;lt;math&amp;gt; 1-&amp;lt;/math&amp;gt;dimensional, con una gaussiana &amp;lt;math&amp;gt; e^{-x^2} &amp;lt;/math&amp;gt; como condición inicial. La justificación de una curva así puede ser, en un experimento físico, el uso de un láser para calentar un punto de una tira fina de metal. Considerando que los fotones puedan desviarse como una distribución normal por el teorema central del límite, es un montaje experimental factible. Además, es una función continua y diferenciable, par y asintóticamente nula, buenas propiedades para un estado inicial del sistema. Pongamos ahora dos posibles condiciones en las fronteras.&lt;br /&gt;
&lt;br /&gt;
Si consideramos de Dirichlet, a una tira de longitud &amp;lt;math&amp;gt; 2a &amp;lt;/math&amp;gt; le colocaremos en los extremos un material que se mantenga siempre a la misma temperatura, pongamos que a una temperatura nula. El sistema resulta&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad  &amp;amp;\forall t &amp;gt; 0, x\in [-a,a]\\ &lt;br /&gt;
u(-a,t) = u(a,t) = 0 \quad  &amp;amp;\forall t &amp;gt; 0 \\ &lt;br /&gt;
u(x,0) = e^{-x^2} \quad  &amp;amp;\forall x\in [-a,a]&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución al resolver el problema de autofunciones viene dada por&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
&lt;br /&gt;
u(x,t) = \sum_{n=1}^\infty A_{n} \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right) e^{-\dfrac{\pi^2}{a^2}\left(n - \frac{1}{2}\right)^2 t}&lt;br /&gt;
\quad \text{ donde }&lt;br /&gt;
A_n = \frac{\int_{-a}^{a} u(x,0) \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}{\int_{-a}^{a} \cos^2\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Consideremos ahora condiciones de frontera Neumann, con un flujo nulo que físicamente viene de poner extremos aislantes. Para cierto &amp;lt;math&amp;gt; b &amp;gt; 0,&amp;lt;/math&amp;gt; y no necesariamente igual que con &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Consideraremos la ecuación del calor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad  &amp;amp;\forall t &amp;gt; 0 , x\in [-b,b]\\ &lt;br /&gt;
u_x(-b,t) = u_x(b,t) = 0 \quad  &amp;amp;\forall t &amp;gt; 0 \\ &lt;br /&gt;
u(x,0) = e^{-x^2}. \quad &amp;amp;\forall x\in[-b,b]&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De nuevo podemos resolver el sistema, por ser homogéneo, mediante separación de variables, obteniendo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
&lt;br /&gt;
u(x,t) = \sum_{m=0}^\infty B_{m} cos\left(\frac{m\pi}{b} x\right) e^{-\dfrac{m^2\pi^2}{b^2} t}\quad \text{ donde }&lt;br /&gt;
B_m = \frac{\int_{-b}^{b} u(x,0) \cos\left(\frac{m\pi}{b} x\right)dx}{\int_{-b}^{b} \cos^2\left(\frac{m\pi}{b}x\right)dx}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un último detalle antes de proceder a los errores es la obtención simbólica de la solución no acotada, realizada a mano y mediante Maple.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad &amp;amp;\forall t&amp;gt;0, x\in \mathbb{R}\\  &lt;br /&gt;
u(x,0) = e^{-x^2} \quad &amp;amp;\forall x\in \mathbb{R}. &lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
\Longrightarrow&lt;br /&gt;
u(x,t) = \frac{1}{\sqrt{4\pi t}}e^{\frac{-x^2}{4t}} * e^{-x^2} = \frac{e^{\frac{-x^2}{4t+1}}}{\sqrt{4t+1}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora que pasamos a los errores, es relevante indicar la naturaleza numérica de los cálculos y la acumulación de errores en estos. Con esto en mente, queremos comprobar cuán bien aproximan las soluciones del caso acotado Dirichlet y Neumann a la obtenida por la solución fundamental. Para ello, escojamos un tiempo máximo &amp;lt;math&amp;gt;t_{max} &amp;lt;/math&amp;gt; hasta el cuál tomaremos el error en norma &amp;lt;math&amp;gt; L^{\infty} &amp;lt;/math&amp;gt;. Queremos estudiar&lt;br /&gt;
&lt;br /&gt;
* El efecto de aumentar el rango de definición con &amp;lt;math&amp;gt; a,b &amp;lt;/math&amp;gt;.&lt;br /&gt;
* El efecto de aumentar el número de términos en las series de los sistemas acotados.&lt;br /&gt;
&lt;br /&gt;
=== Análisis de los errores ===&lt;br /&gt;
[[Archivo:GrupoADMR Calor Errores1.jpg|550px|thumb|right| Representación gráfica de las soluciones del problema acotado (&amp;lt;math&amp;gt;a = b = 20&amp;lt;/math&amp;gt;) y no acotado truncando las series de Fourier en su término &amp;lt;math&amp;gt;100&amp;lt;/math&amp;gt;, para un tiempo máximo de &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;; y de sus errores. Nótese el orden de magnitud de los errores -pequeño-, los picos generados por los errores numéricos dados por la fórmula del trapecio y la suavidad en la frontera dada por las condiciones en esta.]]&lt;br /&gt;
&lt;br /&gt;
Consideramos los parámetros, donde &amp;lt;math&amp;gt; n &amp;lt;/math&amp;gt; es el término de la serie de Fourier donde truncamos:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;math&amp;gt; a = b = 20 &amp;lt;/math&amp;gt;&lt;br /&gt;
*&amp;lt;math&amp;gt; t_{max} = 1 &amp;lt;/math&amp;gt;&lt;br /&gt;
*&amp;lt;math&amp;gt; n = 100 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, ampliaremos &amp;lt;math&amp;gt;a, b&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; dejando fijo &amp;lt;math&amp;gt;t_{max}&amp;lt;/math&amp;gt; y luego fijaremos &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; en vez del tiempo.&lt;br /&gt;
Podemos observar que al aumentar &amp;lt;math&amp;gt;a, b&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; el error entre las solucionnes acotadas y no acotada disminuye. Nótese que se estanca a partir de cierto &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;. De hecho, el error llega a aumentar a partir de ciertos &amp;lt;math&amp;gt; a,b &amp;lt;/math&amp;gt; si truncamos demasiado pronto o demasiado tarde por la aproximación del trapecio para particiones del espacio demasiado bastas -no observado por pericia en código final-.&lt;br /&gt;
&lt;br /&gt;
Al ampliar el tiempo con la &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; como los errores se concentran para tiempos pequeños, al hacer más grande &amp;lt;math&amp;gt;t_{max}&amp;lt;/math&amp;gt; los errores máximos no aumentan. En cambio, si tomamos el máximo error para diferentes tiempos vemos con suficiente precisión no hay diferencia pero que para truncamientos precoces Neumann tiene ligeramente menor error.&lt;br /&gt;
&lt;br /&gt;
=Coeficiente de difusión=&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Fundamental.gif|300px|thumb|right|Solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. La representación gráfica parte del tiempo inicial &amp;lt;math/&amp;gt; 0.01, &amp;lt;math/&amp;gt; esperando una delta de Dirac en el instante inicial. Nótese que en este tiempo, a mayor coeficiente de difusión más se ha difundido el calor en el sistema, lo que se nota especialmente en el valor máximo observado y su disminución cuanto más crece el coeficiente.]]&lt;br /&gt;
&lt;br /&gt;
Vamos a interpretar como influye exactamente el coeficiente de difusión en la solución de la ecuación del calor. Imaginemos por un segundo que tenemos varias barras (cada una de un material diferente) y queremos estudiar como se difunde el calor a través de cada una de ellas. Usando Matlab podemos calcular y representar fácilmente la solución del problema para diferentes valores del coeficiente de difusión, que denotaremos por &amp;lt;math/&amp;gt; D &amp;lt;math/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Fundamental.gif|400px|thumb|right|Solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. La representación gráfica parte del tiempo inicial &amp;lt;math/&amp;gt; 0.01, &amp;lt;math/&amp;gt; esperando una delta de Dirac en el instante inicial. Nótese que en este tiempo, a mayor coeficiente de difusión más se ha difundido el calor en el sistema, lo que se nota especialmente en el valor máximo observado y su disminución cuanto más crece el coeficiente.]]&lt;br /&gt;
&lt;br /&gt;
Como se puede observar en la animación, fijado un tiempo, a medida que crece el valor del coeficiente de difusión el pico de la solución fundamental se va haciendo más cada vez más pequeño, es decir, a mayor coeficiente de difusión, menor es el tiempo que tarda en expandirse el calor. De hecho, podemos observar este hecho directamente de la expresión de la solución fundamental del calor. La solución de la ecuación del calor unidimensional en una barra de longitud \( L = 1 \), con coeficiente de difusión \( D \) y condición inicial dada por una función gaussiana \( f(x) = e^{-x^2} \), se expresa como una serie de Fourier:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,t) = \sum_{n=1}^{\infty} A_n e^{-D (n\pi)^2 t} \sin(n\pi x),&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[Solución que depende de D]- [Viendo la solución del apartado 3 me estoy dando cuenta que también depende de la longitud de la barra, si estuviésemos trabajando con el problema acotado podríamos ver como afectan estos dos parámetros al tiempo de difusión]&lt;br /&gt;
&lt;br /&gt;
Tomando el límite de D tendiendo a &amp;lt;math/&amp;gt; \infty &amp;lt;math/&amp;gt; vemos que u(x,t) tiende a 0, fijado un t determinado. Por tanto, podemos concluir que la solución del calor alcanzará el estado estacionario antes si su coeficiente del calor es mayor.&lt;br /&gt;
&lt;br /&gt;
= Códigos =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,2,3,4,5,6,7,8,9,10];&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Fundamental.gif';&lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for i = 1:length(DD)&lt;br /&gt;
    D = DD(i);&lt;br /&gt;
&lt;br /&gt;
    % Función fundamental de la ecuación del calor&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -1:0.01:1;         % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
    [X, T] = meshgrid(xx, tt); % Malla de coordenadas&lt;br /&gt;
    PHI_D = phi_D(X, T);   % Evaluación de la función&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    surf(X, T, PHI_D);&lt;br /&gt;
    shading flat&lt;br /&gt;
    shading interp&lt;br /&gt;
    colormap('jet')&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)$', 'Interpreter', 'latex');&lt;br /&gt;
    title(['Solución fundamental de la ecuación del calor, cuando D=', num2str(D)])&lt;br /&gt;
    axis([-1, 1, 0, 1, 0, 3])&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if i == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Convoluciones_teorica.gif|500px|thumb|right|Soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,10,20,30,40,50,60,70,80,90,100];&lt;br /&gt;
&lt;br /&gt;
% Función gaussiana&lt;br /&gt;
gaus = @(x) (exp(-x.^2));&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Convoluciones_teorica.gif'; &lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for h = 1:length(DD)&lt;br /&gt;
    D = DD(h);&lt;br /&gt;
&lt;br /&gt;
    % Funciones fundamentales y convolución&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
    convo = @(x,t) (exp(-x.^2./(4*D.*t+1))/sqrt(4*D.*t+1));&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -10:0.1:10;        % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
&lt;br /&gt;
    % Inicialización de la matriz de convolución&lt;br /&gt;
    conv = zeros(length(xx), length(tt));&lt;br /&gt;
&lt;br /&gt;
    % Cálculo de la convolución&lt;br /&gt;
    for j = 1:length(tt) &lt;br /&gt;
        auxt = tt(j);&lt;br /&gt;
        for i = 1:length(xx)&lt;br /&gt;
            auxx = xx(i);&lt;br /&gt;
            val_conv(i,j) = convo(auxx, auxt);&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    hold on;&lt;br /&gt;
    view(3);&lt;br /&gt;
    surf(xx, tt, val_conv.');&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)*N(x)$', 'Interpreter', 'latex');&lt;br /&gt;
    shading flat;&lt;br /&gt;
    shading interp;&lt;br /&gt;
    colormap('jet');&lt;br /&gt;
    title(['Soluciones en dominio no acotado, cuando D=', num2str(D)]);&lt;br /&gt;
    axis([-10, 10, 0, 1, 0, 1]);&lt;br /&gt;
    hold off;&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if h == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Referencias =&lt;br /&gt;
&lt;br /&gt;
* Sandro Salsa, Gianmaria Verzini. Partial Differential Equations in Action From Modelling to Theory ([https://link.springer.com/book/10.1007/978-3-031-21853-8 [1&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84908</id>
		<title>Ecuación del calor (ADMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84908"/>
				<updated>2025-03-18T21:20:34Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor (Grupo ADMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | &lt;br /&gt;
*Ángel De Lucas Miranda, &lt;br /&gt;
*Daniel Rodríguez Calderón, &lt;br /&gt;
*Marcos Cabellos Hernández, &lt;br /&gt;
*Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
El desarrollo de la ecuación del calor se atribuye principalmente al matemático y físico francés Joseph Fourier, quien en 1822 publicó su obra ''Théorie analytique de la chaleur''. En este trabajo formuló una ecuación diferencial en derivadas parciales que describe la propagación del calor por difusión en un medio continuo. Su análisis no sólo permitió comprender mejor este fenómeno físico, sino que también promovió el desarrollo de las Series de Fourier, que fueron objeto de estudio en nuestro trabajo anterior. En esta ocasión, profundicemos en dos aspectos de este modelo.&lt;br /&gt;
&lt;br /&gt;
Desde un punto de vista físico, estas ecuaciones permiten la modelización de fenómenos como el calentamiento de materiales o la difusión de solutos en fluidos estacionarios, como ya hemos explorado en algunos ejercicios. Sin embargo, la influencia de la física es más profunda: de hecho, el coeficiente de difusión lleva su nombre por la interpretación física de su acción en el sistema. ¿Cuál es este efecto, y por qué se lo denota de esta forma?&lt;br /&gt;
&lt;br /&gt;
Al tiempo que exploramos este efecto, planteemos también el paso entre problemas de dominio acotado y los de no acotado. Parecería evidente que estos últimos se extiendan naturalmente con los anteriores, pero en el desarrollo teórico de clase se obtenían mediante soluciones autosimilares en vez de problemas de autofunciones. ¿Convergen las soluciones del sistema acotado a la del no acotado cuando el dominio crece lo suficiente? Y de ser así, ¿qué condiciones de frontera en una dimensión funcionan mejor?&lt;br /&gt;
&lt;br /&gt;
=Solución acotada vs Solución no acotada=&lt;br /&gt;
Demos por conocidos el uso de separación de variables para resolver problemas de autofunciones en caso acotado y el manejo de la solución fundamental junto con la convolución para el sistema no acotado. Para comparar todas las soluciones correspondientes, consideremos sistema &amp;lt;math&amp;gt; 1-&amp;lt;/math&amp;gt;dimensional, con una gaussiana &amp;lt;math&amp;gt; e^{-x^2} &amp;lt;/math&amp;gt; como condición inicial. La justificación de una curva así puede ser, en un experimento físico, el uso de un láser para calentar un punto de una tira fina de metal. Considerando que los fotones puedan desviarse como una distribución normal por el teorema central del límite, es un montaje experimental factible. Además, es una función continua y diferenciable, par y asintóticamente nula, buenas propiedades para un estado inicial del sistema. Pongamos ahora dos posibles condiciones en las fronteras.&lt;br /&gt;
&lt;br /&gt;
Si consideramos de Dirichlet, a una tira de longitud &amp;lt;math&amp;gt; 2a &amp;lt;/math&amp;gt; le colocaremos en los extremos un material que se mantenga siempre a la misma temperatura, pongamos que a una temperatura nula. El sistema resulta&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad  &amp;amp;\forall t &amp;gt; 0, x\in [-a,a]\\ &lt;br /&gt;
u(-a,t) = u(a,t) = 0 \quad  &amp;amp;\forall t &amp;gt; 0 \\ &lt;br /&gt;
u(x,0) = e^{-x^2} \quad  &amp;amp;\forall x\in [-a,a]&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución al resolver el problema de autofunciones viene dada por&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
&lt;br /&gt;
u(x,t) = \sum_{n=1}^\infty A_{n} \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right) e^{-\dfrac{\pi^2}{a^2}\left(n - \frac{1}{2}\right)^2 t}&lt;br /&gt;
\quad \text{ donde }&lt;br /&gt;
A_n = \frac{\int_{-a}^{a} u(x,0) \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}{\int_{-a}^{a} \cos^2\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Consideremos ahora condiciones de frontera Neumann, con un flujo nulo que físicamente viene de poner extremos aislantes. Para cierto &amp;lt;math&amp;gt; b &amp;gt; 0,&amp;lt;/math&amp;gt; y no necesariamente igual que con &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Consideraremos la ecuación del calor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad  &amp;amp;\forall t &amp;gt; 0 , x\in [-b,b]\\ &lt;br /&gt;
u_x(-b,t) = u_x(b,t) = 0 \quad  &amp;amp;\forall t &amp;gt; 0 \\ &lt;br /&gt;
u(x,0) = e^{-x^2}. \quad &amp;amp;\forall x\in[-b,b]&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De nuevo podemos resolver el sistema, por ser homogéneo, mediante separación de variables, obteniendo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
&lt;br /&gt;
u(x,t) = \sum_{m=0}^\infty B_{m} cos\left(\frac{m\pi}{b} x\right) e^{-\dfrac{m^2\pi^2}{b^2} t}\quad \text{ donde }&lt;br /&gt;
B_m = \frac{\int_{-b}^{b} u(x,0) \cos\left(\frac{m\pi}{b} x\right)dx}{\int_{-b}^{b} \cos^2\left(\frac{m\pi}{b}x\right)dx}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un último detalle antes de proceder a los errores es la obtención simbólica de la solución no acotada, realizada a mano y mediante Maple.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad &amp;amp;\forall t&amp;gt;0, x\in \mathbb{R}\\  &lt;br /&gt;
u(x,0) = e^{-x^2} \quad &amp;amp;\forall x\in \mathbb{R}. &lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
\Longrightarrow&lt;br /&gt;
u(x,t) = \frac{1}{\sqrt{4\pi t}}e^{\frac{-x^2}{4t}} * e^{-x^2} = \frac{e^{\frac{-x^2}{4t+1}}}{\sqrt{4t+1}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora que pasamos a los errores, es relevante indicar la naturaleza numérica de los cálculos y la acumulación de errores en estos. Con esto en mente, queremos comprobar cuán bien aproximan las soluciones del caso acotado Dirichlet y Neumann a la obtenida por la solución fundamental. Para ello, escojamos un tiempo máximo &amp;lt;math&amp;gt;t_{max} &amp;lt;/math&amp;gt; hasta el cuál tomaremos el error en norma &amp;lt;math&amp;gt; L^{\infty} &amp;lt;/math&amp;gt;. Queremos estudiar&lt;br /&gt;
&lt;br /&gt;
* El efecto de aumentar el rango de definición con &amp;lt;math&amp;gt; a,b &amp;lt;/math&amp;gt;.&lt;br /&gt;
* El efecto de aumentar el número de términos en las series de los sistemas acotados.&lt;br /&gt;
* La relación entre estos parámetros, especialmente consecuencias por error acumulado.&lt;br /&gt;
&lt;br /&gt;
=== Análisis de los errores ===&lt;br /&gt;
[[Archivo:GrupoADMR Calor Errores1.jpg|550px|thumb|right| Representación gráfica de las soluciones del problema acotado (&amp;lt;math&amp;gt;a = b = 20&amp;lt;/math&amp;gt;) y no acotado truncando las series de Fourier en su término &amp;lt;math&amp;gt;100&amp;lt;/math&amp;gt;, para un tiempo máximo de &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;; y de sus errores. Nótese el orden de magnitud de los errores -pequeño-, los picos generados por los errores numéricos dados por la fórmula del trapecio y la suavidad en la frontera dada por las condiciones en esta.]]&lt;br /&gt;
&lt;br /&gt;
Consideramos los parámetros, donde &amp;lt;math&amp;gt; n &amp;lt;/math&amp;gt; es el término de la serie de Fourier donde truncamos:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;math&amp;gt; a = b = 20 &amp;lt;/math&amp;gt;&lt;br /&gt;
*&amp;lt;math&amp;gt; t_{max} = 1 &amp;lt;/math&amp;gt;&lt;br /&gt;
*&amp;lt;math&amp;gt; n = 100 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, ampliaremos &amp;lt;math&amp;gt;a, b&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; dejando fijo &amp;lt;math&amp;gt;t_{max}&amp;lt;/math&amp;gt; y luego fijaremos &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; en vez del tiempo.&lt;br /&gt;
Podemos observar que al aumentar &amp;lt;math&amp;gt;a, b&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; el error entre las solucionnes acotadas y no acotada disminuye. Nótese que se estanca a partir de cierto &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;. De hecho, el error llega a aumentar a partir de ciertos &amp;lt;math&amp;gt; a,b &amp;lt;/math&amp;gt; si truncamos demasiado pronto o demasiado tarde por la aproximación del trapecio para particiones del espacio demasiado bastas -no observado por pericia en código final-.&lt;br /&gt;
&lt;br /&gt;
Al ampliar el tiempo con la &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; como los errores se concentran para tiempos pequeños, al hacer más grande &amp;lt;math&amp;gt;t_{max}&amp;lt;/math&amp;gt; los errores máximos no aumentan. En cambio, si tomamos el máximo error para diferentes tiempos vemos con suficiente precisión no hay diferencia pero que para truncamientos precoces Neumann tiene ligeramente menor error.&lt;br /&gt;
&lt;br /&gt;
=Coeficiente de difusión=&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Fundamental.gif|300px|thumb|right|Solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. La representación gráfica parte del tiempo inicial &amp;lt;math/&amp;gt; 0.01, &amp;lt;math/&amp;gt; esperando una delta de Dirac en el instante inicial. Nótese que en este tiempo, a mayor coeficiente de difusión más se ha difundido el calor en el sistema, lo que se nota especialmente en el valor máximo observado y su disminución cuanto más crece el coeficiente.]]&lt;br /&gt;
&lt;br /&gt;
Vamos a interpretar como influye exactamente el coeficiente de difusión en la solución de la ecuación del calor. Imaginemos por un segundo que tenemos varias barras (cada una de un material diferente) y queremos estudiar como se difunde el calor a través de cada una de ellas. Usando Matlab podemos calcular y representar fácilmente la solución del problema para diferentes valores del coeficiente de difusión, que denotaremos por &amp;lt;math/&amp;gt; D &amp;lt;math/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Fundamental.gif|400px|thumb|right|Solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. La representación gráfica parte del tiempo inicial &amp;lt;math/&amp;gt; 0.01, &amp;lt;math/&amp;gt; esperando una delta de Dirac en el instante inicial. Nótese que en este tiempo, a mayor coeficiente de difusión más se ha difundido el calor en el sistema, lo que se nota especialmente en el valor máximo observado y su disminución cuanto más crece el coeficiente.]]&lt;br /&gt;
&lt;br /&gt;
Como se puede observar en la animación, fijado un tiempo, a medida que crece el valor del coeficiente de difusión el pico de la solución fundamental se va haciendo más cada vez más pequeño, es decir, a mayor coeficiente de difusión, menor es el tiempo que tarda en expandirse el calor. De hecho, podemos observar este hecho directamente de la expresión de la solución fundamental del calor. La solución de la ecuación del calor unidimensional en una barra de longitud \( L = 1 \), con coeficiente de difusión \( D \) y condición inicial dada por una función gaussiana \( f(x) = e^{-x^2} \), se expresa como una serie de Fourier:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,t) = \sum_{n=1}^{\infty} A_n e^{-D (n\pi)^2 t} \sin(n\pi x),&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[Solución que depende de D]- [Viendo la solución del apartado 3 me estoy dando cuenta que también depende de la longitud de la barra, si estuviésemos trabajando con el problema acotado podríamos ver como afectan estos dos parámetros al tiempo de difusión]&lt;br /&gt;
&lt;br /&gt;
Tomando el límite de D tendiendo a &amp;lt;math/&amp;gt; \infty &amp;lt;math/&amp;gt; vemos que u(x,t) tiende a 0, fijado un t determinado. Por tanto, podemos concluir que la solución del calor alcanzará el estado estacionario antes si su coeficiente del calor es mayor.&lt;br /&gt;
&lt;br /&gt;
= Códigos =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,2,3,4,5,6,7,8,9,10];&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Fundamental.gif';&lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for i = 1:length(DD)&lt;br /&gt;
    D = DD(i);&lt;br /&gt;
&lt;br /&gt;
    % Función fundamental de la ecuación del calor&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -1:0.01:1;         % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
    [X, T] = meshgrid(xx, tt); % Malla de coordenadas&lt;br /&gt;
    PHI_D = phi_D(X, T);   % Evaluación de la función&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    surf(X, T, PHI_D);&lt;br /&gt;
    shading flat&lt;br /&gt;
    shading interp&lt;br /&gt;
    colormap('jet')&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)$', 'Interpreter', 'latex');&lt;br /&gt;
    title(['Solución fundamental de la ecuación del calor, cuando D=', num2str(D)])&lt;br /&gt;
    axis([-1, 1, 0, 1, 0, 3])&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if i == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Convoluciones_teorica.gif|500px|thumb|right|Soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,10,20,30,40,50,60,70,80,90,100];&lt;br /&gt;
&lt;br /&gt;
% Función gaussiana&lt;br /&gt;
gaus = @(x) (exp(-x.^2));&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Convoluciones_teorica.gif'; &lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for h = 1:length(DD)&lt;br /&gt;
    D = DD(h);&lt;br /&gt;
&lt;br /&gt;
    % Funciones fundamentales y convolución&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
    convo = @(x,t) (exp(-x.^2./(4*D.*t+1))/sqrt(4*D.*t+1));&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -10:0.1:10;        % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
&lt;br /&gt;
    % Inicialización de la matriz de convolución&lt;br /&gt;
    conv = zeros(length(xx), length(tt));&lt;br /&gt;
&lt;br /&gt;
    % Cálculo de la convolución&lt;br /&gt;
    for j = 1:length(tt) &lt;br /&gt;
        auxt = tt(j);&lt;br /&gt;
        for i = 1:length(xx)&lt;br /&gt;
            auxx = xx(i);&lt;br /&gt;
            val_conv(i,j) = convo(auxx, auxt);&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    hold on;&lt;br /&gt;
    view(3);&lt;br /&gt;
    surf(xx, tt, val_conv.');&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)*N(x)$', 'Interpreter', 'latex');&lt;br /&gt;
    shading flat;&lt;br /&gt;
    shading interp;&lt;br /&gt;
    colormap('jet');&lt;br /&gt;
    title(['Soluciones en dominio no acotado, cuando D=', num2str(D)]);&lt;br /&gt;
    axis([-10, 10, 0, 1, 0, 1]);&lt;br /&gt;
    hold off;&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if h == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Referencias =&lt;br /&gt;
&lt;br /&gt;
* Sandro Salsa, Gianmaria Verzini. Partial Differential Equations in Action From Modelling to Theory ([https://link.springer.com/book/10.1007/978-3-031-21853-8 [1&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84786</id>
		<title>Ecuación del calor (ADMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84786"/>
				<updated>2025-03-17T22:36:59Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: /* Solución acotada vs Solución no acotada */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor (Grupo ADMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | &lt;br /&gt;
*Ángel De Lucas Miranda, &lt;br /&gt;
*Daniel Rodríguez Calderón, &lt;br /&gt;
*Marcos Cabellos Hernández, &lt;br /&gt;
*Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
El desarrollo de la ecuación del calor se atribuye principalmente al matemático y físico francés Joseph Fourier, quien en 1822 publicó su obra ''Théorie analytique de la chaleur''. En este trabajo formuló una ecuación diferencial en derivadas parciales que describe la propagación del calor por difusión en un medio continuo. Su análisis no sólo permitió comprender mejor este fenómeno físico, sino que también promovió el desarrollo de las Series de Fourier, que fueron objeto de estudio en nuestro trabajo anterior. En esta ocasión, profundicemos en dos aspectos de este modelo.&lt;br /&gt;
&lt;br /&gt;
Desde un punto de vista físico, estas ecuaciones permiten la modelización de fenómenos como el calentamiento de materiales o la difusión de solutos en fluidos estacionarios, como ya hemos explorado en algunos ejercicios. Sin embargo, la influencia de la física es más profunda: de hecho, el coeficiente de difusión lleva su nombre por la interpretación física de su acción en el sistema. ¿Cuál es este efecto, y por qué se lo denota de esta forma?&lt;br /&gt;
&lt;br /&gt;
Al tiempo que exploramos este efecto, planteemos también el paso entre problemas de dominio acotado y los de no acotado. Parecería evidente que estos últimos se extiendan naturalmente con los anteriores, pero en el desarrollo teórico de clase se obtenían mediante soluciones autosimilares en vez de problemas de autofunciones. ¿Convergen las soluciones del sistema acotado a la del no acotado cuando el dominio crece lo suficiente? Y de ser así, ¿qué condiciones de frontera en una dimensión funcionan mejor?&lt;br /&gt;
&lt;br /&gt;
=To do list=&lt;br /&gt;
&lt;br /&gt;
1) (Problema acot y sol)Damos la sol. con frontera 0 --&amp;gt; para extender mejor a no acot&lt;br /&gt;
2) Dibujinchis&lt;br /&gt;
3) (Problema no acot) Dar el problema, sol, dibujinchi&lt;br /&gt;
4) Comparar ambas sol. error cuadrático, y el unif. y error numérico para intervalos crecientes [-a,a]&lt;br /&gt;
&lt;br /&gt;
5) Pasar de Diric. a Neum. y dar la explicacion fis. de Neum. Dibujinchis comparación, solapadas&lt;br /&gt;
6) Ver cómo afecta la cte calorifica, densidad y k = relacion flujo gradiente (la D) en ambos casos.&lt;br /&gt;
&lt;br /&gt;
=Solución acotada vs Solución no acotada=&lt;br /&gt;
Demos por conocidos el uso de separación de variables para resolver problemas de autofunciones en caso acotado y el manejo de la solución fundamental junto con la convolución para el sistema no acotado. Para comparar todas las soluciones correspondientes, consideremos sistema &amp;lt;math&amp;gt; 1-&amp;lt;/math&amp;gt;dimensional, con una gaussiana &amp;lt;math&amp;gt; e^{-x^2} &amp;lt;/math&amp;gt; como condición inicial. La justificación de una curva así puede ser, en un experimento físico, el uso de un láser para calentar un punto de una tira fina de metal. Considerando que los fotones puedan desviarse como una distribución normal por el teorema central del límite, es un montaje experimental factible. Además, es una función continua y diferenciable, par y asintóticamente nula, buenas propiedades para un estado inicial del sistema. Pongamos ahora dos posibles condiciones en las fronteras.&lt;br /&gt;
&lt;br /&gt;
Si consideramos de Dirichlet, a una tira de longitud &amp;lt;math&amp;gt; 2a &amp;lt;/math&amp;gt; le colocaremos en los extremos un material que se mantenga siempre a la misma temperatura, pongamos que a una temperatura nula. El sistema resulta&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad  &amp;amp;\forall t &amp;gt; 0, x\in [-a,a]\\ &lt;br /&gt;
u(-a,t) = u(a,t) = 0 \quad  &amp;amp;\forall t &amp;gt; 0 \\ &lt;br /&gt;
u(x,0) = e^{-x^2} \quad  &amp;amp;\forall x\in [-a,a]&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución al resolver el problema de autofunciones viene dada por&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
&lt;br /&gt;
u(x,t) = \sum_{n=1}^\infty A_{n} \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right) e^{-\dfrac{\pi^2}{a^2}\left(n - \frac{1}{2}\right)^2 t}&lt;br /&gt;
\quad \text{ donde }&lt;br /&gt;
A_n = \frac{\int_{-a}^{a} u(x,0) \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}{\int_{-a}^{a} \cos^2\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Consideremos ahora condiciones de frontera Neumann, con un flujo nulo que físicamente viene de poner extremos aislantes. Para cierto &amp;lt;math&amp;gt; b &amp;gt; 0,&amp;lt;/math&amp;gt; y no necesariamente igual que con &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Consideraremos la ecuación del calor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad  &amp;amp;\forall t &amp;gt; 0 , x\in [-b,b]\\ &lt;br /&gt;
u_x(-b,t) = u_x(b,t) = 0 \quad  &amp;amp;\forall t &amp;gt; 0 \\ &lt;br /&gt;
u(x,0) = e^{-x^2}. \quad &amp;amp;\forall x\in[-b,b]&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De nuevo podemos resolver el sistema, por ser homogéneo, mediante separación de variables, obteniendo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
&lt;br /&gt;
u(x,t) = \sum_{m=0}^\infty B_{m} cos\left(\frac{m\pi}{b} x\right) e^{-\dfrac{m^2\pi^2}{b^2} t}\quad \text{ donde }&lt;br /&gt;
B_m = \frac{\int_{-b}^{b} u(x,0) \cos\left(\frac{m\pi}{b} x\right)dx}{\int_{-b}^{b} \cos^2\left(\frac{m\pi}{b}x\right)dx}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un último detalle antes de proceder a los errores es la obtención simbólica de la solución no acotada, realizada a mano y mediante Maple.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad &amp;amp;\forall t&amp;gt;0, x\in \mathbb{R}\\  &lt;br /&gt;
u(x,0) = e^{-x^2} \quad &amp;amp;\forall x\in \mathbb{R}. &lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
\Longrightarrow&lt;br /&gt;
u(x,t) = \frac{1}{\sqrt{4\pi t}}e^{\frac{-x^2}{4t}} * e^{-x^2} = \frac{e^{\frac{-x^2}{4t+1}}}{\sqrt{4t+1}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora que pasamos a los errores, es relevante indicar la naturaleza numérica de los cálculos y la acumulación de errores en estos. Con esto en mente, queremos comprobar cuán bien aproximan las soluciones del caso acotado Dirichlet y Neumann a la obtenida por la solución fundamental. Para ello, escojamos un tiempo máximo &amp;lt;math&amp;gt;t_{max} &amp;lt;/math&amp;gt; hasta el cuál tomaremos el error en norma &amp;lt;math&amp;gt; L^{\infty} &amp;lt;/math&amp;gt;. Queremos estudiar&lt;br /&gt;
&lt;br /&gt;
* El efecto de aumentar el rango de definición con &amp;lt;math&amp;gt; a,b &amp;lt;/math&amp;gt;.&lt;br /&gt;
* El efecto de aumentar el número de términos en las series de los sistemas acotados.&lt;br /&gt;
* La relación entre estos parámetros, especialmente consecuencias por error acumulado.&lt;br /&gt;
&lt;br /&gt;
=Coeficiente de difusión=&lt;br /&gt;
&lt;br /&gt;
= Códigos =&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Fundamental.gif|500px|thumb|right|Solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. La representación gráfica parte del tiempo inicial &amp;lt;math/&amp;gt; 0.01, &amp;lt;math/&amp;gt; esperando una delta de Dirac en el instante inicial. Nótese que en este tiempo, a mayor coeficiente de difusión más se ha difundido el calor en el sistema, lo que se nota especialmente en el valor máximo observado y su disminución cuanto más crece el coeficiente.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,2,3,4,5,6,7,8,9,10];&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Fundamental.gif';&lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for i = 1:length(DD)&lt;br /&gt;
    D = DD(i);&lt;br /&gt;
&lt;br /&gt;
    % Función fundamental de la ecuación del calor&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -1:0.01:1;         % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
    [X, T] = meshgrid(xx, tt); % Malla de coordenadas&lt;br /&gt;
    PHI_D = phi_D(X, T);   % Evaluación de la función&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    surf(X, T, PHI_D);&lt;br /&gt;
    shading flat&lt;br /&gt;
    shading interp&lt;br /&gt;
    colormap('jet')&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)$', 'Interpreter', 'latex');&lt;br /&gt;
    title(['Solución fundamental de la ecuación del calor, cuando D=', num2str(D)])&lt;br /&gt;
    axis([-1, 1, 0, 1, 0, 3])&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if i == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Convoluciones_teorica.gif|500px|thumb|right|Soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,10,20,30,40,50,60,70,80,90,100];&lt;br /&gt;
&lt;br /&gt;
% Función gaussiana&lt;br /&gt;
gaus = @(x) (exp(-x.^2));&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Convoluciones_teorica.gif'; &lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for h = 1:length(DD)&lt;br /&gt;
    D = DD(h);&lt;br /&gt;
&lt;br /&gt;
    % Funciones fundamentales y convolución&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
    convo = @(x,t) (exp(-x.^2./(4*D.*t+1))/sqrt(4*D.*t+1));&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -10:0.1:10;        % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
&lt;br /&gt;
    % Inicialización de la matriz de convolución&lt;br /&gt;
    conv = zeros(length(xx), length(tt));&lt;br /&gt;
&lt;br /&gt;
    % Cálculo de la convolución&lt;br /&gt;
    for j = 1:length(tt) &lt;br /&gt;
        auxt = tt(j);&lt;br /&gt;
        for i = 1:length(xx)&lt;br /&gt;
            auxx = xx(i);&lt;br /&gt;
            val_conv(i,j) = convo(auxx, auxt);&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    hold on;&lt;br /&gt;
    view(3);&lt;br /&gt;
    surf(xx, tt, val_conv.');&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)*N(x)$', 'Interpreter', 'latex');&lt;br /&gt;
    shading flat;&lt;br /&gt;
    shading interp;&lt;br /&gt;
    colormap('jet');&lt;br /&gt;
    title(['Soluciones en dominio no acotado, cuando D=', num2str(D)]);&lt;br /&gt;
    axis([-10, 10, 0, 1, 0, 1]);&lt;br /&gt;
    hold off;&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if h == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Referencias =&lt;br /&gt;
&lt;br /&gt;
* Sandro Salsa, Gianmaria Verzini. Partial Differential Equations in Action From Modelling to Theory ([https://link.springer.com/book/10.1007/978-3-031-21853-8 [1&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84775</id>
		<title>Ecuación del calor (ADMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84775"/>
				<updated>2025-03-17T21:53:19Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor (Grupo ADMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | &lt;br /&gt;
*Ángel De Lucas Miranda, &lt;br /&gt;
*Daniel Rodríguez Calderón, &lt;br /&gt;
*Marcos Cabellos Hernández, &lt;br /&gt;
*Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
El desarrollo de la ecuación del calor se atribuye principalmente al matemático y físico francés Joseph Fourier, quien en 1822 publicó su obra ''Théorie analytique de la chaleur''. En este trabajo formuló una ecuación diferencial en derivadas parciales que describe la propagación del calor por difusión en un medio continuo. Su análisis no sólo permitió comprender mejor este fenómeno físico, sino que también promovió el desarrollo de las Series de Fourier, que fueron objeto de estudio en nuestro trabajo anterior. En esta ocasión, profundicemos en dos aspectos de este modelo.&lt;br /&gt;
&lt;br /&gt;
Desde un punto de vista físico, estas ecuaciones permiten la modelización de fenómenos como el calentamiento de materiales o la difusión de solutos en fluidos estacionarios, como ya hemos explorado en algunos ejercicios. Sin embargo, la influencia de la física es más profunda: de hecho, el coeficiente de difusión lleva su nombre por la interpretación física de su acción en el sistema. ¿Cuál es este efecto, y por qué se lo denota de esta forma?&lt;br /&gt;
&lt;br /&gt;
Al tiempo que exploramos este efecto, planteemos también el paso entre problemas de dominio acotado y los de no acotado. Parecería evidente que estos últimos se extiendan naturalmente con los anteriores, pero en el desarrollo teórico de clase se obtenían mediante soluciones autosimilares en vez de problemas de autofunciones. ¿Convergen las soluciones del sistema acotado a la del no acotado cuando el dominio crece lo suficiente? Y de ser así, ¿qué condiciones de frontera en una dimensión funcionan mejor?&lt;br /&gt;
&lt;br /&gt;
=To do list=&lt;br /&gt;
&lt;br /&gt;
1) (Problema acot y sol)Damos la sol. con frontera 0 --&amp;gt; para extender mejor a no acot&lt;br /&gt;
2) Dibujinchis&lt;br /&gt;
3) (Problema no acot) Dar el problema, sol, dibujinchi&lt;br /&gt;
4) Comparar ambas sol. error cuadrático, y el unif. y error numérico para intervalos crecientes [-a,a]&lt;br /&gt;
&lt;br /&gt;
5) Pasar de Diric. a Neum. y dar la explicacion fis. de Neum. Dibujinchis comparación, solapadas&lt;br /&gt;
6) Ver cómo afecta la cte calorifica, densidad y k = relacion flujo gradiente (la D) en ambos casos.&lt;br /&gt;
&lt;br /&gt;
=Solución acotada vs Solución no acotada=&lt;br /&gt;
Demos por conocidos el uso de separación de variables para resolver problemas de autofunciones en caso acotado y el manejo de la solución fundamental junto con la convolución para el sistema no acotado. Para comparar todas las soluciones correspondientes, consideremos sistema &amp;lt;math&amp;gt; 1-&amp;lt;/math&amp;gt;dimensional, con una gaussiana &amp;lt;math&amp;gt; e^{-x^2} &amp;lt;/math&amp;gt; como condición inicial. La justificación de una curva así puede ser, en un experimento físico, el uso de un láser para calentar un punto de una tira fina de metal. Considerando que los fotones puedan desviarse como una distribución normal por el teorema central del límite, es un montaje experimental factible. Además, es una función continua y diferenciable, par y asintóticamente nula, buenas propiedades para un estado inicial del sistema. Pongamos ahora dos posibles condiciones en las fronteras.&lt;br /&gt;
&lt;br /&gt;
Si consideramos de Dirichlet, a una tira de longitud &amp;lt;math&amp;gt; 2a &amp;lt;/math&amp;gt; le colocaremos en los extremos un material que se mantenga siempre a la misma temperatura, pongamos que a una temperatura nula. El sistema resulta&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad  &amp;amp;\forall t &amp;gt; 0, x\in [-a,a]\\ &lt;br /&gt;
u(-a,t) = u(a,t) = 0 \quad  &amp;amp;\forall t &amp;gt; 0 \\ &lt;br /&gt;
u(x,0) = e^{-x^2} \quad  &amp;amp;\forall x\in [-a,a]&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución al resolver el problema de autofunciones viene dada por&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
&lt;br /&gt;
u(x,t) = \sum_{n=1}^\infty A_{n} \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right) e^{-\dfrac{\pi^2}{a^2}\left(n - \frac{1}{2}\right)^2 t}&lt;br /&gt;
\quad \text{ donde }&lt;br /&gt;
A_n = \frac{\int_{-a}^{a} u(x,0) \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}{\int_{-a}^{a} \cos^2\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Consideremos ahora condiciones de frontera Neumann, con un flujo nulo que físicamente viene de poner extremos aislantes. Para cierto &amp;lt;math&amp;gt; b &amp;gt; 0,&amp;lt;/math&amp;gt; y no necesariamente igual que con &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Consideraremos la ecuación del calor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad  &amp;amp;\forall t &amp;gt; 0 , x\in [-b,b]\\ &lt;br /&gt;
u_x(-b,t) = u_x(b,t) = 0 \quad  &amp;amp;\forall t &amp;gt; 0 \\ &lt;br /&gt;
u(x,0) = e^{-x^2}. \quad &amp;amp;\forall x\in[-b,b]&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De nuevo podemos resolver el sistema, por ser homogéneo, mediante separación de variables, obteniendo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
&lt;br /&gt;
u(x,t) = \sum_{m=0}^\infty B_{m} cos\left(\frac{m\pi}{b} x\right) e^{-\dfrac{m^2\pi^2}{b^2} t}\quad \text{ donde }&lt;br /&gt;
B_m = \frac{\int_{-b}^{b} u(x,0) \cos\left(\frac{m\pi}{b} x\right)dx}{\int_{-b}^{b} \cos^2\left(\frac{m\pi}{b}x\right)dx}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un último detalle antes de proceder a los errores es la obtención simbólica de la solución no acotada, realizada a mano y mediante Maple.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad &amp;amp;\forall t&amp;gt;0, x\in \mathbb{R}\\  &lt;br /&gt;
u(x,0) = e^{-x^2} \quad &amp;amp;\forall x\in \mathbb{R}. &lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
\Longrightarrow&lt;br /&gt;
u(x,t) = \frac{1}{\sqrt{4\pi t}}e^{\frac{-x^2}{4t}} * e^{-x^2} = \frac{e^{\frac{-x^2}{4t+1}}}{\sqrt{4t+1}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora que pasamos a los errores, es relevante indicar la naturaleza numérica de los cálculos y la acumulación de errores en estos. Con esto en mente, queremos comprobar cuán bien aproximan las soluciones del caso acotado Dirichlet y Neumann a la obtenida por la solución fundamnetal. Para ello, escojamos un tiempo máximo &amp;lt;math&amp;gt;t_{max} &amp;lt;/math&amp;gt; hasta el cuál tomaremos el error en norma &amp;lt;math&amp;gt; L^{\infty} &amp;lt;/math&amp;gt;. Queremos estudiar&lt;br /&gt;
&lt;br /&gt;
* El efecto de aumentar el rango de definición con &amp;lt;math&amp;gt; a,b &amp;lt;/math&amp;gt;.&lt;br /&gt;
* El efecto de aumentar el número de términos en las series de los sistemas acotados.&lt;br /&gt;
* La relación entre estos parámetros, especialmente consecuencias por error acumulado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Coeficiente de difusión=&lt;br /&gt;
&lt;br /&gt;
= Códigos =&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Fundamental.gif|500px|thumb|right|Solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. La representación gráfica parte del tiempo inicial &amp;lt;math/&amp;gt; 0.01, &amp;lt;math/&amp;gt; esperando una delta de Dirac en el instante inicial. Nótese que en este tiempo, a mayor coeficiente de difusión más se ha difundido el calor en el sistema, lo que se nota especialmente en el valor máximo observado y su disminución cuanto más crece el coeficiente.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,2,3,4,5,6,7,8,9,10];&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Fundamental.gif';&lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for i = 1:length(DD)&lt;br /&gt;
    D = DD(i);&lt;br /&gt;
&lt;br /&gt;
    % Función fundamental de la ecuación del calor&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -1:0.01:1;         % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
    [X, T] = meshgrid(xx, tt); % Malla de coordenadas&lt;br /&gt;
    PHI_D = phi_D(X, T);   % Evaluación de la función&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    surf(X, T, PHI_D);&lt;br /&gt;
    shading flat&lt;br /&gt;
    shading interp&lt;br /&gt;
    colormap('jet')&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)$', 'Interpreter', 'latex');&lt;br /&gt;
    title(['Solución fundamental de la ecuación del calor, cuando D=', num2str(D)])&lt;br /&gt;
    axis([-1, 1, 0, 1, 0, 3])&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if i == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Convoluciones_teorica.gif|500px|thumb|right|Soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,10,20,30,40,50,60,70,80,90,100];&lt;br /&gt;
&lt;br /&gt;
% Función gaussiana&lt;br /&gt;
gaus = @(x) (exp(-x.^2));&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Convoluciones_teorica.gif'; &lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for h = 1:length(DD)&lt;br /&gt;
    D = DD(h);&lt;br /&gt;
&lt;br /&gt;
    % Funciones fundamentales y convolución&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
    convo = @(x,t) (exp(-x.^2./(4*D.*t+1))/sqrt(4*D.*t+1));&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -10:0.1:10;        % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
&lt;br /&gt;
    % Inicialización de la matriz de convolución&lt;br /&gt;
    conv = zeros(length(xx), length(tt));&lt;br /&gt;
&lt;br /&gt;
    % Cálculo de la convolución&lt;br /&gt;
    for j = 1:length(tt) &lt;br /&gt;
        auxt = tt(j);&lt;br /&gt;
        for i = 1:length(xx)&lt;br /&gt;
            auxx = xx(i);&lt;br /&gt;
            val_conv(i,j) = convo(auxx, auxt);&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    hold on;&lt;br /&gt;
    view(3);&lt;br /&gt;
    surf(xx, tt, val_conv.');&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)*N(x)$', 'Interpreter', 'latex');&lt;br /&gt;
    shading flat;&lt;br /&gt;
    shading interp;&lt;br /&gt;
    colormap('jet');&lt;br /&gt;
    title(['Soluciones en dominio no acotado, cuando D=', num2str(D)]);&lt;br /&gt;
    axis([-10, 10, 0, 1, 0, 1]);&lt;br /&gt;
    hold off;&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if h == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Referencias =&lt;br /&gt;
&lt;br /&gt;
* Sandro Salsa, Gianmaria Verzini. Partial Differential Equations in Action From Modelling to Theory ([https://link.springer.com/book/10.1007/978-3-031-21853-8 [1&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84767</id>
		<title>Ecuación del calor (ADMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84767"/>
				<updated>2025-03-17T21:48:49Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor (Grupo ADMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | &lt;br /&gt;
*Ángel De Lucas Miranda, &lt;br /&gt;
*Daniel Rodríguez Calderón, &lt;br /&gt;
*Marcos Cabellos Hernández, &lt;br /&gt;
*Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
El desarrollo de la ecuación del calor se atribuye principalmente al matemático y físico francés Joseph Fourier, quien en 1822 publicó su obra ''Théorie analytique de la chaleur''. En este trabajo formuló una ecuación diferencial en derivadas parciales que describe la propagación del calor por difusión en un medio continuo. Su análisis no sólo permitió comprender mejor este fenómeno físico, sino que también promovió el desarrollo de las Series de Fourier, que fueron objeto de estudio en nuestro trabajo anterior. En esta ocasión, profundicemos en dos aspectos de este modelo.&lt;br /&gt;
&lt;br /&gt;
Desde un punto de vista físico, estas ecuaciones permiten la modelización de fenómenos como el calentamiento de materiales o la difusión de solutos en fluidos estacionarios, como ya hemos explorado en algunos ejercicios. Sin embargo, la influencia de la física es más profunda: de hecho, el coeficiente de difusión lleva su nombre por la interpretación física de su acción en el sistema. ¿Cuál es este efecto, y por qué se lo denota de esta forma?&lt;br /&gt;
&lt;br /&gt;
Al tiempo que exploramos este efecto, planteemos también el paso entre problemas de dominio acotado y los de no acotado. Parecería evidente que estos últimos se extiendan naturalmente con los anteriores, pero en el desarrollo teórico de clase se obtenían mediante soluciones autosimilares en vez de problemas de autofunciones. ¿Convergen las soluciones del sistema acotado a la del no acotado cuando el dominio crece lo suficiente? Y de ser así, ¿qué condiciones de frontera en una dimensión funcionan mejor?&lt;br /&gt;
&lt;br /&gt;
=To do list=&lt;br /&gt;
&lt;br /&gt;
1) (Problema acot y sol)Damos la sol. con frontera 0 --&amp;gt; para extender mejor a no acot&lt;br /&gt;
2) Dibujinchis&lt;br /&gt;
3) (Problema no acot) Dar el problema, sol, dibujinchi&lt;br /&gt;
4) Comparar ambas sol. error cuadrático, y el unif. y error numérico para intervalos crecientes [-a,a]&lt;br /&gt;
&lt;br /&gt;
5) Pasar de Diric. a Neum. y dar la explicacion fis. de Neum. Dibujinchis comparación, solapadas&lt;br /&gt;
6) Ver cómo afecta la cte calorifica, densidad y k = relacion flujo gradiente (la D) en ambos casos.&lt;br /&gt;
&lt;br /&gt;
=Coeficiente de difusión=&lt;br /&gt;
&lt;br /&gt;
=Solución acotada vs Solución no acotada=&lt;br /&gt;
Demos por conocidos el uso de separación de variables para resolver problemas de autofunciones en caso acotado y el manejo de la solución fundamental junto con la convolución para el sistema no acotado. Para comparar todas las soluciones correspondientes, consideremos sistema &amp;lt;math&amp;gt; 1-&amp;lt;/math&amp;gt;dimensional, con una gaussiana &amp;lt;math&amp;gt; e^{-x^2} &amp;lt;/math&amp;gt; como condición inicial. La justificación de una curva así puede ser, en un experimento físico, el uso de un láser para calentar un punto de una tira fina de metal. Considerando que los fotones puedan desviarse como una distribución normal por el teorema central del límite, es un montaje experimental factible. Además, es una función continua y diferenciable, par y asintóticamente nula, buenas propiedades para un estado inicial del sistema. Pongamos ahora dos posibles condiciones en las fronteras.&lt;br /&gt;
&lt;br /&gt;
Si consideramos de Dirichlet, a una tira de longitud &amp;lt;math&amp;gt; 2a &amp;lt;/math&amp;gt; le colocaremos en los extremos un material que se mantenga siempre a la misma temperatura, pongamos que a una temperatura nula. El sistema resulta&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad  &amp;amp;\forall t &amp;gt; 0, x\in [-a,a]\\ &lt;br /&gt;
u(-a,t) = u(a,t) = 0 \quad  &amp;amp;\forall t &amp;gt; 0 \\ &lt;br /&gt;
u(x,0) = e^{-x^2} \quad  &amp;amp;\forall x\in [-a,a]&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución al resolver el problema de autofunciones viene dada por&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
&lt;br /&gt;
u(x,t) = \sum_{n=1}^\infty A_{n} \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right) e^{-\dfrac{\pi^2}{a^2}\left(n - \frac{1}{2}\right)^2 t}&lt;br /&gt;
\quad \text{ donde }&lt;br /&gt;
A_n = \frac{\int_{-a}^{a} u(x,0) \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}{\int_{-a}^{a} \cos^2\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Consideremos ahora condiciones de frontera Neumann, con un flujo nulo que físicamente viene de poner extremos aislantes. Para cierto &amp;lt;math&amp;gt; b &amp;gt; 0,&amp;lt;/math&amp;gt; y no necesariamente igual que con &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Consideraremos la ecuación del calor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad  &amp;amp;\forall t &amp;gt; 0 , x\in [-b,b]\\ &lt;br /&gt;
u_x(-b,t) = u_x(b,t) = 0 \quad  &amp;amp;\forall t &amp;gt; 0 \\ &lt;br /&gt;
u(x,0) = e^{-x^2}. \quad &amp;amp;\forall x\in[-b,b]&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De nuevo podemos resolver el sistema, por ser homogéneo, mediante separación de variables, obteniendo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
&lt;br /&gt;
u(x,t) = \sum_{m=0}^\infty B_{m} cos\left(\frac{m\pi}{b} x\right) e^{-\dfrac{m^2\pi^2}{b^2} t}\quad \text{ donde }&lt;br /&gt;
B_m = \frac{\int_{-b}^{b} u(x,0) \cos\left(\frac{m\pi}{b} x\right)dx}{\int_{-b}^{b} \cos^2\left(\frac{m\pi}{b}x\right)dx}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un último detalle antes de proceder a los errores es la obtención simbólica de la solución no acotada, realizada a mano y mediante Maple.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad &amp;amp;\forall t&amp;gt;0, x\in \mathbb{R}\\  &lt;br /&gt;
u(x,0) = e^{-x^2} \quad &amp;amp;\forall x\in \mathbb{R}. &lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
\Longrightarrow&lt;br /&gt;
u(x,t) = \frac{1}{\sqrt{4\pi t}}e^{\frac{-x^2}{4t}} * e^{-x^2} = \frac{e^{\frac{-x^2}{4t+1}}}{\sqrt{4t+1}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora que pasamos a los errores, es relevante indicar la naturaleza numérica de los cálculos y la acumulación de errores en estos. Con esto en mente, queremos comprobar cuán bien aproximan las soluciones del caso acotado Dirichlet y Neumann a la obtenida por la solución fundamnetal. Para ello, escojamos un tiempo máximo &amp;lt;math&amp;gt;t_{max} &amp;lt;/math&amp;gt; hasta el cuál tomaremos el error en norma &amp;lt;math&amp;gt; L^{\infty} &amp;lt;/math&amp;gt;. Queremos estudiar&lt;br /&gt;
&lt;br /&gt;
* El efecto de aumentar el rango de definición con &amp;lt;math&amp;gt; a,b &amp;lt;/math&amp;gt;.&lt;br /&gt;
* El efecto de aumentar el número de términos en las series de los sistemas acotados.&lt;br /&gt;
* La relación entre estos parámetros, especialmente consecuencias por error acumulado.&lt;br /&gt;
&lt;br /&gt;
= Códigos =&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Fundamental.gif|500px|thumb|right|Solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. La representación gráfica parte del tiempo inicial &amp;lt;math/&amp;gt; 0.01, &amp;lt;math/&amp;gt; esperando una delta de Dirac en el instante inicial. Nótese que en este tiempo, a mayor coeficiente de difusión más se ha difundido el calor en el sistema, lo que se nota especialmente en el valor máximo observado y su disminución cuanto más crece el coeficiente.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,2,3,4,5,6,7,8,9,10];&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Fundamental.gif';&lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for i = 1:length(DD)&lt;br /&gt;
    D = DD(i);&lt;br /&gt;
&lt;br /&gt;
    % Función fundamental de la ecuación del calor&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -1:0.01:1;         % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
    [X, T] = meshgrid(xx, tt); % Malla de coordenadas&lt;br /&gt;
    PHI_D = phi_D(X, T);   % Evaluación de la función&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    surf(X, T, PHI_D);&lt;br /&gt;
    shading flat&lt;br /&gt;
    shading interp&lt;br /&gt;
    colormap('jet')&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)$', 'Interpreter', 'latex');&lt;br /&gt;
    title(['Solución fundamental de la ecuación del calor, cuando D=', num2str(D)])&lt;br /&gt;
    axis([-1, 1, 0, 1, 0, 3])&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if i == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Convoluciones_teorica.gif|500px|thumb|right|Soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,10,20,30,40,50,60,70,80,90,100];&lt;br /&gt;
&lt;br /&gt;
% Función gaussiana&lt;br /&gt;
gaus = @(x) (exp(-x.^2));&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Convoluciones_teorica.gif'; &lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for h = 1:length(DD)&lt;br /&gt;
    D = DD(h);&lt;br /&gt;
&lt;br /&gt;
    % Funciones fundamentales y convolución&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
    convo = @(x,t) (exp(-x.^2./(4*D.*t+1))/sqrt(4*D.*t+1));&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -10:0.1:10;        % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
&lt;br /&gt;
    % Inicialización de la matriz de convolución&lt;br /&gt;
    conv = zeros(length(xx), length(tt));&lt;br /&gt;
&lt;br /&gt;
    % Cálculo de la convolución&lt;br /&gt;
    for j = 1:length(tt) &lt;br /&gt;
        auxt = tt(j);&lt;br /&gt;
        for i = 1:length(xx)&lt;br /&gt;
            auxx = xx(i);&lt;br /&gt;
            val_conv(i,j) = convo(auxx, auxt);&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    hold on;&lt;br /&gt;
    view(3);&lt;br /&gt;
    surf(xx, tt, val_conv.');&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)*N(x)$', 'Interpreter', 'latex');&lt;br /&gt;
    shading flat;&lt;br /&gt;
    shading interp;&lt;br /&gt;
    colormap('jet');&lt;br /&gt;
    title(['Soluciones en dominio no acotado, cuando D=', num2str(D)]);&lt;br /&gt;
    axis([-10, 10, 0, 1, 0, 1]);&lt;br /&gt;
    hold off;&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if h == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Referencias =&lt;br /&gt;
&lt;br /&gt;
* Sandro Salsa, Gianmaria Verzini. Partial Differential Equations in Action From Modelling to Theory ([https://link.springer.com/book/10.1007/978-3-031-21853-8 [1&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84758</id>
		<title>Ecuación del calor (ADMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84758"/>
				<updated>2025-03-17T21:00:34Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: /* Solución acotada vs Solución no acotada */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor (Grupo ADMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | &lt;br /&gt;
*Ángel De Lucas Miranda, &lt;br /&gt;
*Daniel Rodríguez Calderón, &lt;br /&gt;
*Marcos Cabellos Hernández, &lt;br /&gt;
*Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
El desarrollo de la ecuación del calor se atribuye principalmente al matemático y físico francés Joseph Fourier, quien en 1822 publicó su obra ''Théorie analytique de la chaleur''. En este trabajo formuló una ecuación diferencial en derivadas parciales que describe la propagación del calor por difusión en un medio continuo. Su análisis no sólo permitió comprender mejor este fenómeno físico, sino que también promovió el desarrollo de las Series de Fourier, que fueron objeto de estudio en nuestro trabajo anterior. En esta ocasión, profundicemos en dos aspectos de este modelo.&lt;br /&gt;
&lt;br /&gt;
Desde un punto de vista físico, estas ecuaciones permiten la modelización de fenómenos como el calentamiento de materiales o la difusión de solutos en fluidos estacionarios, como ya hemos explorado en algunos ejercicios. Sin embargo, la influencia de la física es más profunda: de hecho, el coeficiente de difusión lleva su nombre por la interpretación física de su acción en el sistema. ¿Cuál es este efecto, y por qué se lo denota de esta forma?&lt;br /&gt;
&lt;br /&gt;
Al tiempo que exploramos este efecto, planteemos también el paso entre problemas de dominio acotado y los de no acotado. Parecería evidente que estos últimos se extiendan naturalmente con los anteriores, pero en el desarrollo teórico de clase se obtenían mediante soluciones autosimilares en vez de problemas de autofunciones. ¿Convergen las soluciones del sistema acotado a la del no acotado cuando el dominio crece lo suficiente? Y de ser así, ¿qué condiciones de frontera en una dimensión funcionan mejor?&lt;br /&gt;
&lt;br /&gt;
=To do list=&lt;br /&gt;
&lt;br /&gt;
1) (Problema acot y sol)Damos la sol. con frontera 0 --&amp;gt; para extender mejor a no acot&lt;br /&gt;
2) Dibujinchis&lt;br /&gt;
3) (Problema no acot) Dar el problema, sol, dibujinchi&lt;br /&gt;
4) Comparar ambas sol. error cuadrático, y el unif. y error numérico para intervalos crecientes [-a,a]&lt;br /&gt;
&lt;br /&gt;
5) Pasar de Diric. a Neum. y dar la explicacion fis. de Neum. Dibujinchis comparación, solapadas&lt;br /&gt;
6) Ver cómo afecta la cte calorifica, densidad y k = relacion flujo gradiente (la D) en ambos casos.&lt;br /&gt;
&lt;br /&gt;
=Solución acotada vs Solución no acotada=&lt;br /&gt;
Demos por conocidos el uso de separación de variables para resolver problemas de autofunciones en caso acotado y el manejo de la solución fundamental junto con la convolución para el sistema no acotado. Para comparar todas las soluciones correspondientes, consideremos sistema &amp;lt;math&amp;gt; 1-&amp;lt;/math&amp;gt;dimensional, con una gaussiana &amp;lt;math&amp;gt; e^{-x^2} &amp;lt;/math&amp;gt; como condición inicial. La justificación de una curva así puede ser, en un experimento físico, el uso de un láser para calentar un punto de una tira fina de metal. Considerando que los fotones puedan desviarse como una distribución normal por el teorema central del límite, es un montaje experimental factible. Además, es una función continua y diferenciable, par y asintóticamente nula, buenas propiedades para un estado inicial del sistema. Pongamos ahora dos posibles condiciones en las fronteras.&lt;br /&gt;
&lt;br /&gt;
Si consideramos de Dirichlet, a una tira de longitud &amp;lt;math&amp;gt; 2a &amp;lt;/math&amp;gt; le colocaremos en los extremos un material que se mantenga siempre a la misma temperatura, pongamos que a una temperatura nula. El sistema resulta&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad  &amp;amp;\forall t &amp;gt; 0, x\in [-a,a]\\ &lt;br /&gt;
u(-a,t) = u(a,t) = 0 \quad  &amp;amp;\forall t &amp;gt; 0 \\ &lt;br /&gt;
u(x,0) = e^{-x^2} \quad  &amp;amp;\forall x\in [-a,a]&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución al resolver el problema de autofunciones viene dada por&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
&lt;br /&gt;
u(x,t) = \sum_{n=1}^\infty A_{n} \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right) e^{-\dfrac{\pi^2}{a^2}\left(n - \frac{1}{2}\right)^2 t}&lt;br /&gt;
\quad \text{ donde }&lt;br /&gt;
A_n = \frac{\int_{-a}^{a} u(x,0) \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}{\int_{-a}^{a} \cos^2\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Consideremos ahora condiciones de frontera Neumann, con un flujo nulo que físicamente viene de poner extremos aislantes. Para cierto &amp;lt;math&amp;gt; b &amp;gt; 0,&amp;lt;/math&amp;gt; y no necesariamente igual que con &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Consideraremos la ecuación del calor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad  &amp;amp;\forall t &amp;gt; 0 , x\in [-b,b]\\ &lt;br /&gt;
u_x(-b,t) = u_x(b,t) = 0 \quad  &amp;amp;\forall t &amp;gt; 0 \\ &lt;br /&gt;
u(x,0) = e^{-x^2}. \quad &amp;amp;\forall x\in[-b,b]&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De nuevo podemos resolver el sistema, por ser homogéneo, mediante separación de variables, obteniendo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
&lt;br /&gt;
u(x,t) = \sum_{m=0}^\infty B_{m} cos\left(\frac{m\pi}{b} x\right) e^{-\dfrac{m^2\pi^2}{b^2} t}\quad \text{ donde }&lt;br /&gt;
B_m = \frac{\int_{-b}^{b} u(x,0) \cos\left(\frac{m\pi}{b} x\right)dx}{\int_{-b}^{b} \cos^2\left(\frac{m\pi}{b}x\right)dx}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un último detalle antes de proceder a los errores es la obtención simbólica de la solución no acotada, realizada a mano y mediante Maple.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad &amp;amp;\forall t&amp;gt;0, x\in \mathbb{R}\\  &lt;br /&gt;
u(x,0) = e^{-x^2} \quad &amp;amp;\forall x\in \mathbb{R}. &lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
\Longrightarrow&lt;br /&gt;
u(x,t) = \frac{1}{\sqrt{4\pi t}}e^{\frac{-x^2}{4t}} * e^{-x^2} = \frac{e^{\frac{-x^2}{4t+1}}}{\sqrt{4t+1}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora que pasamos a los errores, es relevante indicar la naturaleza numérica de los cálculos y la acumulación de errores en estos. Con esto en mente, queremos comprobar cuán bien aproximan las soluciones del caso acotado Dirichlet y Neumann a la obtenida por la solución fundamnetal. Para ello, escojamos un tiempo máximo &amp;lt;math&amp;gt;t_{max} &amp;lt;/math&amp;gt; hasta el cuál tomaremos el error en norma &amp;lt;math&amp;gt; L^{\infty} &amp;lt;/math&amp;gt;. Queremos estudiar&lt;br /&gt;
&lt;br /&gt;
* El efecto de aumentar el rango de definición con &amp;lt;math&amp;gt; a,b &amp;lt;/math&amp;gt;.&lt;br /&gt;
* El efecto de aumentar el número de términos en las series de los sistemas acotados.&lt;br /&gt;
* La relación entre estos parámetros, especialmente consecuencias por error acumulado.&lt;br /&gt;
&lt;br /&gt;
= Códigos =&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Fundamental.gif|500px|thumb|right|Solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. La representación gráfica parte del tiempo inicial &amp;lt;math/&amp;gt; 0.01, &amp;lt;math/&amp;gt; esperando una delta de Dirac en el instante inicial. Nótese que en este tiempo, a mayor coeficiente de difusión más se ha difundido el calor en el sistema, lo que se nota especialmente en el valor máximo observado y su disminución cuanto más crece el coeficiente.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,2,3,4,5,6,7,8,9,10];&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Fundamental.gif';&lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for i = 1:length(DD)&lt;br /&gt;
    D = DD(i);&lt;br /&gt;
&lt;br /&gt;
    % Función fundamental de la ecuación del calor&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -1:0.01:1;         % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
    [X, T] = meshgrid(xx, tt); % Malla de coordenadas&lt;br /&gt;
    PHI_D = phi_D(X, T);   % Evaluación de la función&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    surf(X, T, PHI_D);&lt;br /&gt;
    shading flat&lt;br /&gt;
    shading interp&lt;br /&gt;
    colormap('jet')&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)$', 'Interpreter', 'latex');&lt;br /&gt;
    title(['Solución fundamental de la ecuación del calor, cuando D=', num2str(D)])&lt;br /&gt;
    axis([-1, 1, 0, 1, 0, 3])&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if i == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Convoluciones_teorica.gif|500px|thumb|right|Soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,10,20,30,40,50,60,70,80,90,100];&lt;br /&gt;
&lt;br /&gt;
% Función gaussiana&lt;br /&gt;
gaus = @(x) (exp(-x.^2));&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Convoluciones_teorica.gif'; &lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for h = 1:length(DD)&lt;br /&gt;
    D = DD(h);&lt;br /&gt;
&lt;br /&gt;
    % Funciones fundamentales y convolución&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
    convo = @(x,t) (exp(-x.^2./(4*D.*t+1))/sqrt(4*D.*t+1));&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -10:0.1:10;        % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
&lt;br /&gt;
    % Inicialización de la matriz de convolución&lt;br /&gt;
    conv = zeros(length(xx), length(tt));&lt;br /&gt;
&lt;br /&gt;
    % Cálculo de la convolución&lt;br /&gt;
    for j = 1:length(tt) &lt;br /&gt;
        auxt = tt(j);&lt;br /&gt;
        for i = 1:length(xx)&lt;br /&gt;
            auxx = xx(i);&lt;br /&gt;
            val_conv(i,j) = convo(auxx, auxt);&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    hold on;&lt;br /&gt;
    view(3);&lt;br /&gt;
    surf(xx, tt, val_conv.');&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)*N(x)$', 'Interpreter', 'latex');&lt;br /&gt;
    shading flat;&lt;br /&gt;
    shading interp;&lt;br /&gt;
    colormap('jet');&lt;br /&gt;
    title(['Soluciones en dominio no acotado, cuando D=', num2str(D)]);&lt;br /&gt;
    axis([-10, 10, 0, 1, 0, 1]);&lt;br /&gt;
    hold off;&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if h == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Referencias =&lt;br /&gt;
&lt;br /&gt;
* Sandro Salsa, Gianmaria Verzini. Partial Differential Equations in Action From Modelling to Theory ([https://link.springer.com/book/10.1007/978-3-031-21853-8 [1&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84757</id>
		<title>Ecuación del calor (ADMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84757"/>
				<updated>2025-03-17T20:53:55Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: /* Solución acotada vs Solución no acotada */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor (Grupo ADMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | &lt;br /&gt;
*Ángel De Lucas Miranda, &lt;br /&gt;
*Daniel Rodríguez Calderón, &lt;br /&gt;
*Marcos Cabellos Hernández, &lt;br /&gt;
*Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
El desarrollo de la ecuación del calor se atribuye principalmente al matemático y físico francés Joseph Fourier, quien en 1822 publicó su obra ''Théorie analytique de la chaleur''. En este trabajo formuló una ecuación diferencial en derivadas parciales que describe la propagación del calor por difusión en un medio continuo. Su análisis no sólo permitió comprender mejor este fenómeno físico, sino que también promovió el desarrollo de las Series de Fourier, que fueron objeto de estudio en nuestro trabajo anterior. En esta ocasión, profundicemos en dos aspectos de este modelo.&lt;br /&gt;
&lt;br /&gt;
Desde un punto de vista físico, estas ecuaciones permiten la modelización de fenómenos como el calentamiento de materiales o la difusión de solutos en fluidos estacionarios, como ya hemos explorado en algunos ejercicios. Sin embargo, la influencia de la física es más profunda: de hecho, el coeficiente de difusión lleva su nombre por la interpretación física de su acción en el sistema. ¿Cuál es este efecto, y por qué se lo denota de esta forma?&lt;br /&gt;
&lt;br /&gt;
Al tiempo que exploramos este efecto, planteemos también el paso entre problemas de dominio acotado y los de no acotado. Parecería evidente que estos últimos se extiendan naturalmente con los anteriores, pero en el desarrollo teórico de clase se obtenían mediante soluciones autosimilares en vez de problemas de autofunciones. ¿Convergen las soluciones del sistema acotado a la del no acotado cuando el dominio crece lo suficiente? Y de ser así, ¿qué condiciones de frontera en una dimensión funcionan mejor?&lt;br /&gt;
&lt;br /&gt;
=To do list=&lt;br /&gt;
&lt;br /&gt;
1) (Problema acot y sol)Damos la sol. con frontera 0 --&amp;gt; para extender mejor a no acot&lt;br /&gt;
2) Dibujinchis&lt;br /&gt;
3) (Problema no acot) Dar el problema, sol, dibujinchi&lt;br /&gt;
4) Comparar ambas sol. error cuadrático, y el unif. y error numérico para intervalos crecientes [-a,a]&lt;br /&gt;
&lt;br /&gt;
5) Pasar de Diric. a Neum. y dar la explicacion fis. de Neum. Dibujinchis comparación, solapadas&lt;br /&gt;
6) Ver cómo afecta la cte calorifica, densidad y k = relacion flujo gradiente (la D) en ambos casos.&lt;br /&gt;
&lt;br /&gt;
=Solución acotada vs Solución no acotada=&lt;br /&gt;
Demos por conocidos el uso de separación de variables para resolver problemas de autofunciones en caso acotado y el manejo de la solución fundamental junto con la convolución para el sistema no acotado. Para comparar todas las soluciones correspondientes, consideremos sistema &amp;lt;math&amp;gt; 1-&amp;lt;/math&amp;gt;dimensional, con una gaussiana &amp;lt;math&amp;gt; e^{-x^2} &amp;lt;/math&amp;gt; como condición inicial. La justificación de una curva así puede ser, en un experimento físico, el uso de un láser para calentar un punto de una tira fina de metal. Considerando que los fotones puedan desviarse como una distribución normal por el teorema central del límite, es un montaje experimental factible. Además, es una función continua y diferenciable, par y asintóticamente nula, buenas propiedades para un estado inicial del sistema. Pongamos ahora dos posibles condiciones en las fronteras.&lt;br /&gt;
&lt;br /&gt;
Si consideramos de Dirichlet, a una tira de longitud &amp;lt;math&amp;gt; 2a &amp;lt;/math&amp;gt; le colocaremos en los extremos un material que se mantenga siempre a la misma temperatura, pongamos que a una temperatura nula. El sistema resulta&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad  &amp;amp;\forall t &amp;gt; 0, x\in [-a,a]\\ &lt;br /&gt;
u(-a,t) = u(a,t) = 0 \quad  &amp;amp;\forall t &amp;gt; 0 \\ &lt;br /&gt;
u(x,0) = e^{-x^2} \quad  &amp;amp;\forall x\in [-a,a]&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución al resolver el problema de autofunciones viene dada por&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
&lt;br /&gt;
u(x,t) = \sum_{n=1}^\infty A_{n} \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right) e^{-\dfrac{\pi^2}{a^2}\left(n - \frac{1}{2}\right)^2 t}&lt;br /&gt;
\quad \text{ donde }&lt;br /&gt;
A_n = \frac{\int_{-a}^{a} u(x,0) \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}{\int_{-a}^{a} \cos^2\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Consideremos ahora condiciones de frontera Neumann, con un flujo nulo que físicamente viene de poner extremos aislantes. Para cierto &amp;lt;math&amp;gt; b &amp;gt; 0,&amp;lt;/math&amp;gt; y no necesariamente igual que con &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Consideraremos la ecuación del calor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad  &amp;amp;\forall t &amp;gt; 0 , x\in [-b,b]\\ &lt;br /&gt;
u_x(-b,t) = u_x(b,t) = 0 \quad  &amp;amp;\forall t &amp;gt; 0 \\ &lt;br /&gt;
u(x,0) = e^{-x^2}. \quad &amp;amp;\forall x\in[-b,b]&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De nuevo podemos resolver el sistema, por ser homogéneo, mediante separación de variables, obteniendo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
&lt;br /&gt;
u(x,t) = \sum_{m=0}^\infty B_{m} cos\left(\frac{m\pi}{b} x\right) e^{-\dfrac{m^2\pi^2}{b^2} t}\quad \text{ donde }&lt;br /&gt;
B_m = \frac{\int_{-b}^{b} u(x,0) \cos\left(\frac{m\pi}{b} x\right)dx}{\int_{-b}^{b} \cos^2\left(\frac{m\pi}{b}x\right)dx}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un último detalle antes de proceder a los errores es la obtención simbólica de la solución no acotada, realizada a mano y mediante Maple.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad &amp;amp;\forall t&amp;gt;0, x\in \mathbb{R}\\  &lt;br /&gt;
u(x,0) = e^{-x^2} \quad &amp;amp;\forall x\in \mathbb{R}. &lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
\Longrightarrow&lt;br /&gt;
u(x,t) = \frac{1}{\sqrt{4\pi t}}e^{\frac{-x^2}{4t}} * e^{-x^2} = \frac{e^{\frac{-x^2}{4t+1}}}{\sqrt{4t+1}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Códigos =&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Fundamental.gif|500px|thumb|right|Solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. La representación gráfica parte del tiempo inicial &amp;lt;math/&amp;gt; 0.01, &amp;lt;math/&amp;gt; esperando una delta de Dirac en el instante inicial. Nótese que en este tiempo, a mayor coeficiente de difusión más se ha difundido el calor en el sistema, lo que se nota especialmente en el valor máximo observado y su disminución cuanto más crece el coeficiente.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,2,3,4,5,6,7,8,9,10];&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Fundamental.gif';&lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for i = 1:length(DD)&lt;br /&gt;
    D = DD(i);&lt;br /&gt;
&lt;br /&gt;
    % Función fundamental de la ecuación del calor&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -1:0.01:1;         % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
    [X, T] = meshgrid(xx, tt); % Malla de coordenadas&lt;br /&gt;
    PHI_D = phi_D(X, T);   % Evaluación de la función&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    surf(X, T, PHI_D);&lt;br /&gt;
    shading flat&lt;br /&gt;
    shading interp&lt;br /&gt;
    colormap('jet')&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)$', 'Interpreter', 'latex');&lt;br /&gt;
    title(['Solución fundamental de la ecuación del calor, cuando D=', num2str(D)])&lt;br /&gt;
    axis([-1, 1, 0, 1, 0, 3])&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if i == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Convoluciones_teorica.gif|500px|thumb|right|Soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,10,20,30,40,50,60,70,80,90,100];&lt;br /&gt;
&lt;br /&gt;
% Función gaussiana&lt;br /&gt;
gaus = @(x) (exp(-x.^2));&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Convoluciones_teorica.gif'; &lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for h = 1:length(DD)&lt;br /&gt;
    D = DD(h);&lt;br /&gt;
&lt;br /&gt;
    % Funciones fundamentales y convolución&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
    convo = @(x,t) (exp(-x.^2./(4*D.*t+1))/sqrt(4*D.*t+1));&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -10:0.1:10;        % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
&lt;br /&gt;
    % Inicialización de la matriz de convolución&lt;br /&gt;
    conv = zeros(length(xx), length(tt));&lt;br /&gt;
&lt;br /&gt;
    % Cálculo de la convolución&lt;br /&gt;
    for j = 1:length(tt) &lt;br /&gt;
        auxt = tt(j);&lt;br /&gt;
        for i = 1:length(xx)&lt;br /&gt;
            auxx = xx(i);&lt;br /&gt;
            val_conv(i,j) = convo(auxx, auxt);&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    hold on;&lt;br /&gt;
    view(3);&lt;br /&gt;
    surf(xx, tt, val_conv.');&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)*N(x)$', 'Interpreter', 'latex');&lt;br /&gt;
    shading flat;&lt;br /&gt;
    shading interp;&lt;br /&gt;
    colormap('jet');&lt;br /&gt;
    title(['Soluciones en dominio no acotado, cuando D=', num2str(D)]);&lt;br /&gt;
    axis([-10, 10, 0, 1, 0, 1]);&lt;br /&gt;
    hold off;&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if h == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Referencias =&lt;br /&gt;
&lt;br /&gt;
* Sandro Salsa, Gianmaria Verzini. Partial Differential Equations in Action From Modelling to Theory ([https://link.springer.com/book/10.1007/978-3-031-21853-8 [1&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84756</id>
		<title>Ecuación del calor (ADMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84756"/>
				<updated>2025-03-17T20:48:30Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: /* Solución acotada vs Solución no acotada */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor (Grupo ADMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | &lt;br /&gt;
*Ángel De Lucas Miranda, &lt;br /&gt;
*Daniel Rodríguez Calderón, &lt;br /&gt;
*Marcos Cabellos Hernández, &lt;br /&gt;
*Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
El desarrollo de la ecuación del calor se atribuye principalmente al matemático y físico francés Joseph Fourier, quien en 1822 publicó su obra ''Théorie analytique de la chaleur''. En este trabajo formuló una ecuación diferencial en derivadas parciales que describe la propagación del calor por difusión en un medio continuo. Su análisis no sólo permitió comprender mejor este fenómeno físico, sino que también promovió el desarrollo de las Series de Fourier, que fueron objeto de estudio en nuestro trabajo anterior. En esta ocasión, profundicemos en dos aspectos de este modelo.&lt;br /&gt;
&lt;br /&gt;
Desde un punto de vista físico, estas ecuaciones permiten la modelización de fenómenos como el calentamiento de materiales o la difusión de solutos en fluidos estacionarios, como ya hemos explorado en algunos ejercicios. Sin embargo, la influencia de la física es más profunda: de hecho, el coeficiente de difusión lleva su nombre por la interpretación física de su acción en el sistema. ¿Cuál es este efecto, y por qué se lo denota de esta forma?&lt;br /&gt;
&lt;br /&gt;
Al tiempo que exploramos este efecto, planteemos también el paso entre problemas de dominio acotado y los de no acotado. Parecería evidente que estos últimos se extiendan naturalmente con los anteriores, pero en el desarrollo teórico de clase se obtenían mediante soluciones autosimilares en vez de problemas de autofunciones. ¿Convergen las soluciones del sistema acotado a la del no acotado cuando el dominio crece lo suficiente? Y de ser así, ¿qué condiciones de frontera en una dimensión funcionan mejor?&lt;br /&gt;
&lt;br /&gt;
=To do list=&lt;br /&gt;
&lt;br /&gt;
1) (Problema acot y sol)Damos la sol. con frontera 0 --&amp;gt; para extender mejor a no acot&lt;br /&gt;
2) Dibujinchis&lt;br /&gt;
3) (Problema no acot) Dar el problema, sol, dibujinchi&lt;br /&gt;
4) Comparar ambas sol. error cuadrático, y el unif. y error numérico para intervalos crecientes [-a,a]&lt;br /&gt;
&lt;br /&gt;
5) Pasar de Diric. a Neum. y dar la explicacion fis. de Neum. Dibujinchis comparación, solapadas&lt;br /&gt;
6) Ver cómo afecta la cte calorifica, densidad y k = relacion flujo gradiente (la D) en ambos casos.&lt;br /&gt;
&lt;br /&gt;
=Solución acotada vs Solución no acotada=&lt;br /&gt;
Demos por conocidos el uso de separación de variables para resolver problemas de autofunciones en caso acotado y el manejo de la solución fundamental junto con la convolución para el sistema no acotado. Para comparar todas las soluciones correspondientes, consideremos sistema &amp;lt;math&amp;gt; 1-&amp;lt;/math&amp;gt;dimensional, con una gaussiana &amp;lt;math&amp;gt; e^{-x^2} &amp;lt;/math&amp;gt; como condición inicial. La justificación de una curva así puede ser, en un experimento físico, el uso de un láser para calentar un punto de una tira fina de metal. Considerando que los fotones puedan desviarse como una distribución normal por el teorema central del límite, es un montaje experimental factible. Además, es una función continua y diferenciable, par y asintóticamente nula, buenas propiedades para un estado inicial del sistema. Pongamos ahora dos posibles condiciones en las fronteras.&lt;br /&gt;
&lt;br /&gt;
Si consideramos de Dirichlet, a una tira de longitud &amp;lt;math&amp;gt; 2a &amp;lt;/math&amp;gt; le colocaremos en los extremos un material que se mantenga siempre a la misma temperatura, pongamos que a una temperatura nula. El sistema resulta&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad  &amp;amp;\forall t &amp;gt; 0, x\in [-a,a]\\ &lt;br /&gt;
u(-a,t) = u(a,t) = 0 \quad  &amp;amp;\forall t &amp;gt; 0 \\ &lt;br /&gt;
u(x,0) = e^{-x^2} \quad  &amp;amp;\forall x\in [-a,a]&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución al resolver el problema de autofunciones viene dada por&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
&lt;br /&gt;
u(x,t) = \sum_{n=1}^\infty A_{n} \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right) e^{-\dfrac{\pi^2}{a^2}\left(n - \frac{1}{2}\right)^2 t}&lt;br /&gt;
\quad \text{ donde }&lt;br /&gt;
A_n = \frac{\int_{-a}^{a} u(x,0) \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}{\int_{-a}^{a} \cos^2\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Consideremos ahora condiciones de frontera Neumann, con un flujo nulo que físicamente viene de poner extremos aislantes. Para cierto &amp;lt;math&amp;gt; b &amp;gt; 0,&amp;lt;/math&amp;gt; y no necesariamente igual que con &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Consideraremos la ecuación del calor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad  &amp;amp;\forall t &amp;gt; 0 , x\in [-b,b]\\ &lt;br /&gt;
u_x(-b,t) = u_x(b,t) = 0 \quad  &amp;amp;\forall t &amp;gt; 0 \\ &lt;br /&gt;
u(x,0) = e^{-x^2}. \quad &amp;amp;\forall x\in[-b,b]&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De nuevo podemos resolver el sistema, por ser homogéneo, mediante separación de variables, obteniendo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
&lt;br /&gt;
u(x,t) = \sum_{m=0}^\infty B_{m} cos\left(\frac{m\pi}{b} x\right) e^{-\dfrac{m^2\pi^2}{b^2} t}\quad \text{ donde }&lt;br /&gt;
B_m = \frac{\int_{-b}^{b} u(x,0) \cos\left(\frac{m\pi}{b} x\right)dx}{\int_{-b}^{b} \cos^2\left(\frac{m\pi}{b}x\right)dx}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un último detalle antes de proceder a los errores es la obtención simbólica de la solución no acotada, realizada a mano y mediante Maple.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{align}&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \quad &amp;amp;\forall t&amp;gt;0, x\in \mathbb{R}\\  &lt;br /&gt;
u(x,0) = e^{-x^2} \quad &amp;amp;\forall x\in \mathbb{R}. &lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
\Longrightarrow&lt;br /&gt;
u(x,t) = \frac{1}{sqrt}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Códigos =&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Fundamental.gif|500px|thumb|right|Solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. La representación gráfica parte del tiempo inicial &amp;lt;math/&amp;gt; 0.01, &amp;lt;math/&amp;gt; esperando una delta de Dirac en el instante inicial. Nótese que en este tiempo, a mayor coeficiente de difusión más se ha difundido el calor en el sistema, lo que se nota especialmente en el valor máximo observado y su disminución cuanto más crece el coeficiente.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,2,3,4,5,6,7,8,9,10];&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Fundamental.gif';&lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for i = 1:length(DD)&lt;br /&gt;
    D = DD(i);&lt;br /&gt;
&lt;br /&gt;
    % Función fundamental de la ecuación del calor&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -1:0.01:1;         % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
    [X, T] = meshgrid(xx, tt); % Malla de coordenadas&lt;br /&gt;
    PHI_D = phi_D(X, T);   % Evaluación de la función&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    surf(X, T, PHI_D);&lt;br /&gt;
    shading flat&lt;br /&gt;
    shading interp&lt;br /&gt;
    colormap('jet')&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)$', 'Interpreter', 'latex');&lt;br /&gt;
    title(['Solución fundamental de la ecuación del calor, cuando D=', num2str(D)])&lt;br /&gt;
    axis([-1, 1, 0, 1, 0, 3])&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if i == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Convoluciones_teorica.gif|500px|thumb|right|Soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,10,20,30,40,50,60,70,80,90,100];&lt;br /&gt;
&lt;br /&gt;
% Función gaussiana&lt;br /&gt;
gaus = @(x) (exp(-x.^2));&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Convoluciones_teorica.gif'; &lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for h = 1:length(DD)&lt;br /&gt;
    D = DD(h);&lt;br /&gt;
&lt;br /&gt;
    % Funciones fundamentales y convolución&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
    convo = @(x,t) (exp(-x.^2./(4*D.*t+1))/sqrt(4*D.*t+1));&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -10:0.1:10;        % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
&lt;br /&gt;
    % Inicialización de la matriz de convolución&lt;br /&gt;
    conv = zeros(length(xx), length(tt));&lt;br /&gt;
&lt;br /&gt;
    % Cálculo de la convolución&lt;br /&gt;
    for j = 1:length(tt) &lt;br /&gt;
        auxt = tt(j);&lt;br /&gt;
        for i = 1:length(xx)&lt;br /&gt;
            auxx = xx(i);&lt;br /&gt;
            val_conv(i,j) = convo(auxx, auxt);&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    hold on;&lt;br /&gt;
    view(3);&lt;br /&gt;
    surf(xx, tt, val_conv.');&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)*N(x)$', 'Interpreter', 'latex');&lt;br /&gt;
    shading flat;&lt;br /&gt;
    shading interp;&lt;br /&gt;
    colormap('jet');&lt;br /&gt;
    title(['Soluciones en dominio no acotado, cuando D=', num2str(D)]);&lt;br /&gt;
    axis([-10, 10, 0, 1, 0, 1]);&lt;br /&gt;
    hold off;&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if h == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Referencias =&lt;br /&gt;
&lt;br /&gt;
* Sandro Salsa, Gianmaria Verzini. Partial Differential Equations in Action From Modelling to Theory ([https://link.springer.com/book/10.1007/978-3-031-21853-8 [1&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84512</id>
		<title>Ecuación del calor (ADMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84512"/>
				<updated>2025-03-16T16:36:28Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: /* Códigos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor (Grupo ADMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | &lt;br /&gt;
*Ángel De Lucas Miranda, &lt;br /&gt;
*Daniel Rodríguez Calderón, &lt;br /&gt;
*Marcos Cabellos Hernández, &lt;br /&gt;
*Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
El desarrollo de la ecuación del calor se atribuye principalmente al matemático y físico francés Joseph Fourier, quien en 1822 publicó su obra ''Théorie analytique de la chaleur''. En este trabajo formuló una ecuación diferencial en derivadas parciales que describe la propagación del calor por difusión en un medio continuo. Su análisis no sólo permitió comprender mejor este fenómeno físico, sino que también promovió el desarrollo de las Series de Fourier, que fueron objeto de estudio en nuestro trabajo anterior. En esta ocasión, profundicemos en dos aspectos de este modelo.&lt;br /&gt;
&lt;br /&gt;
(Este párrafo 100% :))&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Desde un punto de vista físico, es natural abordar este problema en un dominio acotado, como una barra metálica de longitud finita, dado que los sistemas reales suelen estar limitados en el espacio. Sin embargo, el afán de abstracción y generalización característico de la matemática llevó a Fourier a considerar también el caso de un dominio no acotado, es decir, una barra metálica de &amp;quot;longitud infinita&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
En este trabajo, analizamos cómo varían las soluciones de la ecuación del calor en dominios acotados y no acotados, identificando sus diferencias y explorando sus implicaciones en la modelización de procesos físicos reales.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Desde un punto de vista físico, estas ecuaciones permiten la modelización de fenómenos como el calentamiento de materiales o la difusión de solutos en fluidos estacionarios, como ya hemos explorado en algunos ejercicios. Sin embargo, la influencia de la física es más profunda: de hecho, el coeficiente de difusión lleva su nombre por la interpretación física de su acción en el sistema. ¿Cuál es este efecto, y por qué se lo denota de esta forma?&lt;br /&gt;
&lt;br /&gt;
Al tiempo que exploramos este efecto, planteemos también el paso entre problemas de dominio acotado y los de no acotado. Parecería evidente que estos últimos se extiendan naturalmente con los anteriores, pero en el desarrollo teórico de clase se obtenían mediante soluciones autosimilares en vez de problemas de autofunciones. ¿Convergen las soluciones del sistema acotado a la del no acotado cuando el dominio crece lo suficiente? Y de ser así, ¿qué condiciones de frontera en una dimensión funcionan mejor?&lt;br /&gt;
&lt;br /&gt;
=To do list=&lt;br /&gt;
&lt;br /&gt;
1) (Problema acot y sol)Damos la sol. con frontera 0 --&amp;gt; para extender mejor a no acot&lt;br /&gt;
2) Dibujinchis&lt;br /&gt;
3) (Problema no acot) Dar el problema, sol, dibujinchi&lt;br /&gt;
4) Comparar ambas sol. error cuadrático, y el unif. y error numérico para intervalos crecientes [-a,a]&lt;br /&gt;
&lt;br /&gt;
5) Pasar de Diric. a Neum. y dar la explicacion fis. de Neum. Dibujinchis comparación, solapadas&lt;br /&gt;
6) Ver cómo afecta la cte calorifica, densidad y k = relacion flujo gradiente (la D) en ambos casos.&lt;br /&gt;
&lt;br /&gt;
=Solución acotada vs Solución no acotada=&lt;br /&gt;
&lt;br /&gt;
Vamos a considerar el siguiente problema de calor bidimensional sobre una barra metálica de longitud &amp;lt;math&amp;gt;2a, a&amp;gt;0&amp;lt;/math&amp;gt; con condiciones Dirichlet en la frontera:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \\ &lt;br /&gt;
u(-a,t) = u(a,t) = 0 \quad  \forall t &amp;gt; 0 \\ &lt;br /&gt;
u(x,0) = Gaus &lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
cuya solución al resolver el problema de autofunciones viene dada por:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
&lt;br /&gt;
u(x,t) = \sum_{n=1}^\infty A_{n} \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right) e^{-\dfrac{\pi^2}{a^2}\left(n - \frac{1}{2}\right)^2 t}&lt;br /&gt;
\quad \text{ donde }&lt;br /&gt;
A_n = \frac{\int_{-a}^{a} u(x,0) \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}{\int_{-a}^{a} \cos^2\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Consideremos ahora condiciones de frontera Neumann, de forma que el sistema quede aislado. Para cierto &amp;lt;math&amp;gt; b &amp;gt; 0,&amp;lt;/math&amp;gt; y no necesariamente igual que con &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Consideraremos la ecuación del calor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \\ &lt;br /&gt;
u_x(-b,t) = u_x(b,t) = 0 \quad  \forall t &amp;gt; 0 \\ &lt;br /&gt;
u(x,0) = Gaus. &lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De nuevo podemos resolver el sistema, por ser homogéneo, mediante separación de variables, obteniendo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
&lt;br /&gt;
u(x,t) = \sum_{m=1}^\infty B_{m} cos\left(\frac{m\pi}{b} x\right) e^{-\dfrac{m^2\pi^2}{b^2} t}\quad \text{ donde }&lt;br /&gt;
B_m = \frac{\int_{-b}^{b} u(x,0) \cos\left(\frac{m\pi}{b} x\right)dx}{\int_{-b}^{b} \cos^2\left(\frac{m\pi}{b}x\right)dx}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Veamos si, para valores de &amp;lt;math&amp;gt; a \text{y} b &amp;lt;/math&amp;gt; grandes, las soluciones previamente halladas distan mucho entre sí, es decir, vamos a estudiar los errores y las diferencias que hay entre ambas soluciones.&lt;br /&gt;
&lt;br /&gt;
=Códigos=&lt;br /&gt;
[[Archivo:Fundamental.gif|500px|thumb|right|Solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. La representación gráfica parte del tiempo inicial &amp;lt;math&amp;gt;0.01 &amp;lt;math/&amp;gt;, esperando una delta de Dirac en el instante inicial. Nótese que en este tiempo, a mayor coeficiente de difusión más se ha difundido el calor en el sistema, lo que se nota especialmente en el valor máximo observado y su disminución cuanto más crece el coeficiente.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,2,3,4,5,6,7,8,9,10];&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Fundamental.gif';&lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for i = 1:length(DD)&lt;br /&gt;
    D = DD(i);&lt;br /&gt;
&lt;br /&gt;
    % Función fundamental de la ecuación del calor&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -1:0.01:1;         % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
    [X, T] = meshgrid(xx, tt); % Malla de coordenadas&lt;br /&gt;
    PHI_D = phi_D(X, T);   % Evaluación de la función&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    surf(X, T, PHI_D);&lt;br /&gt;
    shading flat&lt;br /&gt;
    shading interp&lt;br /&gt;
    colormap('jet')&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)$', 'Interpreter', 'latex');&lt;br /&gt;
    title(['Solución fundamental de la ecuación del calor, cuando D=', num2str(D)])&lt;br /&gt;
    axis([-1, 1, 0, 1, 0, 3])&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if i == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Convoluciones_teorica.gif|500px|thumb|right|Soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,10,20,30,40,50,60,70,80,90,100];&lt;br /&gt;
mu = 0;&lt;br /&gt;
s = 1;&lt;br /&gt;
&lt;br /&gt;
% Función gaussiana&lt;br /&gt;
gaus = @(x) (exp(-x.^2));&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Convoluciones_teorica.gif'; &lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for h = 1:length(DD)&lt;br /&gt;
    D = DD(h);&lt;br /&gt;
&lt;br /&gt;
    % Funciones fundamentales y convolución&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
    convo = @(x,t) (exp(-x.^2./(4*D.*t+1))/sqrt(4*D.*t+1));&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -10:0.1:10;        % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
&lt;br /&gt;
    % Inicialización de la matriz de convolución&lt;br /&gt;
    conv = zeros(length(xx), length(tt));&lt;br /&gt;
&lt;br /&gt;
    % Cálculo de la convolución&lt;br /&gt;
    for j = 1:length(tt) &lt;br /&gt;
        auxt = tt(j);&lt;br /&gt;
        for i = 1:length(xx)&lt;br /&gt;
            auxx = xx(i);&lt;br /&gt;
            val_conv(i,j) = convo(auxx, auxt);&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    hold on;&lt;br /&gt;
    view(3);&lt;br /&gt;
    surf(xx, tt, val_conv.');&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)*N(x)$', 'Interpreter', 'latex');&lt;br /&gt;
    shading flat;&lt;br /&gt;
    shading interp;&lt;br /&gt;
    colormap('jet');&lt;br /&gt;
    title(['Soluciones en dominio no acotado, cuando D=', num2str(D)]);&lt;br /&gt;
    axis([-10, 10, 0, 1, 0, 1]);&lt;br /&gt;
    hold off;&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if h == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Referencias =&lt;br /&gt;
&lt;br /&gt;
* Sandro Salsa, Gianmaria Verzini. Partial Differential Equations in Action From Modelling to Theory ([https://link.springer.com/book/10.1007/978-3-031-21853-8 [1&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84511</id>
		<title>Ecuación del calor (ADMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84511"/>
				<updated>2025-03-16T16:33:13Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: /* Códigos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor (Grupo ADMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | &lt;br /&gt;
*Ángel De Lucas Miranda, &lt;br /&gt;
*Daniel Rodríguez Calderón, &lt;br /&gt;
*Marcos Cabellos Hernández, &lt;br /&gt;
*Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
El desarrollo de la ecuación del calor se atribuye principalmente al matemático y físico francés Joseph Fourier, quien en 1822 publicó su obra ''Théorie analytique de la chaleur''. En este trabajo formuló una ecuación diferencial en derivadas parciales que describe la propagación del calor por difusión en un medio continuo. Su análisis no sólo permitió comprender mejor este fenómeno físico, sino que también promovió el desarrollo de las Series de Fourier, que fueron objeto de estudio en nuestro trabajo anterior. En esta ocasión, profundicemos en dos aspectos de este modelo.&lt;br /&gt;
&lt;br /&gt;
(Este párrafo 100% :))&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Desde un punto de vista físico, es natural abordar este problema en un dominio acotado, como una barra metálica de longitud finita, dado que los sistemas reales suelen estar limitados en el espacio. Sin embargo, el afán de abstracción y generalización característico de la matemática llevó a Fourier a considerar también el caso de un dominio no acotado, es decir, una barra metálica de &amp;quot;longitud infinita&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
En este trabajo, analizamos cómo varían las soluciones de la ecuación del calor en dominios acotados y no acotados, identificando sus diferencias y explorando sus implicaciones en la modelización de procesos físicos reales.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Desde un punto de vista físico, estas ecuaciones permiten la modelización de fenómenos como el calentamiento de materiales o la difusión de solutos en fluidos estacionarios, como ya hemos explorado en algunos ejercicios. Sin embargo, la influencia de la física es más profunda: de hecho, el coeficiente de difusión lleva su nombre por la interpretación física de su acción en el sistema. ¿Cuál es este efecto, y por qué se lo denota de esta forma?&lt;br /&gt;
&lt;br /&gt;
Al tiempo que exploramos este efecto, planteemos también el paso entre problemas de dominio acotado y los de no acotado. Parecería evidente que estos últimos se extiendan naturalmente con los anteriores, pero en el desarrollo teórico de clase se obtenían mediante soluciones autosimilares en vez de problemas de autofunciones. ¿Convergen las soluciones del sistema acotado a la del no acotado cuando el dominio crece lo suficiente? Y de ser así, ¿qué condiciones de frontera en una dimensión funcionan mejor?&lt;br /&gt;
&lt;br /&gt;
=To do list=&lt;br /&gt;
&lt;br /&gt;
1) (Problema acot y sol)Damos la sol. con frontera 0 --&amp;gt; para extender mejor a no acot&lt;br /&gt;
2) Dibujinchis&lt;br /&gt;
3) (Problema no acot) Dar el problema, sol, dibujinchi&lt;br /&gt;
4) Comparar ambas sol. error cuadrático, y el unif. y error numérico para intervalos crecientes [-a,a]&lt;br /&gt;
&lt;br /&gt;
5) Pasar de Diric. a Neum. y dar la explicacion fis. de Neum. Dibujinchis comparación, solapadas&lt;br /&gt;
6) Ver cómo afecta la cte calorifica, densidad y k = relacion flujo gradiente (la D) en ambos casos.&lt;br /&gt;
&lt;br /&gt;
=Solución acotada vs Solución no acotada=&lt;br /&gt;
&lt;br /&gt;
Vamos a considerar el siguiente problema de calor bidimensional sobre una barra metálica de longitud &amp;lt;math&amp;gt;2a, a&amp;gt;0&amp;lt;/math&amp;gt; con condiciones Dirichlet en la frontera:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \\ &lt;br /&gt;
u(-a,t) = u(a,t) = 0 \quad  \forall t &amp;gt; 0 \\ &lt;br /&gt;
u(x,0) = Gaus &lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
cuya solución al resolver el problema de autofunciones viene dada por:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
&lt;br /&gt;
u(x,t) = \sum_{n=1}^\infty A_{n} \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right) e^{-\dfrac{\pi^2}{a^2}\left(n - \frac{1}{2}\right)^2 t}&lt;br /&gt;
\quad \text{ donde }&lt;br /&gt;
A_n = \frac{\int_{-a}^{a} u(x,0) \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}{\int_{-a}^{a} \cos^2\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Consideremos ahora condiciones de frontera Neumann, de forma que el sistema quede aislado. Para cierto &amp;lt;math&amp;gt; b &amp;gt; 0,&amp;lt;/math&amp;gt; y no necesariamente igual que con &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Consideraremos la ecuación del calor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \\ &lt;br /&gt;
u_x(-b,t) = u_x(b,t) = 0 \quad  \forall t &amp;gt; 0 \\ &lt;br /&gt;
u(x,0) = Gaus. &lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De nuevo podemos resolver el sistema, por ser homogéneo, mediante separación de variables, obteniendo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
&lt;br /&gt;
u(x,t) = \sum_{m=1}^\infty B_{m} cos\left(\frac{m\pi}{b} x\right) e^{-\dfrac{m^2\pi^2}{b^2} t}\quad \text{ donde }&lt;br /&gt;
B_m = \frac{\int_{-b}^{b} u(x,0) \cos\left(\frac{m\pi}{b} x\right)dx}{\int_{-b}^{b} \cos^2\left(\frac{m\pi}{b}x\right)dx}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Veamos si, para valores de &amp;lt;math&amp;gt; a \text{y} b &amp;lt;/math&amp;gt; grandes, las soluciones previamente halladas distan mucho entre sí, es decir, vamos a estudiar los errores y las diferencias que hay entre ambas soluciones.&lt;br /&gt;
&lt;br /&gt;
=Códigos=&lt;br /&gt;
[[Archivo:Fundamental.gif|500px|thumb|right|Solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. ]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,2,3,4,5,6,7,8,9,10];&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Fundamental.gif';&lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for i = 1:length(DD)&lt;br /&gt;
    D = DD(i);&lt;br /&gt;
&lt;br /&gt;
    % Función fundamental de la ecuación del calor&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -1:0.01:1;         % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
    [X, T] = meshgrid(xx, tt); % Malla de coordenadas&lt;br /&gt;
    PHI_D = phi_D(X, T);   % Evaluación de la función&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    surf(X, T, PHI_D);&lt;br /&gt;
    shading flat&lt;br /&gt;
    shading interp&lt;br /&gt;
    colormap('jet')&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)$', 'Interpreter', 'latex');&lt;br /&gt;
    title(['Solución fundamental de la ecuación del calor, cuando D=', num2str(D)])&lt;br /&gt;
    axis([-1, 1, 0, 1, 0, 3])&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if i == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Convoluciones_teorica.gif|500px|thumb|right|Soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,10,20,30,40,50,60,70,80,90,100];&lt;br /&gt;
mu = 0;&lt;br /&gt;
s = 1;&lt;br /&gt;
&lt;br /&gt;
% Función gaussiana&lt;br /&gt;
gaus = @(x) (exp(-x.^2));&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Convoluciones_teorica.gif'; &lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for h = 1:length(DD)&lt;br /&gt;
    D = DD(h);&lt;br /&gt;
&lt;br /&gt;
    % Funciones fundamentales y convolución&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
    convo = @(x,t) (exp(-x.^2./(4*D.*t+1))/sqrt(4*D.*t+1));&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -10:0.1:10;        % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
&lt;br /&gt;
    % Inicialización de la matriz de convolución&lt;br /&gt;
    conv = zeros(length(xx), length(tt));&lt;br /&gt;
&lt;br /&gt;
    % Cálculo de la convolución&lt;br /&gt;
    for j = 1:length(tt) &lt;br /&gt;
        auxt = tt(j);&lt;br /&gt;
        for i = 1:length(xx)&lt;br /&gt;
            auxx = xx(i);&lt;br /&gt;
            val_conv(i,j) = convo(auxx, auxt);&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    hold on;&lt;br /&gt;
    view(3);&lt;br /&gt;
    surf(xx, tt, val_conv.');&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)*N(x)$', 'Interpreter', 'latex');&lt;br /&gt;
    shading flat;&lt;br /&gt;
    shading interp;&lt;br /&gt;
    colormap('jet');&lt;br /&gt;
    title(['Soluciones en dominio no acotado, cuando D=', num2str(D)]);&lt;br /&gt;
    axis([-10, 10, 0, 1, 0, 1]);&lt;br /&gt;
    hold off;&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if h == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Referencias =&lt;br /&gt;
&lt;br /&gt;
* Sandro Salsa, Gianmaria Verzini. Partial Differential Equations in Action From Modelling to Theory ([https://link.springer.com/book/10.1007/978-3-031-21853-8 [1&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84508</id>
		<title>Ecuación del calor (ADMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84508"/>
				<updated>2025-03-16T16:31:33Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: /* Introducción */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor (Grupo ADMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | &lt;br /&gt;
*Ángel De Lucas Miranda, &lt;br /&gt;
*Daniel Rodríguez Calderón, &lt;br /&gt;
*Marcos Cabellos Hernández, &lt;br /&gt;
*Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
El desarrollo de la ecuación del calor se atribuye principalmente al matemático y físico francés Joseph Fourier, quien en 1822 publicó su obra ''Théorie analytique de la chaleur''. En este trabajo formuló una ecuación diferencial en derivadas parciales que describe la propagación del calor por difusión en un medio continuo. Su análisis no sólo permitió comprender mejor este fenómeno físico, sino que también promovió el desarrollo de las Series de Fourier, que fueron objeto de estudio en nuestro trabajo anterior. En esta ocasión, profundicemos en dos aspectos de este modelo.&lt;br /&gt;
&lt;br /&gt;
(Este párrafo 100% :))&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Desde un punto de vista físico, es natural abordar este problema en un dominio acotado, como una barra metálica de longitud finita, dado que los sistemas reales suelen estar limitados en el espacio. Sin embargo, el afán de abstracción y generalización característico de la matemática llevó a Fourier a considerar también el caso de un dominio no acotado, es decir, una barra metálica de &amp;quot;longitud infinita&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
En este trabajo, analizamos cómo varían las soluciones de la ecuación del calor en dominios acotados y no acotados, identificando sus diferencias y explorando sus implicaciones en la modelización de procesos físicos reales.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Desde un punto de vista físico, estas ecuaciones permiten la modelización de fenómenos como el calentamiento de materiales o la difusión de solutos en fluidos estacionarios, como ya hemos explorado en algunos ejercicios. Sin embargo, la influencia de la física es más profunda: de hecho, el coeficiente de difusión lleva su nombre por la interpretación física de su acción en el sistema. ¿Cuál es este efecto, y por qué se lo denota de esta forma?&lt;br /&gt;
&lt;br /&gt;
Al tiempo que exploramos este efecto, planteemos también el paso entre problemas de dominio acotado y los de no acotado. Parecería evidente que estos últimos se extiendan naturalmente con los anteriores, pero en el desarrollo teórico de clase se obtenían mediante soluciones autosimilares en vez de problemas de autofunciones. ¿Convergen las soluciones del sistema acotado a la del no acotado cuando el dominio crece lo suficiente? Y de ser así, ¿qué condiciones de frontera en una dimensión funcionan mejor?&lt;br /&gt;
&lt;br /&gt;
=To do list=&lt;br /&gt;
&lt;br /&gt;
1) (Problema acot y sol)Damos la sol. con frontera 0 --&amp;gt; para extender mejor a no acot&lt;br /&gt;
2) Dibujinchis&lt;br /&gt;
3) (Problema no acot) Dar el problema, sol, dibujinchi&lt;br /&gt;
4) Comparar ambas sol. error cuadrático, y el unif. y error numérico para intervalos crecientes [-a,a]&lt;br /&gt;
&lt;br /&gt;
5) Pasar de Diric. a Neum. y dar la explicacion fis. de Neum. Dibujinchis comparación, solapadas&lt;br /&gt;
6) Ver cómo afecta la cte calorifica, densidad y k = relacion flujo gradiente (la D) en ambos casos.&lt;br /&gt;
&lt;br /&gt;
=Solución acotada vs Solución no acotada=&lt;br /&gt;
&lt;br /&gt;
Vamos a considerar el siguiente problema de calor bidimensional sobre una barra metálica de longitud &amp;lt;math&amp;gt;2a, a&amp;gt;0&amp;lt;/math&amp;gt; con condiciones Dirichlet en la frontera:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \\ &lt;br /&gt;
u(-a,t) = u(a,t) = 0 \quad  \forall t &amp;gt; 0 \\ &lt;br /&gt;
u(x,0) = Gaus &lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
cuya solución al resolver el problema de autofunciones viene dada por:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
&lt;br /&gt;
u(x,t) = \sum_{n=1}^\infty A_{n} \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right) e^{-\dfrac{\pi^2}{a^2}\left(n - \frac{1}{2}\right)^2 t}&lt;br /&gt;
\quad \text{ donde }&lt;br /&gt;
A_n = \frac{\int_{-a}^{a} u(x,0) \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}{\int_{-a}^{a} \cos^2\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Consideremos ahora condiciones de frontera Neumann, de forma que el sistema quede aislado. Para cierto &amp;lt;math&amp;gt; a \in \mathbb{R}&amp;lt;/math&amp;gt; consideraremos la ecuación del calor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \\ &lt;br /&gt;
u_x(-b,t) = u_x(b,t) = 0 \quad  \forall t &amp;gt; 0 \\ &lt;br /&gt;
u(x,0) = Gaus. &lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De nuevo podemos resolver el sistema, por ser homogéneo, mediante separación de variables, con &amp;lt;math&amp;gt; b &amp;gt; 0 &amp;lt;/math&amp;gt; y no necesariamente igual que con &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Obteniendo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
&lt;br /&gt;
u(x,t) = \sum_{m=1}^\infty B_{m} cos\left(\frac{m\pi}{b} x\right) e^{-\dfrac{m^2\pi^2}{b^2} t}\quad \text{ donde }&lt;br /&gt;
B_m = \frac{\int_{-b}^{b} u(x,0) \cos\left(\frac{m\pi}{b} x\right)dx}{\int_{-b}^{b} \cos^2\left(\frac{m\pi}{b}x\right)dx}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Veamos si, para valores de &amp;lt;math&amp;gt; a \text{y} b &amp;lt;/math&amp;gt; grandes, las soluciones previamente halladas distan mucho entre sí, es decir, vamos a estudiar los errores y las diferencias que hay entre ambas soluciones.&lt;br /&gt;
&lt;br /&gt;
=Códigos=&lt;br /&gt;
[[Archivo:Fundamental.gif|500px|thumb|right|Solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,2,3,4,5,6,7,8,9,10];&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Fundamental.gif';&lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for i = 1:length(DD)&lt;br /&gt;
    D = DD(i);&lt;br /&gt;
&lt;br /&gt;
    % Función fundamental de la ecuación del calor&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -1:0.01:1;         % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
    [X, T] = meshgrid(xx, tt); % Malla de coordenadas&lt;br /&gt;
    PHI_D = phi_D(X, T);   % Evaluación de la función&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    surf(X, T, PHI_D);&lt;br /&gt;
    shading flat&lt;br /&gt;
    shading interp&lt;br /&gt;
    colormap('jet')&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)$', 'Interpreter', 'latex');&lt;br /&gt;
    title(['Solución fundamental de la ecuación del calor, cuando D=', num2str(D)])&lt;br /&gt;
    axis([-1, 1, 0, 1, 0, 3])&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if i == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Convoluciones_teorica.gif|500px|thumb|right|Soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,10,20,30,40,50,60,70,80,90,100];&lt;br /&gt;
mu = 0;&lt;br /&gt;
s = 1;&lt;br /&gt;
&lt;br /&gt;
% Función gaussiana&lt;br /&gt;
gaus = @(x) (exp(-x.^2));&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Convoluciones_teorica.gif'; &lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for h = 1:length(DD)&lt;br /&gt;
    D = DD(h);&lt;br /&gt;
&lt;br /&gt;
    % Funciones fundamentales y convolución&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
    convo = @(x,t) (exp(-x.^2./(4*D.*t+1))/sqrt(4*D.*t+1));&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -10:0.1:10;        % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
&lt;br /&gt;
    % Inicialización de la matriz de convolución&lt;br /&gt;
    conv = zeros(length(xx), length(tt));&lt;br /&gt;
&lt;br /&gt;
    % Cálculo de la convolución&lt;br /&gt;
    for j = 1:length(tt) &lt;br /&gt;
        auxt = tt(j);&lt;br /&gt;
        for i = 1:length(xx)&lt;br /&gt;
            auxx = xx(i);&lt;br /&gt;
            val_conv(i,j) = convo(auxx, auxt);&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    hold on;&lt;br /&gt;
    view(3);&lt;br /&gt;
    surf(xx, tt, val_conv.');&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)*N(x)$', 'Interpreter', 'latex');&lt;br /&gt;
    shading flat;&lt;br /&gt;
    shading interp;&lt;br /&gt;
    colormap('jet');&lt;br /&gt;
    title(['Soluciones en dominio no acotado, cuando D=', num2str(D)]);&lt;br /&gt;
    axis([-10, 10, 0, 1, 0, 1]);&lt;br /&gt;
    hold off;&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if h == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Referencias =&lt;br /&gt;
&lt;br /&gt;
* Sandro Salsa, Gianmaria Verzini. Partial Differential Equations in Action From Modelling to Theory ([https://link.springer.com/book/10.1007/978-3-031-21853-8 [1&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84507</id>
		<title>Ecuación del calor (ADMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84507"/>
				<updated>2025-03-16T16:31:20Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: /* Introducción */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor (Grupo ADMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | &lt;br /&gt;
*Ángel De Lucas Miranda, &lt;br /&gt;
*Daniel Rodríguez Calderón, &lt;br /&gt;
*Marcos Cabellos Hernández, &lt;br /&gt;
*Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
El desarrollo de la ecuación del calor se atribuye principalmente al matemático y físico francés Joseph Fourier, quien en 1822 publicó su obra ''Théorie analytique de la chaleur''. En este trabajo formuló una ecuación diferencial en derivadas parciales que describe la propagación del calor por difusión en un medio continuo. Su análisis no sólo permitió comprender mejor este fenómeno físico, sino que también promovió el desarrollo de las Series de Fourier, que fueron objeto de estudio en nuestro trabajo anterior. En esta ocasión, profundicemos en dos aspectos de este modelo.&lt;br /&gt;
&lt;br /&gt;
(Este párrafo 100% :))&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Desde un punto de vista físico, es natural abordar este problema en un dominio acotado, como una barra metálica de longitud finita, dado que los sistemas reales suelen estar limitados en el espacio. Sin embargo, el afán de abstracción y generalización característico de la matemática llevó a Fourier a considerar también el caso de un dominio no acotado, es decir, una barra metálica de &amp;quot;longitud infinita&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
En este trabajo, analizamos cómo varían las soluciones de la ecuación del calor en dominios acotados y no acotados, identificando sus diferencias y explorando sus implicaciones en la modelización de procesos físicos reales.&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Desde un punto de vista físico, estas ecuaciones permiten la modelización de fenómenos como el calentamiento de materiales o la difusión de solutos en fluidos estacionarios, como ya hemos explorado en algunos ejercicios. Sin embargo, la influencia de la física es más profunda: de hecho, el coeficiente de difusión lleva su nombre por la interpretación física de su acción en el sistema. ¿Cuál es este efecto, y por qué se lo denota de esta forma?&lt;br /&gt;
&lt;br /&gt;
Al tiempo que exploramos este efecto, planteemos también el paso entre problemas de dominio acotado y los de no acotado. Parecería evidente que estos últimos se extiendan naturalmente con los anteriores, pero en el desarrollo teórico de clase se obtenían mediante soluciones autosimilares en vez de problemas de autofunciones. ¿Convergen las soluciones del sistema acotado a la del no acotado cuando el dominio crece lo suficiente? Y de ser así, ¿qué condiciones de frontera en una dimensión funcionan mejor?&lt;br /&gt;
&lt;br /&gt;
=To do list=&lt;br /&gt;
&lt;br /&gt;
1) (Problema acot y sol)Damos la sol. con frontera 0 --&amp;gt; para extender mejor a no acot&lt;br /&gt;
2) Dibujinchis&lt;br /&gt;
3) (Problema no acot) Dar el problema, sol, dibujinchi&lt;br /&gt;
4) Comparar ambas sol. error cuadrático, y el unif. y error numérico para intervalos crecientes [-a,a]&lt;br /&gt;
&lt;br /&gt;
5) Pasar de Diric. a Neum. y dar la explicacion fis. de Neum. Dibujinchis comparación, solapadas&lt;br /&gt;
6) Ver cómo afecta la cte calorifica, densidad y k = relacion flujo gradiente (la D) en ambos casos.&lt;br /&gt;
&lt;br /&gt;
=Solución acotada vs Solución no acotada=&lt;br /&gt;
&lt;br /&gt;
Vamos a considerar el siguiente problema de calor bidimensional sobre una barra metálica de longitud &amp;lt;math&amp;gt;2a, a&amp;gt;0&amp;lt;/math&amp;gt; con condiciones Dirichlet en la frontera:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \\ &lt;br /&gt;
u(-a,t) = u(a,t) = 0 \quad  \forall t &amp;gt; 0 \\ &lt;br /&gt;
u(x,0) = Gaus &lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
cuya solución al resolver el problema de autofunciones viene dada por:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
&lt;br /&gt;
u(x,t) = \sum_{n=1}^\infty A_{n} \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right) e^{-\dfrac{\pi^2}{a^2}\left(n - \frac{1}{2}\right)^2 t}&lt;br /&gt;
\quad \text{ donde }&lt;br /&gt;
A_n = \frac{\int_{-a}^{a} u(x,0) \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}{\int_{-a}^{a} \cos^2\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Consideremos ahora condiciones de frontera Neumann, de forma que el sistema quede aislado. Para cierto &amp;lt;math&amp;gt; a \in \mathbb{R}&amp;lt;/math&amp;gt; consideraremos la ecuación del calor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \\ &lt;br /&gt;
u_x(-b,t) = u_x(b,t) = 0 \quad  \forall t &amp;gt; 0 \\ &lt;br /&gt;
u(x,0) = Gaus. &lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De nuevo podemos resolver el sistema, por ser homogéneo, mediante separación de variables, con &amp;lt;math&amp;gt; b &amp;gt; 0 &amp;lt;/math&amp;gt; y no necesariamente igual que con &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Obteniendo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
&lt;br /&gt;
u(x,t) = \sum_{m=1}^\infty B_{m} cos\left(\frac{m\pi}{b} x\right) e^{-\dfrac{m^2\pi^2}{b^2} t}\quad \text{ donde }&lt;br /&gt;
B_m = \frac{\int_{-b}^{b} u(x,0) \cos\left(\frac{m\pi}{b} x\right)dx}{\int_{-b}^{b} \cos^2\left(\frac{m\pi}{b}x\right)dx}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Veamos si, para valores de &amp;lt;math&amp;gt; a \text{y} b &amp;lt;/math&amp;gt; grandes, las soluciones previamente halladas distan mucho entre sí, es decir, vamos a estudiar los errores y las diferencias que hay entre ambas soluciones.&lt;br /&gt;
&lt;br /&gt;
=Códigos=&lt;br /&gt;
[[Archivo:Fundamental.gif|500px|thumb|right|Solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,2,3,4,5,6,7,8,9,10];&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Fundamental.gif';&lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for i = 1:length(DD)&lt;br /&gt;
    D = DD(i);&lt;br /&gt;
&lt;br /&gt;
    % Función fundamental de la ecuación del calor&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -1:0.01:1;         % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
    [X, T] = meshgrid(xx, tt); % Malla de coordenadas&lt;br /&gt;
    PHI_D = phi_D(X, T);   % Evaluación de la función&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    surf(X, T, PHI_D);&lt;br /&gt;
    shading flat&lt;br /&gt;
    shading interp&lt;br /&gt;
    colormap('jet')&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)$', 'Interpreter', 'latex');&lt;br /&gt;
    title(['Solución fundamental de la ecuación del calor, cuando D=', num2str(D)])&lt;br /&gt;
    axis([-1, 1, 0, 1, 0, 3])&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if i == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Convoluciones_teorica.gif|500px|thumb|right|Soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,10,20,30,40,50,60,70,80,90,100];&lt;br /&gt;
mu = 0;&lt;br /&gt;
s = 1;&lt;br /&gt;
&lt;br /&gt;
% Función gaussiana&lt;br /&gt;
gaus = @(x) (exp(-x.^2));&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Convoluciones_teorica.gif'; &lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for h = 1:length(DD)&lt;br /&gt;
    D = DD(h);&lt;br /&gt;
&lt;br /&gt;
    % Funciones fundamentales y convolución&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
    convo = @(x,t) (exp(-x.^2./(4*D.*t+1))/sqrt(4*D.*t+1));&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -10:0.1:10;        % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
&lt;br /&gt;
    % Inicialización de la matriz de convolución&lt;br /&gt;
    conv = zeros(length(xx), length(tt));&lt;br /&gt;
&lt;br /&gt;
    % Cálculo de la convolución&lt;br /&gt;
    for j = 1:length(tt) &lt;br /&gt;
        auxt = tt(j);&lt;br /&gt;
        for i = 1:length(xx)&lt;br /&gt;
            auxx = xx(i);&lt;br /&gt;
            val_conv(i,j) = convo(auxx, auxt);&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    hold on;&lt;br /&gt;
    view(3);&lt;br /&gt;
    surf(xx, tt, val_conv.');&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)*N(x)$', 'Interpreter', 'latex');&lt;br /&gt;
    shading flat;&lt;br /&gt;
    shading interp;&lt;br /&gt;
    colormap('jet');&lt;br /&gt;
    title(['Soluciones en dominio no acotado, cuando D=', num2str(D)]);&lt;br /&gt;
    axis([-10, 10, 0, 1, 0, 1]);&lt;br /&gt;
    hold off;&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if h == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Referencias =&lt;br /&gt;
&lt;br /&gt;
* Sandro Salsa, Gianmaria Verzini. Partial Differential Equations in Action From Modelling to Theory ([https://link.springer.com/book/10.1007/978-3-031-21853-8 [1&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84506</id>
		<title>Ecuación del calor (ADMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84506"/>
				<updated>2025-03-16T16:31:02Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: /* Introducción */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor (Grupo ADMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | &lt;br /&gt;
*Ángel De Lucas Miranda, &lt;br /&gt;
*Daniel Rodríguez Calderón, &lt;br /&gt;
*Marcos Cabellos Hernández, &lt;br /&gt;
*Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
El desarrollo de la ecuación del calor se atribuye principalmente al matemático y físico francés Joseph Fourier, quien en 1822 publicó su obra ''Théorie analytique de la chaleur''. En este trabajo formuló una ecuación diferencial en derivadas parciales que describe la propagación del calor por difusión en un medio continuo. Su análisis no sólo permitió comprender mejor este fenómeno físico, sino que también promovió el desarrollo de las Series de Fourier, que fueron objeto de estudio en nuestro trabajo anterior. En esta ocasión, profundicemos en dos aspectos de este modelo.&lt;br /&gt;
&lt;br /&gt;
(Este párrafo 100% :))&lt;br /&gt;
---&lt;br /&gt;
Desde un punto de vista físico, es natural abordar este problema en un dominio acotado, como una barra metálica de longitud finita, dado que los sistemas reales suelen estar limitados en el espacio. Sin embargo, el afán de abstracción y generalización característico de la matemática llevó a Fourier a considerar también el caso de un dominio no acotado, es decir, una barra metálica de &amp;quot;longitud infinita&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
En este trabajo, analizamos cómo varían las soluciones de la ecuación del calor en dominios acotados y no acotados, identificando sus diferencias y explorando sus implicaciones en la modelización de procesos físicos reales.&lt;br /&gt;
---&lt;br /&gt;
Desde un punto de vista físico, estas ecuaciones permiten la modelización de fenómenos como el calentamiento de materiales o la difusión de solutos en fluidos estacionarios, como ya hemos explorado en algunos ejercicios. Sin embargo, la influencia de la física es más profunda: de hecho, el coeficiente de difusión lleva su nombre por la interpretación física de su acción en el sistema. ¿Cuál es este efecto, y por qué se lo denota de esta forma?&lt;br /&gt;
&lt;br /&gt;
Al tiempo que exploramos este efecto, planteemos también el paso entre problemas de dominio acotado y los de no acotado. Parecería evidente que estos últimos se extiendan naturalmente con los anteriores, pero en el desarrollo teórico de clase se obtenían mediante soluciones autosimilares en vez de problemas de autofunciones. ¿Convergen las soluciones del sistema acotado a la del no acotado cuando el dominio crece lo suficiente? Y de ser así, ¿qué condiciones de frontera en una dimensión funcionan mejor?&lt;br /&gt;
&lt;br /&gt;
=To do list=&lt;br /&gt;
&lt;br /&gt;
1) (Problema acot y sol)Damos la sol. con frontera 0 --&amp;gt; para extender mejor a no acot&lt;br /&gt;
2) Dibujinchis&lt;br /&gt;
3) (Problema no acot) Dar el problema, sol, dibujinchi&lt;br /&gt;
4) Comparar ambas sol. error cuadrático, y el unif. y error numérico para intervalos crecientes [-a,a]&lt;br /&gt;
&lt;br /&gt;
5) Pasar de Diric. a Neum. y dar la explicacion fis. de Neum. Dibujinchis comparación, solapadas&lt;br /&gt;
6) Ver cómo afecta la cte calorifica, densidad y k = relacion flujo gradiente (la D) en ambos casos.&lt;br /&gt;
&lt;br /&gt;
=Solución acotada vs Solución no acotada=&lt;br /&gt;
&lt;br /&gt;
Vamos a considerar el siguiente problema de calor bidimensional sobre una barra metálica de longitud &amp;lt;math&amp;gt;2a, a&amp;gt;0&amp;lt;/math&amp;gt; con condiciones Dirichlet en la frontera:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \\ &lt;br /&gt;
u(-a,t) = u(a,t) = 0 \quad  \forall t &amp;gt; 0 \\ &lt;br /&gt;
u(x,0) = Gaus &lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
cuya solución al resolver el problema de autofunciones viene dada por:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
&lt;br /&gt;
u(x,t) = \sum_{n=1}^\infty A_{n} \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right) e^{-\dfrac{\pi^2}{a^2}\left(n - \frac{1}{2}\right)^2 t}&lt;br /&gt;
\quad \text{ donde }&lt;br /&gt;
A_n = \frac{\int_{-a}^{a} u(x,0) \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}{\int_{-a}^{a} \cos^2\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Consideremos ahora condiciones de frontera Neumann, de forma que el sistema quede aislado. Para cierto &amp;lt;math&amp;gt; a \in \mathbb{R}&amp;lt;/math&amp;gt; consideraremos la ecuación del calor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \\ &lt;br /&gt;
u_x(-b,t) = u_x(b,t) = 0 \quad  \forall t &amp;gt; 0 \\ &lt;br /&gt;
u(x,0) = Gaus. &lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De nuevo podemos resolver el sistema, por ser homogéneo, mediante separación de variables, con &amp;lt;math&amp;gt; b &amp;gt; 0 &amp;lt;/math&amp;gt; y no necesariamente igual que con &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Obteniendo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
&lt;br /&gt;
u(x,t) = \sum_{m=1}^\infty B_{m} cos\left(\frac{m\pi}{b} x\right) e^{-\dfrac{m^2\pi^2}{b^2} t}\quad \text{ donde }&lt;br /&gt;
B_m = \frac{\int_{-b}^{b} u(x,0) \cos\left(\frac{m\pi}{b} x\right)dx}{\int_{-b}^{b} \cos^2\left(\frac{m\pi}{b}x\right)dx}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Veamos si, para valores de &amp;lt;math&amp;gt; a \text{y} b &amp;lt;/math&amp;gt; grandes, las soluciones previamente halladas distan mucho entre sí, es decir, vamos a estudiar los errores y las diferencias que hay entre ambas soluciones.&lt;br /&gt;
&lt;br /&gt;
=Códigos=&lt;br /&gt;
[[Archivo:Fundamental.gif|500px|thumb|right|Solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la solución fundamental de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,2,3,4,5,6,7,8,9,10];&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Fundamental.gif';&lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for i = 1:length(DD)&lt;br /&gt;
    D = DD(i);&lt;br /&gt;
&lt;br /&gt;
    % Función fundamental de la ecuación del calor&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -1:0.01:1;         % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
    [X, T] = meshgrid(xx, tt); % Malla de coordenadas&lt;br /&gt;
    PHI_D = phi_D(X, T);   % Evaluación de la función&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    surf(X, T, PHI_D);&lt;br /&gt;
    shading flat&lt;br /&gt;
    shading interp&lt;br /&gt;
    colormap('jet')&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)$', 'Interpreter', 'latex');&lt;br /&gt;
    title(['Solución fundamental de la ecuación del calor, cuando D=', num2str(D)])&lt;br /&gt;
    axis([-1, 1, 0, 1, 0, 3])&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if i == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Convoluciones_teorica.gif|500px|thumb|right|Soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la soluciones de la ecuación del calor unidimensional para distintos valores del coeficiente de difusión. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Vector de valores de D (coeficiente de difusión)&lt;br /&gt;
DD = [1,10,20,30,40,50,60,70,80,90,100];&lt;br /&gt;
mu = 0;&lt;br /&gt;
s = 1;&lt;br /&gt;
&lt;br /&gt;
% Función gaussiana&lt;br /&gt;
gaus = @(x) (exp(-x.^2));&lt;br /&gt;
&lt;br /&gt;
% Nombre del archivo GIF de salida&lt;br /&gt;
output_gif = 'Convoluciones_teorica.gif'; &lt;br /&gt;
&lt;br /&gt;
% Crear la figura&lt;br /&gt;
figura = figure(1);&lt;br /&gt;
grid on;&lt;br /&gt;
view(3);&lt;br /&gt;
&lt;br /&gt;
% Bucle para iterar sobre cada valor de D&lt;br /&gt;
for h = 1:length(DD)&lt;br /&gt;
    D = DD(h);&lt;br /&gt;
&lt;br /&gt;
    % Funciones fundamentales y convolución&lt;br /&gt;
    phi_D = @(x, t) exp(-x.^2./(4*D*t))./sqrt(4*D*pi*t);&lt;br /&gt;
    convo = @(x,t) (exp(-x.^2./(4*D.*t+1))/sqrt(4*D.*t+1));&lt;br /&gt;
&lt;br /&gt;
    % Definición de la malla&lt;br /&gt;
    xx = -10:0.1:10;        % Rango de x&lt;br /&gt;
    tt = 10^(-2):0.01:1;   % Rango de t&lt;br /&gt;
&lt;br /&gt;
    % Inicialización de la matriz de convolución&lt;br /&gt;
    conv = zeros(length(xx), length(tt));&lt;br /&gt;
&lt;br /&gt;
    % Cálculo de la convolución&lt;br /&gt;
    for j = 1:length(tt) &lt;br /&gt;
        auxt = tt(j);&lt;br /&gt;
        for i = 1:length(xx)&lt;br /&gt;
            auxx = xx(i);&lt;br /&gt;
            val_conv(i,j) = convo(auxx, auxt);&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    % Graficar la superficie&lt;br /&gt;
    clf;&lt;br /&gt;
    hold on;&lt;br /&gt;
    view(3);&lt;br /&gt;
    surf(xx, tt, val_conv.');&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('t');&lt;br /&gt;
    zlabel('$\Phi_D(x,t)*N(x)$', 'Interpreter', 'latex');&lt;br /&gt;
    shading flat;&lt;br /&gt;
    shading interp;&lt;br /&gt;
    colormap('jet');&lt;br /&gt;
    title(['Soluciones en dominio no acotado, cuando D=', num2str(D)]);&lt;br /&gt;
    axis([-10, 10, 0, 1, 0, 1]);&lt;br /&gt;
    hold off;&lt;br /&gt;
    drawnow;&lt;br /&gt;
&lt;br /&gt;
    % Captura de la imagen para el GIF&lt;br /&gt;
    frame = getframe(figura);&lt;br /&gt;
    img = frame2im(frame);&lt;br /&gt;
    [imind, cm] = rgb2ind(img, 256);&lt;br /&gt;
&lt;br /&gt;
    % Escribir la imagen en el archivo GIF&lt;br /&gt;
    if h == 1&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'LoopCount', Inf, 'DelayTime', 0.7);&lt;br /&gt;
    else&lt;br /&gt;
        imwrite(imind, cm, output_gif, 'gif', 'WriteMode', 'append', 'DelayTime', 0.7);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Referencias =&lt;br /&gt;
&lt;br /&gt;
* Sandro Salsa, Gianmaria Verzini. Partial Differential Equations in Action From Modelling to Theory ([https://link.springer.com/book/10.1007/978-3-031-21853-8 [1&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84266</id>
		<title>Ecuación del calor (ADMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84266"/>
				<updated>2025-03-15T17:24:19Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: /* Códigos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor (Grupo ADMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | &lt;br /&gt;
*Ángel De Lucas Miranda, &lt;br /&gt;
*Daniel Rodríguez Calderón, &lt;br /&gt;
*Marcos Cabellos Hernández, &lt;br /&gt;
*Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
=To do list=&lt;br /&gt;
&lt;br /&gt;
1) (Problema acot y sol)Damos la sol. con frontera 0 --&amp;gt; para extender mejor a no acot&lt;br /&gt;
2) Dibujinchis&lt;br /&gt;
3) (Problema no acot) Dar el problema, sol, dibujinchi&lt;br /&gt;
4) Comparar ambas sol. error cuadrático, y el unif. y error numérico para intervalos crecientes [-a,a]&lt;br /&gt;
&lt;br /&gt;
5) Pasar de Diric. a Neum. y dar la explicacion fis. de Neum. Dibujinchis comparación, solapadas&lt;br /&gt;
6) Ver cómo afecta la cte calorifica, densidad y k = relacion flujo gradiente (la D) en ambos casos.&lt;br /&gt;
&lt;br /&gt;
7) Introducción con cosas reales y prácticas&lt;br /&gt;
&lt;br /&gt;
=Solución acotada vs Solución no acotada=&lt;br /&gt;
&lt;br /&gt;
Vamos a considerar el siguiente problema de calor con condiciones Dirichlet cero en la frontera con cierto &amp;lt;math&amp;gt; a \in \mathbb{R} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \\ &lt;br /&gt;
u(-a,t) = u(a,t) = 0 \quad  \forall t &amp;gt; 0 \\ &lt;br /&gt;
u(x,0) = Gaus &lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
cuya solución al resolver el problema de autofunciones viene dada por&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
&lt;br /&gt;
u(x,t) = \sum_{n=1}^\infty A_{n} \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right) e^{-\dfrac{\pi^2}{a^2}\left(n - \frac{1}{2}\right)^2 t}&lt;br /&gt;
\quad \text{ donde }&lt;br /&gt;
A_n = \frac{\int_{-a}^{a} u(x,0) \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}{\int_{-a}^{a} \cos^2\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Códigos=&lt;br /&gt;
&lt;br /&gt;
Consideremos ahora condiciones de frontera Neumann, de forma que el sistema quede aislado. Para cierto &amp;lt;math&amp;gt; a \in \mathbb{R}&amp;lt;/math&amp;gt; consideraremos la ecuación del calor&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \\ &lt;br /&gt;
u_x(-a,t) = u_x(a,t) = 0 \quad  \forall t &amp;gt; 0 \\ &lt;br /&gt;
u(x,0) = Gaus. &lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De nuevo podemos resolver el sistema, por ser homogéneo, mediante separación de variables. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
&lt;br /&gt;
u(x,t) = \sum_{n=1}^\infty B_{n} cos\left(\frac{n\pi}{a} x\right) e^{-\dfrac{n^2\pi^2}{a^2} t}\quad \text{ donde }&lt;br /&gt;
B_n = \frac{\int_{-a}^{a} u(x,0) \cos\left(\frac{n\pi}{a} x\right)dx}{\int_{-a}^{a} \cos^2\left(\frac{n\pi}{a}x\right)dx}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84265</id>
		<title>Ecuación del calor (ADMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84265"/>
				<updated>2025-03-15T17:23:26Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: /* Códigos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor (Grupo ADMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | &lt;br /&gt;
*Ángel De Lucas Miranda, &lt;br /&gt;
*Daniel Rodríguez Calderón, &lt;br /&gt;
*Marcos Cabellos Hernández, &lt;br /&gt;
*Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
=To do list=&lt;br /&gt;
&lt;br /&gt;
1) (Problema acot y sol)Damos la sol. con frontera 0 --&amp;gt; para extender mejor a no acot&lt;br /&gt;
2) Dibujinchis&lt;br /&gt;
3) (Problema no acot) Dar el problema, sol, dibujinchi&lt;br /&gt;
4) Comparar ambas sol. error cuadrático, y el unif. y error numérico para intervalos crecientes [-a,a]&lt;br /&gt;
&lt;br /&gt;
5) Pasar de Diric. a Neum. y dar la explicacion fis. de Neum. Dibujinchis comparación, solapadas&lt;br /&gt;
6) Ver cómo afecta la cte calorifica, densidad y k = relacion flujo gradiente (la D) en ambos casos.&lt;br /&gt;
&lt;br /&gt;
7) Introducción con cosas reales y prácticas&lt;br /&gt;
&lt;br /&gt;
=Solución acotada vs Solución no acotada=&lt;br /&gt;
&lt;br /&gt;
Vamos a considerar el siguiente problema de calor con condiciones Dirichlet cero en la frontera con cierto &amp;lt;math&amp;gt; a \in \mathbb{R} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \\ &lt;br /&gt;
u(-a,t) = u(a,t) = 0 \quad  \forall t &amp;gt; 0 \\ &lt;br /&gt;
u(x,0) = Gaus &lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
cuya solución al resolver el problema de autofunciones viene dada por&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
&lt;br /&gt;
u(x,t) = \sum_{n=1}^\infty A_{n} \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right) e^{-\dfrac{\pi^2}{a^2}\left(n - \frac{1}{2}\right)^2 t}&lt;br /&gt;
\quad \text{ donde }&lt;br /&gt;
A_n = \frac{\int_{-a}^{a} u(x,0) \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}{\int_{-a}^{a} \cos^2\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Códigos=&lt;br /&gt;
&lt;br /&gt;
Consideremos ahora condiciones de frontera Neumann, de forma que el sistema quede aislado obtenido para cierto &amp;lt;math&amp;gt; a \in \mathbb{R}&amp;lt;/math&amp;gt; como&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \\ &lt;br /&gt;
u_x(-a,t) = u_x(a,t) = 0 \quad  \forall t &amp;gt; 0 \\ &lt;br /&gt;
u(x,0) = Gaus. &lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De nuevo podemos resolver el sistema, por ser homogéneo, mediante separación de variables. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
&lt;br /&gt;
u(x,t) = \sum_{n=1}^\infty B_{n} cos\left(\frac{n\pi}{a} x\right) e^{-\dfrac{n^2\pi^2}{a^2} t}\quad \text{ donde }&lt;br /&gt;
B_n = \frac{\int_{-a}^{a} u(x,0) \cos\left(\frac{n\pi}{a} x\right)dx}{\int_{-a}^{a} \cos^2\left(\frac{n\pi}{a}x\right)dx}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84264</id>
		<title>Ecuación del calor (ADMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_del_calor_(ADMR)&amp;diff=84264"/>
				<updated>2025-03-15T17:21:24Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: /* Códigos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor (Grupo ADMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | &lt;br /&gt;
*Ángel De Lucas Miranda, &lt;br /&gt;
*Daniel Rodríguez Calderón, &lt;br /&gt;
*Marcos Cabellos Hernández, &lt;br /&gt;
*Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
=To do list=&lt;br /&gt;
&lt;br /&gt;
1) (Problema acot y sol)Damos la sol. con frontera 0 --&amp;gt; para extender mejor a no acot&lt;br /&gt;
2) Dibujinchis&lt;br /&gt;
3) (Problema no acot) Dar el problema, sol, dibujinchi&lt;br /&gt;
4) Comparar ambas sol. error cuadrático, y el unif. y error numérico para intervalos crecientes [-a,a]&lt;br /&gt;
&lt;br /&gt;
5) Pasar de Diric. a Neum. y dar la explicacion fis. de Neum. Dibujinchis comparación, solapadas&lt;br /&gt;
6) Ver cómo afecta la cte calorifica, densidad y k = relacion flujo gradiente (la D) en ambos casos.&lt;br /&gt;
&lt;br /&gt;
7) Introducción con cosas reales y prácticas&lt;br /&gt;
&lt;br /&gt;
=Solución acotada vs Solución no acotada=&lt;br /&gt;
&lt;br /&gt;
Vamos a considerar el siguiente problema de calor con condiciones Dirichlet cero en la frontera con cierto &amp;lt;math&amp;gt; a \in \mathbb{R} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \\ &lt;br /&gt;
u(-a,t) = u(a,t) = 0 \quad  \forall t &amp;gt; 0 \\ &lt;br /&gt;
u(x,0) = Gaus &lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
cuya solución al resolver el problema de autofunciones viene dada por&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
&lt;br /&gt;
u(x,t) = \sum_{n=1}^\infty A_{n} \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right) e^{-\dfrac{\pi^2}{a^2}\left(n - \frac{1}{2}\right)^2 t}&lt;br /&gt;
\quad \text{ donde }&lt;br /&gt;
A_n = \frac{\int_{-a}^{a} u(x,0) \cos\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}{\int_{-a}^{a} \cos^2\left(\frac{\pi}{a}(n - \frac{1}{2}) x\right)dx}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Códigos=&lt;br /&gt;
&lt;br /&gt;
Consideremos ahora condiciones de frontera Neumann, de forma que el sistema quede aislado obtenido para cierto &amp;lt;math&amp;gt; a \in \mathbb{R}&amp;lt;/math&amp;gt; como&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\begin{cases} u_{t} - u_{xx} = 0 \\ &lt;br /&gt;
u_x(-a,t) = u_x(a,t) = 0 \quad  \forall t &amp;gt; 0 \\ &lt;br /&gt;
u(x,0) = Gaus. &lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De nuevo podemos resolver el sistema, por ser homogéneo, mediante separación de variables. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
&lt;br /&gt;
u(x,t) = \sum_{n=1}^\infty B_{n} cos\left(\frac{n\pi}{a} x\right) e^{-\dfrac{n^2\pi^2}{a^2} t}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_DMR)&amp;diff=84069</id>
		<title>Series de Fourier (Grupo DMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_DMR)&amp;diff=84069"/>
				<updated>2025-02-14T16:31:01Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: /* Extensión impar */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Series de Fourier (Grupo DMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | Daniel Rodríguez Calderón, Marcos Cabellos Hernández, Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
En un espacio de Hilbert &amp;lt;math&amp;gt;L_2(a,b)&amp;lt;/math&amp;gt;, una serie de Fourier converge en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt; a una función real de variable real, &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;, que se puede representar mediante la base trigonométrica de Fourier como&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \quad&lt;br /&gt;
f(x) \sim \frac{a_0}{2} + \sum_{n=1}^\infty\left[a_n\cos \left( nx \right) + b_n\sin \left( nx \right) \right]&lt;br /&gt;
&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esta representación nos permite, tomando una suma parcial de la serie, aproximar a &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt;. Sin embargo, la base trigonométrica no se presta a la aproximación de funciones de variable real y valores complejos. Esta carencia nos lleva a la base trigonométrica compleja: considerando seno y coseno complejos, somos capaces de aproximar funciones de variable real y valores complejos o reales indistintamente. Esta base, con dominio &amp;lt;math&amp;gt; [-\pi,\pi] &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \quad \{e^{inx}\}_{n \in \mathbb{Z}} ,&lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
será nuestro foco de atención. La obtendremos formalmente a partir de la base trigonométrica original, para luego visualizarla y comprobar su capacidad para aproximar.&lt;br /&gt;
&lt;br /&gt;
=Base trigonométrica compleja=&lt;br /&gt;
&lt;br /&gt;
Para obtener la base compleja, partamos de la trigonométrica. Por la fórmula de Euler, podemos reescribir coseno y seno de la forma &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
 \cos\theta = \frac{1}{2} (e^{i\theta} + e^{-i\theta}) &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;\quad&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \sin\theta = \frac{1}{2i} (e^{i\theta} - e^{-i\theta})&lt;br /&gt;
&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Así,  en &amp;lt;math&amp;gt; [-\pi,\pi] &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; puede representarse formalmente como&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
f(x) \sim \frac{a_0}{2} + \sum_{n=1}^\infty\left[a_n\cos \left( nx \right) + b_n\sin \left( nx \right) \right] = \frac{a_0}{2} + \sum_{n=1}^\infty\left[\frac{a_n}{2}(e^{inx}+e^{-inx})  +  \frac{b_n}{2i}(e^{inx}-e^{-inx})  \right] = &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
=c_0 + \sum_{n=1}^\infty\left[c_n e^{inx}  +c_{-n} e^{-inx}  \right]=&amp;lt;/math&amp;gt;&amp;lt;math&amp;gt; \sum_{n=0}^\infty c_n e^{inx} + \sum_{n=-\infty}^{-1} c_n e^{inx} =\sum_{n=-\infty}^\infty c_n e^{inx}, &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; c_0:=\frac{a_0}{2}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; c_n:=\frac{a_n-ib_n}{2} &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; c_{-n}:=\frac{a_n+ib_n}{2} &amp;lt;/math&amp;gt;. Decimos que este desarrollo es formal por el penúltimo paso, notemos que estamos reordenando sumandos.&lt;br /&gt;
&lt;br /&gt;
De esta forma hemos obtenido la base trigonométrica compleja&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
 \{e_n := e^{ inx }\}_{n \in \mathbb{Z}} &lt;br /&gt;
&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Usando el producto escalar, comprobemos que es una base ortogonal &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(e_n,e_m)_{L^2} = \int_{-\pi}^{\pi} e_n  \overline{e_m}  \,dx = \int_{-\pi}^{\pi}  e^{inx} e^{-imx} \,dx = &lt;br /&gt;
\int_{-\pi}^{\pi} e^{(n-m)ix}  \,dx = \frac{-i}{n-m} e^{(n-m)ix} \Big|_{-\pi}^{\pi} = 0 \quad \text{si } n \neq m, \\ &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(e_n,e_n)_{L^2} = \int_{-\pi}^{\pi} e^{(n-n)ix}  \,dx = 2\pi.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aquí fijémonos en que hemos usado el producto escalar en &amp;lt;math&amp;gt;L^2(-\pi,\pi)&amp;lt;/math&amp;gt; dado por&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(f,g)_{L^2} = \int_{-\pi}^{\pi} f(x) \hspace{0.2cm}  \overline{g(x)}  \,dx &lt;br /&gt;
&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una observación relevante es que como la norma de cada elemento de la base es siempre &amp;lt;math&amp;gt; \sqrt{2\pi} &amp;lt;/math&amp;gt;, podemos ortonormalizar dividiendo precisamente por esta constante a cada elemento de la base trigonométrica compleja.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Base(DMR).gif|500px|thumb|right|(Pinchar) Términos de la base &amp;lt;math&amp;gt; \{e_n := e^{ inx }\}_{n} &amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;n \in \{-1,0,1,2\}&amp;lt;/math&amp;gt; en referencia tridimensional con eje real y plano complejo.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la base trigonométrica compleja. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
%%% Planteamiento&lt;br /&gt;
x = linspace(-pi, pi, 10000);&lt;br /&gt;
n_values = [-1, 0, 1, 2];&lt;br /&gt;
    &lt;br /&gt;
%%% Visualizacion animada de la base&lt;br /&gt;
pelicula=VideoWriter('baseanimada.avi'); &lt;br /&gt;
pelicula.FrameRate=100; &lt;br /&gt;
open(pelicula); &lt;br /&gt;
&lt;br /&gt;
figura=figure(1);&lt;br /&gt;
hold on;&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('Re(f(x))');&lt;br /&gt;
zlabel('Im(f(x))');&lt;br /&gt;
sgtitle('Representación de \{e^{inx}\}', 'Interpreter', 'tex')&lt;br /&gt;
grid on;&lt;br /&gt;
legend;&lt;br /&gt;
view(3);&lt;br /&gt;
axis([-pi,pi,-1.5,1.5,-1.5,1.5]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
h = gobjects(1, length(n_values));&lt;br /&gt;
&lt;br /&gt;
for i = 1:length(n_values)&lt;br /&gt;
    z = exp(1i*n_values(i)*x);&lt;br /&gt;
    h(i) = plot3(NaN, NaN, NaN,'LineWidth', 1.75, 'DisplayName', ...&lt;br /&gt;
        sprintf('n = %d', n_values(i)));&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
for k = 1:70:length(x)&lt;br /&gt;
    for i = 1:length(n_values)&lt;br /&gt;
        z = exp(1i * n_values(i) * x);&lt;br /&gt;
        set(h(i), 'XData', x(1:k), 'YData', real(z(1:k)), ...&lt;br /&gt;
            'ZData', imag(z(1:k)));&lt;br /&gt;
        imagen=getframe(figura);&lt;br /&gt;
        writeVideo(pelicula,imagen); &lt;br /&gt;
    end&lt;br /&gt;
    drawnow;&lt;br /&gt;
    pause(10^(-10));&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
close(pelicula); &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Extensión impar=&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-allign:justify;width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Representación gráfica de &amp;lt;math&amp;gt; f^*(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figura6DMR.jpg|400px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:ImparfDMR_V2.jpg|400px]]&lt;br /&gt;
|-&lt;br /&gt;
| Representación de &amp;lt;math&amp;gt;f^*&amp;lt;/math&amp;gt; con eje &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; y el plano complejo en la parte superior, mientras que representamos abajo parte real (izquierda) e imaginaria (derecha).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nos podemos plantear cómo aproximar la siguiente función &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
\begin{align}&lt;br /&gt;
f: [0,1] \subseteq \mathbb{R} &amp;amp;\longrightarrow \mathbb{C} \\    &lt;br /&gt;
x &amp;amp;\mapsto 4x(\frac{1}{2} − x)^2 + ix. &lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notemos que el intervalo de definición no es simétrico. Extendamos &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt; de forma impar&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
\begin{align}&lt;br /&gt;
f^*: [-1,1] \subseteq \mathbb{R} &amp;amp;\longrightarrow \mathbb{C}   \\&lt;br /&gt;
x &amp;amp;\mapsto \begin{cases} 4x(\frac{1}{2} + x)^2 + ix \text{ , si } x\in [-1,0],\\&lt;br /&gt;
   &lt;br /&gt;
4x(\frac{1}{2} - x)^2 + ix \text{ , si } x\in [0,1].&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tras representar esta función en las imágenes adjuntas, sólo nos falta adaptar la base &amp;lt;math&amp;gt; \{e^{n i x}\}_{n \in \mathbb{Z}}&amp;lt;/math&amp;gt; al nuevo intervalo. Comprobemos que como&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\{e^{\pi n ix }\}_{n \in \mathbb{Z}} : (e^{\pi n ix},e^{\pi m ix})_{L^2[-1,1]} = \int_{-1}^1 e^{\pi (n-m)i} \,dx = \begin{cases}&lt;br /&gt;
\int_{-1}^1 1 dx = 2 \text{ , si } n = m, \\&lt;br /&gt;
0 \text{ , si } n \neq m,&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
entonces &amp;lt;math&amp;gt; \{e^{\pi n ix }\}_{n \in \mathbb{Z}}&amp;lt;/math&amp;gt; es una base ortogonal en &amp;lt;math&amp;gt;[-1,1]&amp;lt;/math&amp;gt;, habiéndonos basado fuertemente en la periodicidad en el intervalo para el segundo caso. Ahora, podemos ortonormalizarla dividiendo por la norma común a todos los elementos, &amp;lt;math&amp;gt; \sqrt{2} &amp;lt;/math&amp;gt;. Esto define la base ortonormal&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\{E_n\}_{n \in \mathbb{Z}} := \left\{\frac{\sqrt{2}e^{\pi n ix }}{2}\right\}_{n \in \mathbb{Z}}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para realizar las aproximaciones, necesitamos los coeficientes de cada elemento que consideremos, que pueden obtenerse por ortonormalidad de la base mediante el producto escalar ya que&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
f^*(x) \sim \sum_{n=-\infty}^{\infty} C_nE_n = \sum_{n=-\infty}^{\infty} C_ne^{\pi n i}, \quad&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \quad C_n = (f^*,E_n)_{L^2[-1,1]} = \int_{-1}^1 f^*(x) \overline{E}_n(x) \,dx \in \mathbb{C}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:500px; float:right; font-size:80%;&amp;quot;&lt;br /&gt;
|+ Aproximaciones mediante base trigonométrica compleja.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure2fDMR.jpg|320px]] || [[Archivo:Erroresf.jpg|320px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure3fDMR.jpg|320px]] || [[Archivo:TrapeciofDMR.jpg|320px]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |  Representación de aproximaciones con elementos hasta &amp;lt;math&amp;gt; n = 5,10,20 &amp;lt;/math&amp;gt; en tres dimensiones, parte real de las aproximaciones y parte imaginaria respectivamente en esquinas superior izquierda y ambas de abajo. Mejora visiblemente, aunque difieran los extremos, reflejado en los errores representados en la esquina superior derecha. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos estimar estos coeficientes &amp;lt;math&amp;gt; C_n &amp;lt;/math&amp;gt; numéricamente por fórmula del trapecio, y así aproximar la función para un número dado de &amp;lt;math&amp;gt; E_n &amp;lt;/math&amp;gt;. La aproximación con los elementos de la base de &amp;lt;math&amp;gt;-n&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; será entonces&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \quad&lt;br /&gt;
f(x) \approx \sum_{i=-n}^{n} C_iE_{i\big{|}[0,1]}. &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vemos que la aproximación mejora el error en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;, algo que esperábamos por continuidad de &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; y su extensión impar. Además, como &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; &lt;br /&gt;
f(1) \neq \frac{f^*(-1)+f^*(1)}{2}  = 0 &lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
por ser impar, las aproximaciones convergerán puntualmente a &amp;lt;math&amp;gt; 0 &amp;lt;/math&amp;gt; en el valor &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;. No hay convergencia uniforme porque es necesario que la convergencia puntual de las aproximaciones sucesivas fuese &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt; en todo punto de &amp;lt;math&amp;gt;[0,1]&amp;lt;/math&amp;gt;. De hecho, el mayor error se obtiene aquí como &amp;lt;math&amp;gt;|f(1)-f_n(1)|=|1+i|=\sqrt{2}. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos verificar que esta base también es útil con funciones reales aproximando &amp;lt;math&amp;gt;\text{Re}f &amp;lt;/math&amp;gt; con una extensión impar (representado gráficamente a continuación), precisamente &amp;lt;math&amp;gt;\text{Re}f^* &amp;lt;/math&amp;gt;. Por el mismo procedimiento, base y código, logramos de nuevo aproximaciones que convergen en norma del espacio de funciones pero no uniformemente, una vez más por el problema que causa &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;, donde de nuevo se halla el mayor error con &amp;lt;math&amp;gt;|f(1)-f_n(1)|=|1|=1. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Código=&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Aproximaciones mediante base trigonométrica compleja.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure2RefDMR.jpg|500px]] || [[Archivo:ErroresRef.jpg|500px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure3RefDMR.jpg|500px]] || [[Archivo:TrapecioRefDMR.jpg|500px]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Análogamente a &amp;lt;math&amp;gt; f^* &amp;lt;/math&amp;gt;, las aproximaciones revelan ser capaces de tomar valores reales a pesar de partir de elementos con parte imaginaria no trivial. La aproximación vuelve a ser por norma del espacio de funciones pero no uniforme por el valor en &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Figura6RefDMR.jpg|500px|thumb|right|Representando esta función real de variable real en las mismas referencias que con &amp;lt;math&amp;gt; f^* &amp;lt;/math&amp;gt;, puede comprobarse que es precisamente su proyección ortogonal en el plano horizontal, claramente con parte imaginaria nula por estar definida como parte real de una función de valores complejos.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para aproximación y representación de gráficas. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
%%% Planteamiento&lt;br /&gt;
xx = 0:10^(-3):1;&lt;br /&gt;
xy = -1:10^(-3):0;&lt;br /&gt;
haux = @(x)(4*x.*(1/2 - x).^2 + 1i*x);&lt;br /&gt;
hauximp = @(x)-(4*x.*(1/2 - x).^2 + 1i*x);&lt;br /&gt;
yy=[hauximp(xx(end:-1:1)),haux(xx)];&lt;br /&gt;
&lt;br /&gt;
%%% Comprobacion de la extension impar&lt;br /&gt;
figure(1)&lt;br /&gt;
plot3([xy,xx], real(yy), imag(yy), 'r', 'LineWidth', 1.75)  &lt;br /&gt;
xline(0);&lt;br /&gt;
yline(0);&lt;br /&gt;
axis equal&lt;br /&gt;
xlim([-1, 1])&lt;br /&gt;
ylim([-1, 1])&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('Re(f(x))');&lt;br /&gt;
zlabel('Im(f(x))');&lt;br /&gt;
view(3)&lt;br /&gt;
grid on&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2)&lt;br /&gt;
subplot(1,2,1)&lt;br /&gt;
hold on&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('R');&lt;br /&gt;
plot(xx, real(haux(xx)), 'r', 'LineWidth', 1.5)&lt;br /&gt;
plot(xy, real(hauximp(xx(end:-1:1))), ...&lt;br /&gt;
    'r', 'LineWidth', 1.5)&lt;br /&gt;
title('\rm Extensión impar de la función f(x)', 'Interpreter', 'tex')&lt;br /&gt;
grid on&lt;br /&gt;
subplot(1,2,2)&lt;br /&gt;
hold on&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('iR');&lt;br /&gt;
plot(xx, imag(haux(xx)), 'r', 'LineWidth', 1.5)&lt;br /&gt;
plot(xy, imag(hauximp(xx(end:-1:1))), ...&lt;br /&gt;
    'r', 'LineWidth', 1.5)&lt;br /&gt;
title('\rm Extensión impar de la función f(x)', 'Interpreter', 'tex')&lt;br /&gt;
grid on&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
xx=[xy,xx];&lt;br /&gt;
N = [5,10,20];  &lt;br /&gt;
&lt;br /&gt;
%%% Inicializacion los vectores de errores&lt;br /&gt;
L2_errors = zeros(length(N), 1);&lt;br /&gt;
uniform_errors = zeros(length(N), 1);&lt;br /&gt;
&lt;br /&gt;
aux = 1;&lt;br /&gt;
for n = N %%% Aproximacion la funcion por la regla del trapecio&lt;br /&gt;
    a = zeros(1, n);  &lt;br /&gt;
    b = zeros(1, n);  &lt;br /&gt;
    fn = trapz(xx, yy/sqrt(2)) * ones(1, length(xx)); &lt;br /&gt;
    &lt;br /&gt;
    for k = 1:n&lt;br /&gt;
        a(k) = trapz(xx, yy .* ...&lt;br /&gt;
            conj(exp(1i*k*pi*xx)/sqrt(2)));&lt;br /&gt;
        b(k) = trapz(xx, yy .* ...&lt;br /&gt;
            conj(exp(1i*(-k)*pi*xx)/sqrt(2)));&lt;br /&gt;
        &lt;br /&gt;
        fn = fn + a(k) * exp(1i*k*pi*xx)/sqrt(2) + ...&lt;br /&gt;
            b(k) * exp(1i*(-k)*pi*xx)/sqrt(2);&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    %%% Visualizacion de los resultados&lt;br /&gt;
    figure(3)&lt;br /&gt;
    subplot(1, length(N), aux)&lt;br /&gt;
    plot3(xx, real(yy), imag(yy), 'r', 'LineWidth', 1.75)  &lt;br /&gt;
    hold on&lt;br /&gt;
    plot3(xx, real(fn), imag(fn), 'b', 'LineWidth', 1.75)  &lt;br /&gt;
    xline(0);&lt;br /&gt;
    yline(0);&lt;br /&gt;
    axis equal&lt;br /&gt;
    xlim([-1, 1])&lt;br /&gt;
    ylim([-1, 1])&lt;br /&gt;
    legend({'$f(x)$', '$f_n(x)$'}, ...&lt;br /&gt;
        'Interpreter', 'latex', 'Location', 'northwest')&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('Re(f(x))');&lt;br /&gt;
    zlabel('Im(f(x))');&lt;br /&gt;
    title(['n = ', num2str(n)], 'Interpreter', 'latex')&lt;br /&gt;
    view(3)&lt;br /&gt;
    grid on&lt;br /&gt;
    hold off&lt;br /&gt;
&lt;br /&gt;
    %%% Parte real&lt;br /&gt;
    figure(4)&lt;br /&gt;
    subplot(1, length(N), aux)&lt;br /&gt;
    plot3(xx, real(yy), imag(yy), 'r', 'LineWidth', 1.75)  &lt;br /&gt;
    hold on&lt;br /&gt;
    plot3(xx, real(fn), imag(fn), 'b', 'LineWidth', 1.75)  &lt;br /&gt;
    xline(0);&lt;br /&gt;
    yline(0);&lt;br /&gt;
    axis equal&lt;br /&gt;
    xlim([-1, 1])&lt;br /&gt;
    ylim([-1, 1])&lt;br /&gt;
    legend({'$f(x)$', '$f_n(x)$'}, ...&lt;br /&gt;
        'Interpreter', 'latex', 'Location', 'northwest')&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('Re(f(x))');&lt;br /&gt;
    zlabel('Im(f(x))');&lt;br /&gt;
    title(['n = ', num2str(n)], 'Interpreter', 'latex')&lt;br /&gt;
    view(2)&lt;br /&gt;
    grid on&lt;br /&gt;
    hold off&lt;br /&gt;
&lt;br /&gt;
    %%% Parte imaginaria&lt;br /&gt;
    figure(5)&lt;br /&gt;
    subplot(1, length(N), aux)&lt;br /&gt;
    plot3(xx, imag(yy), real(yy), 'r', 'LineWidth', 1.75)  &lt;br /&gt;
    hold on&lt;br /&gt;
    plot3(xx, imag(fn), real(fn), 'b', 'LineWidth', 1.75)  &lt;br /&gt;
    xline(0);&lt;br /&gt;
    yline(0);&lt;br /&gt;
    axis equal&lt;br /&gt;
    xlim([-1, 1])&lt;br /&gt;
    ylim([-1, 1])&lt;br /&gt;
    legend({'$f(x)$', '$f_n(x)$'}, ...&lt;br /&gt;
        'Interpreter', 'latex', 'Location', 'northwest')&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('Im(f(x))');&lt;br /&gt;
    zlabel('Re(f(x))');&lt;br /&gt;
    title(['n = ', num2str(n)], 'Interpreter', 'latex')&lt;br /&gt;
    view(2)&lt;br /&gt;
    grid on&lt;br /&gt;
    hold off&lt;br /&gt;
    &lt;br /&gt;
    %%% Guardamos los errores&lt;br /&gt;
    L2_errors(aux) = sqrt(trapz(xx, abs(yy - fn).^2));&lt;br /&gt;
    uniform_errors(aux) = max(abs(yy - fn)); &lt;br /&gt;
    aux = aux + 1;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
sgtitle('Aproximación de la función por la regla del trapecio', ...&lt;br /&gt;
    'Interpreter', 'latex');&lt;br /&gt;
&lt;br /&gt;
%%% Visualizacion de los errores&lt;br /&gt;
figure(6);&lt;br /&gt;
hold on;&lt;br /&gt;
plot(N, L2_errors, 'b-', 'LineWidth', 2); &lt;br /&gt;
plot(N, uniform_errors, 'r--', 'LineWidth', 2);  &lt;br /&gt;
grid on&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('Error');&lt;br /&gt;
legend('Error L2', 'Error uniforme');&lt;br /&gt;
sgtitle('Errores en normas L2 y uniforme en función de n', ...&lt;br /&gt;
    'Interpreter', 'latex');&lt;br /&gt;
hold off;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_DMR)&amp;diff=83910</id>
		<title>Series de Fourier (Grupo DMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_DMR)&amp;diff=83910"/>
				<updated>2025-02-13T08:38:23Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: /* Extensión impar */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Series de Fourier (Grupo DMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | Daniel Rodríguez Calderón, Marcos Cabellos Hernández, Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
En un espacio de Hilbert &amp;lt;math&amp;gt;L_2(a,b)&amp;lt;/math&amp;gt;, una serie de Fourier converge en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt; a una función real de variable real, &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;, que se puede representar mediante la base trigonométrica de Fourier como&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \quad&lt;br /&gt;
f(x) \sim \frac{a_0}{2} + \sum_{n=1}^\infty\left[a_n\cos \left( nx \right) + b_n\sin \left( nx \right) \right]&lt;br /&gt;
&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esta representación nos permite, tomando una suma parcial de la serie, aproximar a &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt;. Sin embargo, la base trigonométrica no se presta a la aproximación de funciones de variable real y valores complejos. Esta carencia nos lleva a la base trigonométrica compleja: considerando seno y coseno complejos, somos capaces de aproximar funciones de variable real y valores complejos o reales indistintamente. Esta base, con dominio &amp;lt;math&amp;gt; [-\pi,\pi] &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \quad \{e^{inx}\}_{n \in \mathbb{Z}} ,&lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
será nuestro foco de atención. La obtendremos formalmente a partir de la base trigonométrica original, para luego visualizarla y comprobar su capacidad para aproximar.&lt;br /&gt;
&lt;br /&gt;
=Base trigonométrica compleja=&lt;br /&gt;
&lt;br /&gt;
Para obtener la base compleja, partamos de la trigonométrica. Por la fórmula de Euler, podemos reescribir coseno y seno de la forma &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
 \cos\theta = \frac{1}{2} (e^{i\theta} + e^{-i\theta}) &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;\quad&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \sin\theta = \frac{1}{2i} (e^{i\theta} - e^{-i\theta})&lt;br /&gt;
&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Así,  en &amp;lt;math&amp;gt; [-\pi,\pi] &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; puede representarse formalmente como&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
f(x) \sim \frac{a_0}{2} + \sum_{n=1}^\infty\left[a_n\cos \left( nx \right) + b_n\sin \left( nx \right) \right] = \frac{a_0}{2} + \sum_{n=1}^\infty\left[\frac{a_n}{2}(e^{inx}+e^{-inx})  +  \frac{b_n}{2i}(e^{inx}-e^{-inx})  \right] = &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
=c_0 + \sum_{n=1}^\infty\left[c_n e^{inx}  +c_{-n} e^{-inx}  \right]=&amp;lt;/math&amp;gt;&amp;lt;math&amp;gt; \sum_{n=0}^\infty c_n e^{inx} + \sum_{n=-\infty}^{-1} c_n e^{inx} =\sum_{n=-\infty}^\infty c_n e^{inx}, &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; c_0:=\frac{a_0}{2}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; c_n:=\frac{a_n-ib_n}{2} &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; c_{-n}:=\frac{a_n+ib_n}{2} &amp;lt;/math&amp;gt;. Decimos que este desarrollo es formal por el penúltimo paso, notemos que estamos reordenando sumandos.&lt;br /&gt;
&lt;br /&gt;
De esta forma hemos obtenido la base trigonométrica compleja&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
 \{e_n := e^{ inx }\}_{n \in \mathbb{Z}} &lt;br /&gt;
&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Usando el producto escalar, comprobemos que es una base ortogonal &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(e_n,e_m)_{L^2} = \int_{-\pi}^{\pi} e_n  \overline{e_m}  \,dx = \int_{-\pi}^{\pi}  e^{inx} e^{-imx} \,dx = &lt;br /&gt;
\int_{-\pi}^{\pi} e^{(n-m)ix}  \,dx = \frac{-i}{n-m} e^{(n-m)ix} \Big|_{-\pi}^{\pi} = 0 \quad \text{si } n \neq m, \\ &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(e_n,e_n)_{L^2} = \int_{-\pi}^{\pi} e^{(n-n)ix}  \,dx = 2\pi.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aquí fijémonos en que hemos usado el producto escalar en &amp;lt;math&amp;gt;L^2(-\pi,\pi)&amp;lt;/math&amp;gt; dado por&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(f,g)_{L^2} = \int_{-\pi}^{\pi} f(x) \hspace{0.2cm}  \overline{g(x)}  \,dx &lt;br /&gt;
&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una observación relevante es que como la norma de cada elemento de la base es siempre &amp;lt;math&amp;gt; \sqrt{2\pi} &amp;lt;/math&amp;gt;, podemos ortonormalizar dividiendo precisamente por esta constante a cada elemento de la base trigonométrica compleja.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Base(DMR).gif|500px|thumb|right|(Pinchar) Términos de la base &amp;lt;math&amp;gt; \{e_n := e^{ inx }\}_{n} &amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;n \in \{-1,0,1,2\}&amp;lt;/math&amp;gt; en referencia tridimensional con eje real y plano complejo.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la base trigonométrica compleja. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
%%% Planteamiento&lt;br /&gt;
x = linspace(-pi, pi, 10000);&lt;br /&gt;
n_values = [-1, 0, 1, 2];&lt;br /&gt;
    &lt;br /&gt;
%%% Visualizacion animada de la base&lt;br /&gt;
pelicula=VideoWriter('baseanimada.avi'); &lt;br /&gt;
pelicula.FrameRate=100; &lt;br /&gt;
open(pelicula); &lt;br /&gt;
&lt;br /&gt;
figura=figure(1);&lt;br /&gt;
hold on;&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('Re(f(x))');&lt;br /&gt;
zlabel('Im(f(x))');&lt;br /&gt;
sgtitle('Representación de \{e^{inx}\}', 'Interpreter', 'tex')&lt;br /&gt;
grid on;&lt;br /&gt;
legend;&lt;br /&gt;
view(3);&lt;br /&gt;
axis([-pi,pi,-1.5,1.5,-1.5,1.5]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
h = gobjects(1, length(n_values));&lt;br /&gt;
&lt;br /&gt;
for i = 1:length(n_values)&lt;br /&gt;
    z = exp(1i*n_values(i)*x);&lt;br /&gt;
    h(i) = plot3(NaN, NaN, NaN,'LineWidth', 1.75, 'DisplayName', ...&lt;br /&gt;
        sprintf('n = %d', n_values(i)));&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
for k = 1:70:length(x)&lt;br /&gt;
    for i = 1:length(n_values)&lt;br /&gt;
        z = exp(1i * n_values(i) * x);&lt;br /&gt;
        set(h(i), 'XData', x(1:k), 'YData', real(z(1:k)), ...&lt;br /&gt;
            'ZData', imag(z(1:k)));&lt;br /&gt;
        imagen=getframe(figura);&lt;br /&gt;
        writeVideo(pelicula,imagen); &lt;br /&gt;
    end&lt;br /&gt;
    drawnow;&lt;br /&gt;
    pause(10^(-10));&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
close(pelicula); &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Extensión impar=&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-allign:justify;width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Representación gráfica de &amp;lt;math&amp;gt; f^*(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figura6DMR.jpg|400px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:ImparfDMR_V2.jpg|400px]]&lt;br /&gt;
|-&lt;br /&gt;
| Representación de &amp;lt;math&amp;gt;f^*&amp;lt;/math&amp;gt; con eje &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; y el plano complejo en la parte superior, mientras que representamos abajo parte real (izquierda) e imaginaria (derecha).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nos podemos plantear cómo aproximar la siguiente función &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
\begin{align}&lt;br /&gt;
f: [0,1] \subseteq \mathbb{R} &amp;amp;\longrightarrow \mathbb{C} \\    &lt;br /&gt;
x &amp;amp;\mapsto 4x(\frac{1}{2} − x)^2 + ix. &lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notemos que el intervalo de definición no es simétrico. Extendamos &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt; de forma impar&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
\begin{align}&lt;br /&gt;
f^*: [-1,1] \subseteq \mathbb{R} &amp;amp;\longrightarrow \mathbb{C}   \\&lt;br /&gt;
x &amp;amp;\mapsto \begin{cases} 4x(\frac{1}{2} + x)^2 + ix \text{ , si } x\in [-1,0],\\&lt;br /&gt;
   &lt;br /&gt;
4x(\frac{1}{2} - x)^2 + ix \text{ , si } x\in [0,1].&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tras representar esta función en las imágenes adjuntas, sólo nos falta adaptar la base al nuevo intervalo. Comprobemos que como verifica&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\{e^{\pi n ix }\}_{n \in \mathbb{Z}} : (E_n,E_m)_{L^2} = \int_{-1}^1 E_n\overline{E_m} \,dx = \int_{-1}^1 e^{\pi (n-m)i} \,dx = \begin{cases}&lt;br /&gt;
\int_{-1}^1 1 dx = 2 \text{ , si } n = m, \\&lt;br /&gt;
0 \text{ , si } n \neq m,&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
entonces es una base ortogonal, habiéndonos basado fuertemente en la periodicidad en el intervalo para el segundo caso. Además, podríamos ortonormalizar dividiendo por la norma común a todos los elementos, &amp;lt;math&amp;gt; \sqrt{2} &amp;lt;/math&amp;gt;, por lo que podemos definir la base ortonormal&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\{E_n\}_{n \in \mathbb{Z}} := \{\frac{\sqrt{2}e^{\pi n ix }}{2}\}_{n \in \mathbb{Z}}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para realizar las aproximaciones, necesitamos los coeficientes de cada elemento que consideremos, que pueden obtenerse por ortonormalidad de la base mediante el producto escalar ya que&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
f^*(x) \sim \sum_{n=-\infty}^{\infty} C_nE_n = \sum_{n=-\infty}^{\infty} C_ne^{\pi n i}, \quad&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \quad C_n = (f^*,E_n)_{L^2} = \int_{-1}^1 f^*(x) \overline{E}_n(x) \,dx \in \mathbb{C}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:500px; float:right; font-size:80%;&amp;quot;&lt;br /&gt;
|+ Aproximaciones mediante base trigonométrica compleja.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure2fDMR.jpg|320px]] || [[Archivo:Erroresf.jpg|320px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure3fDMR.jpg|320px]] || [[Archivo:TrapeciofDMR.jpg|320px]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |  Representación de aproximaciones con elementos hasta &amp;lt;math&amp;gt; n = 5,10,20 &amp;lt;/math&amp;gt; en tres dimensiones, parte real de las aproximaciones y parte imaginaria respectivamente en esquinas superior izquierda y ambas de abajo. Mejora visiblemente, aunque difieran los extremos, reflejado en los errores representados en la esquina superior derecha. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos estimar estos coeficientes &amp;lt;math&amp;gt; C_n &amp;lt;/math&amp;gt; numéricamente por fórmula del trapecio, y así aproximar la función para un número dado de &amp;lt;math&amp;gt; E_n &amp;lt;/math&amp;gt;. La aproximación con los elementos de la base de &amp;lt;math&amp;gt;-n&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; será entonces&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \quad&lt;br /&gt;
f(x) \approx \sum_{i=-n}^{n} C_iE_{i|[0,1]}. &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vemos que la aproximación mejora el error en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;, algo que esperábamos por continuidad de &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; y su extensión impar. Además, como &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; &lt;br /&gt;
f(1) \neq \frac{f^*(-1)+f^*(1)}{2}  = 0 &lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
por ser impar, las aproximaciones convergerán puntualmente a &amp;lt;math&amp;gt; 0 &amp;lt;/math&amp;gt; en el valor &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;. No hay convergencia uniforme porque es necesario que la convergencia puntual de las aproximaciones sucesivas fuese &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt; en todo punto de &amp;lt;math&amp;gt;[0,1]&amp;lt;/math&amp;gt;. De hecho, el mayor error se obtiene aquí como &amp;lt;math&amp;gt;|f(1)-f_n(1)|=|1+i|=\sqrt{2}. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos verificar que esta base también es útil con funciones reales aproximando &amp;lt;math&amp;gt;\text{Re}f &amp;lt;/math&amp;gt; con una extensión impar (representado gráficamente a continuación), precisamente &amp;lt;math&amp;gt;\text{Re}f^* &amp;lt;/math&amp;gt;. Por el mismo procedimiento, base y código, logramos de nuevo aproximaciones que convergen en norma del espacio de funciones pero no uniformemente, una vez más por el problema que causa &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;, donde de nuevo se halla el mayor error con &amp;lt;math&amp;gt;|f(1)-f_n(1)|=|1|=1. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Código=&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Aproximaciones mediante base trigonométrica compleja.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure2RefDMR.jpg|500px]] || [[Archivo:ErroresRef.jpg|500px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure3RefDMR.jpg|500px]] || [[Archivo:TrapecioRefDMR.jpg|500px]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Análogamente a &amp;lt;math&amp;gt; f^* &amp;lt;/math&amp;gt;, las aproximaciones revelan ser capaces de tomar valores reales a pesar de partir de elementos con parte imaginaria no trivial. La aproximación vuelve a ser por norma del espacio de funciones pero no uniforme por el valor en &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Figura6RefDMR.jpg|300px|thumb|right|Representando esta función real de variable real en las mismas referencias que con &amp;lt;math&amp;gt; f^* &amp;lt;/math&amp;gt;, puede comprobarse que es precisamente su proyección ortogonal en el plano horizontal, claramente con parte imaginaria nula por estar definida como parte real de una función de valores complejos.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para aproximación y representación de gráficas. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
%%% Planteamiento&lt;br /&gt;
xx = 0:10^(-3):1;&lt;br /&gt;
xy = -1:10^(-3):0;&lt;br /&gt;
haux = @(x)(4*x.*(1/2 - x).^2 + 1i*x);&lt;br /&gt;
hauximp = @(x)-(4*x.*(1/2 - x).^2 + 1i*x);&lt;br /&gt;
yy=[hauximp(xx(end:-1:1)),haux(xx)];&lt;br /&gt;
&lt;br /&gt;
%%% Comprobacion de la extension impar&lt;br /&gt;
figure(1)&lt;br /&gt;
plot3([xy,xx], real(yy), imag(yy), 'r', 'LineWidth', 1.75)  &lt;br /&gt;
xline(0);&lt;br /&gt;
yline(0);&lt;br /&gt;
axis equal&lt;br /&gt;
xlim([-1, 1])&lt;br /&gt;
ylim([-1, 1])&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('Re(f(x))');&lt;br /&gt;
zlabel('Im(f(x))');&lt;br /&gt;
view(3)&lt;br /&gt;
grid on&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2)&lt;br /&gt;
subplot(1,2,1)&lt;br /&gt;
hold on&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('R');&lt;br /&gt;
plot(xx, real(haux(xx)), 'r', 'LineWidth', 1.5)&lt;br /&gt;
plot(xy, real(hauximp(xx(end:-1:1))), ...&lt;br /&gt;
    'r', 'LineWidth', 1.5)&lt;br /&gt;
title('\rm Extensión impar de la función f(x)', 'Interpreter', 'tex')&lt;br /&gt;
grid on&lt;br /&gt;
subplot(1,2,2)&lt;br /&gt;
hold on&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('iR');&lt;br /&gt;
plot(xx, imag(haux(xx)), 'r', 'LineWidth', 1.5)&lt;br /&gt;
plot(xy, imag(hauximp(xx(end:-1:1))), ...&lt;br /&gt;
    'r', 'LineWidth', 1.5)&lt;br /&gt;
title('\rm Extensión impar de la función f(x)', 'Interpreter', 'tex')&lt;br /&gt;
grid on&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
xx=[xy,xx];&lt;br /&gt;
N = [5,10,20];  &lt;br /&gt;
&lt;br /&gt;
%%% Inicializacion los vectores de errores&lt;br /&gt;
L2_errors = zeros(length(N), 1);&lt;br /&gt;
uniform_errors = zeros(length(N), 1);&lt;br /&gt;
&lt;br /&gt;
aux = 1;&lt;br /&gt;
for n = N %%% Aproximacion la funcion por la regla del trapecio&lt;br /&gt;
    a = zeros(1, n);  &lt;br /&gt;
    b = zeros(1, n);  &lt;br /&gt;
    fn = trapz(xx, yy/sqrt(2)) * ones(1, length(xx)); &lt;br /&gt;
    &lt;br /&gt;
    for k = 1:n&lt;br /&gt;
        a(k) = trapz(xx, yy .* ...&lt;br /&gt;
            conj(exp(1i*k*pi*xx)/sqrt(2)));&lt;br /&gt;
        b(k) = trapz(xx, yy .* ...&lt;br /&gt;
            conj(exp(1i*(-k)*pi*xx)/sqrt(2)));&lt;br /&gt;
        &lt;br /&gt;
        fn = fn + a(k) * exp(1i*k*pi*xx)/sqrt(2) + ...&lt;br /&gt;
            b(k) * exp(1i*(-k)*pi*xx)/sqrt(2);&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    %%% Visualizacion de los resultados&lt;br /&gt;
    figure(3)&lt;br /&gt;
    subplot(1, length(N), aux)&lt;br /&gt;
    plot3(xx, real(yy), imag(yy), 'r', 'LineWidth', 1.75)  &lt;br /&gt;
    hold on&lt;br /&gt;
    plot3(xx, real(fn), imag(fn), 'b', 'LineWidth', 1.75)  &lt;br /&gt;
    xline(0);&lt;br /&gt;
    yline(0);&lt;br /&gt;
    axis equal&lt;br /&gt;
    xlim([-1, 1])&lt;br /&gt;
    ylim([-1, 1])&lt;br /&gt;
    legend({'$f(x)$', '$f_n(x)$'}, ...&lt;br /&gt;
        'Interpreter', 'latex', 'Location', 'northwest')&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('Re(f(x))');&lt;br /&gt;
    zlabel('Im(f(x))');&lt;br /&gt;
    title(['n = ', num2str(n)], 'Interpreter', 'latex')&lt;br /&gt;
    view(3)&lt;br /&gt;
    grid on&lt;br /&gt;
    hold off&lt;br /&gt;
&lt;br /&gt;
    %%% Parte real&lt;br /&gt;
    figure(4)&lt;br /&gt;
    subplot(1, length(N), aux)&lt;br /&gt;
    plot3(xx, real(yy), imag(yy), 'r', 'LineWidth', 1.75)  &lt;br /&gt;
    hold on&lt;br /&gt;
    plot3(xx, real(fn), imag(fn), 'b', 'LineWidth', 1.75)  &lt;br /&gt;
    xline(0);&lt;br /&gt;
    yline(0);&lt;br /&gt;
    axis equal&lt;br /&gt;
    xlim([-1, 1])&lt;br /&gt;
    ylim([-1, 1])&lt;br /&gt;
    legend({'$f(x)$', '$f_n(x)$'}, ...&lt;br /&gt;
        'Interpreter', 'latex', 'Location', 'northwest')&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('Re(f(x))');&lt;br /&gt;
    zlabel('Im(f(x))');&lt;br /&gt;
    title(['n = ', num2str(n)], 'Interpreter', 'latex')&lt;br /&gt;
    view(2)&lt;br /&gt;
    grid on&lt;br /&gt;
    hold off&lt;br /&gt;
&lt;br /&gt;
    %%% Parte imaginaria&lt;br /&gt;
    figure(5)&lt;br /&gt;
    subplot(1, length(N), aux)&lt;br /&gt;
    plot3(xx, imag(yy), real(yy), 'r', 'LineWidth', 1.75)  &lt;br /&gt;
    hold on&lt;br /&gt;
    plot3(xx, imag(fn), real(fn), 'b', 'LineWidth', 1.75)  &lt;br /&gt;
    xline(0);&lt;br /&gt;
    yline(0);&lt;br /&gt;
    axis equal&lt;br /&gt;
    xlim([-1, 1])&lt;br /&gt;
    ylim([-1, 1])&lt;br /&gt;
    legend({'$f(x)$', '$f_n(x)$'}, ...&lt;br /&gt;
        'Interpreter', 'latex', 'Location', 'northwest')&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('Im(f(x))');&lt;br /&gt;
    zlabel('Re(f(x))');&lt;br /&gt;
    title(['n = ', num2str(n)], 'Interpreter', 'latex')&lt;br /&gt;
    view(2)&lt;br /&gt;
    grid on&lt;br /&gt;
    hold off&lt;br /&gt;
    &lt;br /&gt;
    %%% Guardamos los errores&lt;br /&gt;
    L2_errors(aux) = sqrt(trapz(xx, abs(yy - fn).^2));&lt;br /&gt;
    uniform_errors(aux) = max(abs(yy - fn)); &lt;br /&gt;
    aux = aux + 1;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
sgtitle('Aproximación de la función por la regla del trapecio', ...&lt;br /&gt;
    'Interpreter', 'latex');&lt;br /&gt;
&lt;br /&gt;
%%% Visualizacion de los errores&lt;br /&gt;
figure(6);&lt;br /&gt;
hold on;&lt;br /&gt;
plot(N, L2_errors, 'b-', 'LineWidth', 2); &lt;br /&gt;
plot(N, uniform_errors, 'r--', 'LineWidth', 2);  &lt;br /&gt;
grid on&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('Error');&lt;br /&gt;
legend('Error L2', 'Error uniforme');&lt;br /&gt;
sgtitle('Errores en normas L2 y uniforme en función de n', ...&lt;br /&gt;
    'Interpreter', 'latex');&lt;br /&gt;
hold off;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_DMR)&amp;diff=83909</id>
		<title>Series de Fourier (Grupo DMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_DMR)&amp;diff=83909"/>
				<updated>2025-02-13T08:35:28Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: /* Extensión impar */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Series de Fourier (Grupo DMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | Daniel Rodríguez Calderón, Marcos Cabellos Hernández, Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
En un espacio de Hilbert &amp;lt;math&amp;gt;L_2(a,b)&amp;lt;/math&amp;gt;, una serie de Fourier converge en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt; a una función real de variable real, &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;, que se puede representar mediante la base trigonométrica de Fourier como&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \quad&lt;br /&gt;
f(x) \sim \frac{a_0}{2} + \sum_{n=1}^\infty\left[a_n\cos \left( nx \right) + b_n\sin \left( nx \right) \right]&lt;br /&gt;
&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esta representación nos permite, tomando una suma parcial de la serie, aproximar a &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt;. Sin embargo, la base trigonométrica no se presta a la aproximación de funciones de variable real y valores complejos. Esta carencia nos lleva a la base trigonométrica compleja: considerando seno y coseno complejos, somos capaces de aproximar funciones de variable real y valores complejos o reales indistintamente. Esta base, con dominio &amp;lt;math&amp;gt; [-\pi,\pi] &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \quad \{e^{inx}\}_{n \in \mathbb{Z}} ,&lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
será nuestro foco de atención. La obtendremos formalmente a partir de la base trigonométrica original, para luego visualizarla y comprobar su capacidad para aproximar.&lt;br /&gt;
&lt;br /&gt;
=Base trigonométrica compleja=&lt;br /&gt;
&lt;br /&gt;
Para obtener la base compleja, partamos de la trigonométrica. Por la fórmula de Euler, podemos reescribir coseno y seno de la forma &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
 \cos\theta = \frac{1}{2} (e^{i\theta} + e^{-i\theta}) &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;\quad&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \sin\theta = \frac{1}{2i} (e^{i\theta} - e^{-i\theta})&lt;br /&gt;
&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Así,  en &amp;lt;math&amp;gt; [-\pi,\pi] &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; puede representarse formalmente como&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
f(x) \sim \frac{a_0}{2} + \sum_{n=1}^\infty\left[a_n\cos \left( nx \right) + b_n\sin \left( nx \right) \right] = \frac{a_0}{2} + \sum_{n=1}^\infty\left[\frac{a_n}{2}(e^{inx}+e^{-inx})  +  \frac{b_n}{2i}(e^{inx}-e^{-inx})  \right] = &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
=c_0 + \sum_{n=1}^\infty\left[c_n e^{inx}  +c_{-n} e^{-inx}  \right]=&amp;lt;/math&amp;gt;&amp;lt;math&amp;gt; \sum_{n=0}^\infty c_n e^{inx} + \sum_{n=-\infty}^{-1} c_n e^{inx} =\sum_{n=-\infty}^\infty c_n e^{inx}, &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; c_0:=\frac{a_0}{2}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; c_n:=\frac{a_n-ib_n}{2} &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; c_{-n}:=\frac{a_n+ib_n}{2} &amp;lt;/math&amp;gt;. Decimos que este desarrollo es formal por el penúltimo paso, notemos que estamos reordenando sumandos.&lt;br /&gt;
&lt;br /&gt;
De esta forma hemos obtenido la base trigonométrica compleja&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
 \{e_n := e^{ inx }\}_{n \in \mathbb{Z}} &lt;br /&gt;
&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Usando el producto escalar, comprobemos que es una base ortogonal &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(e_n,e_m)_{L^2} = \int_{-\pi}^{\pi} e_n  \overline{e_m}  \,dx = \int_{-\pi}^{\pi}  e^{inx} e^{-imx} \,dx = &lt;br /&gt;
\int_{-\pi}^{\pi} e^{(n-m)ix}  \,dx = \frac{-i}{n-m} e^{(n-m)ix} \Big|_{-\pi}^{\pi} = 0 \quad \text{si } n \neq m, \\ &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(e_n,e_n)_{L^2} = \int_{-\pi}^{\pi} e^{(n-n)ix}  \,dx = 2\pi.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aquí fijémonos en que hemos usado el producto escalar en &amp;lt;math&amp;gt;L^2(-\pi,\pi)&amp;lt;/math&amp;gt; dado por&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(f,g)_{L^2} = \int_{-\pi}^{\pi} f(x) \hspace{0.2cm}  \overline{g(x)}  \,dx &lt;br /&gt;
&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una observación relevante es que como la norma de cada elemento de la base es siempre &amp;lt;math&amp;gt; \sqrt{2\pi} &amp;lt;/math&amp;gt;, podemos ortonormalizar dividiendo precisamente por esta constante a cada elemento de la base trigonométrica compleja.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Base(DMR).gif|500px|thumb|right|(Pinchar) Términos de la base &amp;lt;math&amp;gt; \{e_n := e^{ inx }\}_{n} &amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;n \in \{-1,0,1,2\}&amp;lt;/math&amp;gt; en referencia tridimensional con eje real y plano complejo.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la base trigonométrica compleja. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
%%% Planteamiento&lt;br /&gt;
x = linspace(-pi, pi, 10000);&lt;br /&gt;
n_values = [-1, 0, 1, 2];&lt;br /&gt;
    &lt;br /&gt;
%%% Visualizacion animada de la base&lt;br /&gt;
pelicula=VideoWriter('baseanimada.avi'); &lt;br /&gt;
pelicula.FrameRate=100; &lt;br /&gt;
open(pelicula); &lt;br /&gt;
&lt;br /&gt;
figura=figure(1);&lt;br /&gt;
hold on;&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('Re(f(x))');&lt;br /&gt;
zlabel('Im(f(x))');&lt;br /&gt;
sgtitle('Representación de \{e^{inx}\}', 'Interpreter', 'tex')&lt;br /&gt;
grid on;&lt;br /&gt;
legend;&lt;br /&gt;
view(3);&lt;br /&gt;
axis([-pi,pi,-1.5,1.5,-1.5,1.5]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
h = gobjects(1, length(n_values));&lt;br /&gt;
&lt;br /&gt;
for i = 1:length(n_values)&lt;br /&gt;
    z = exp(1i*n_values(i)*x);&lt;br /&gt;
    h(i) = plot3(NaN, NaN, NaN,'LineWidth', 1.75, 'DisplayName', ...&lt;br /&gt;
        sprintf('n = %d', n_values(i)));&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
for k = 1:70:length(x)&lt;br /&gt;
    for i = 1:length(n_values)&lt;br /&gt;
        z = exp(1i * n_values(i) * x);&lt;br /&gt;
        set(h(i), 'XData', x(1:k), 'YData', real(z(1:k)), ...&lt;br /&gt;
            'ZData', imag(z(1:k)));&lt;br /&gt;
        imagen=getframe(figura);&lt;br /&gt;
        writeVideo(pelicula,imagen); &lt;br /&gt;
    end&lt;br /&gt;
    drawnow;&lt;br /&gt;
    pause(10^(-10));&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
close(pelicula); &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Extensión impar=&lt;br /&gt;
&lt;br /&gt;
Nos podemos plantear cómo aproximar la siguiente función &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-allign:justify;width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Representación gráfica de &amp;lt;math&amp;gt; f^*(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figura6DMR.jpg|400px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:ImparfDMR_V2.jpg|400px]]&lt;br /&gt;
|-&lt;br /&gt;
| Representación de &amp;lt;math&amp;gt;f^*&amp;lt;/math&amp;gt; con eje &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; y el plano complejo en la parte superior, mientras que representamos abajo parte real (izquierda) e imaginaria (derecha).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
\begin{align}&lt;br /&gt;
f: [0,1] \subseteq \mathbb{R} &amp;amp;\longrightarrow \mathbb{C} \\    &lt;br /&gt;
x &amp;amp;\mapsto 4x(\frac{1}{2} − x)^2 + ix. &lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notemos que el intervalo de definición no es simétrico. Extendamos &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt; de forma impar&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
\begin{align}&lt;br /&gt;
f^*: [-1,1] \subseteq \mathbb{R} &amp;amp;\longrightarrow \mathbb{C}   \\&lt;br /&gt;
x &amp;amp;\mapsto \begin{cases} 4x(\frac{1}{2} + x)^2 + ix \text{ , si } x\in [-1,0],\\&lt;br /&gt;
   &lt;br /&gt;
4x(\frac{1}{2} - x)^2 + ix \text{ , si } x\in [0,1].&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tras representar esta función en las imágenes adjuntas, sólo nos falta adaptar la base al nuevo intervalo. Comprobemos que como verifica&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\{e^{\pi n ix }\}_{n \in \mathbb{Z}} : (E_n,E_m)_{L^2} = \int_{-1}^1 E_n\overline{E_m} \,dx = \int_{-1}^1 e^{\pi (n-m)i} \,dx = \begin{cases}&lt;br /&gt;
\int_{-1}^1 1 dx = 2 \text{ , si } n = m, \\&lt;br /&gt;
0 \text{ , si } n \neq m,&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
entonces es una base ortogonal, habiéndonos basado fuertemente en la periodicidad en el intervalo para el segundo caso. Además, podríamos ortonormalizar dividiendo por la norma común a todos los elementos, &amp;lt;math&amp;gt; \sqrt{2} &amp;lt;/math&amp;gt;, por lo que podemos definir la base ortonormal&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\{E_n\}_{n \in \mathbb{Z}} := \{\frac{\sqrt{2}e^{\pi n ix }}{2}\}_{n \in \mathbb{Z}}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para realizar las aproximaciones, necesitamos los coeficientes de cada elemento que consideremos, que pueden obtenerse por ortonormalidad de la base mediante el producto escalar ya que&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
f^*(x) \sim \sum_{n=-\infty}^{\infty} C_nE_n = \sum_{n=-\infty}^{\infty} C_ne^{\pi n i}, \quad&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \quad C_n = (f^*,E_n)_{L^2} = \int_{-1}^1 f^*(x) \overline{E}_n(x) \,dx \in \mathbb{C}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos estimar estos coeficientes &amp;lt;math&amp;gt; C_n &amp;lt;/math&amp;gt; numéricamente por fórmula del trapecio, y así aproximar la función para un número dado de &amp;lt;math&amp;gt; E_n &amp;lt;/math&amp;gt;. La aproximación con los elementos de la base de &amp;lt;math&amp;gt;-n&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; será entonces&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:500px; float:right; font-size:80%;&amp;quot;&lt;br /&gt;
|+ Aproximaciones mediante base trigonométrica compleja.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure2fDMR.jpg|320px]] || [[Archivo:Erroresf.jpg|320px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure3fDMR.jpg|320px]] || [[Archivo:TrapeciofDMR.jpg|320px]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |  Representación de aproximaciones con elementos hasta &amp;lt;math&amp;gt; n = 5,10,20 &amp;lt;/math&amp;gt; en tres dimensiones, parte real de las aproximaciones y parte imaginaria respectivamente en esquinas superior izquierda y ambas de abajo. Mejora visiblemente, aunque difieran los extremos, reflejado en los errores representados en la esquina superior derecha. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \quad&lt;br /&gt;
f(x) \approx \sum_{i=-n}^{n} C_iE_{i|[0,1]}. &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vemos que la aproximación mejora el error en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;, algo que esperábamos por continuidad de &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; y su extensión impar. Además, como &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; &lt;br /&gt;
f(1) \neq \frac{f^*(-1)+f^*(1)}{2}  = 0 &lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
por ser impar, las aproximaciones convergerán puntualmente a &amp;lt;math&amp;gt; 0 &amp;lt;/math&amp;gt; en el valor &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;. No hay convergencia uniforme porque es necesario que la convergencia puntual de las aproximaciones sucesivas fuese &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt; en todo punto de &amp;lt;math&amp;gt;[0,1]&amp;lt;/math&amp;gt;. De hecho, el mayor error se obtiene aquí como &amp;lt;math&amp;gt;|f(1)-f_n(1)|=|1+i|=\sqrt{2}. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos verificar que esta base también es útil con funciones reales aproximando &amp;lt;math&amp;gt;\text{Re}f &amp;lt;/math&amp;gt; con una extensión impar (representado gráficamente a continuación), precisamente &amp;lt;math&amp;gt;\text{Re}f^* &amp;lt;/math&amp;gt;. Por el mismo procedimiento, base y código, logramos de nuevo aproximaciones que convergen en norma del espacio de funciones pero no uniformemente, una vez más por el problema que causa &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;, donde de nuevo se halla el mayor error con &amp;lt;math&amp;gt;|f(1)-f_n(1)|=|1|=1. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Código=&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Aproximaciones mediante base trigonométrica compleja.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure2RefDMR.jpg|500px]] || [[Archivo:ErroresRef.jpg|500px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure3RefDMR.jpg|500px]] || [[Archivo:TrapecioRefDMR.jpg|500px]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Análogamente a &amp;lt;math&amp;gt; f^* &amp;lt;/math&amp;gt;, las aproximaciones revelan ser capaces de tomar valores reales a pesar de partir de elementos con parte imaginaria no trivial. La aproximación vuelve a ser por norma del espacio de funciones pero no uniforme por el valor en &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Figura6RefDMR.jpg|300px|thumb|right|Representando esta función real de variable real en las mismas referencias que con &amp;lt;math&amp;gt; f^* &amp;lt;/math&amp;gt;, puede comprobarse que es precisamente su proyección ortogonal en el plano horizontal, claramente con parte imaginaria nula por estar definida como parte real de una función de valores complejos.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para aproximación y representación de gráficas. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
%%% Planteamiento&lt;br /&gt;
xx = 0:10^(-3):1;&lt;br /&gt;
xy = -1:10^(-3):0;&lt;br /&gt;
haux = @(x)(4*x.*(1/2 - x).^2 + 1i*x);&lt;br /&gt;
hauximp = @(x)-(4*x.*(1/2 - x).^2 + 1i*x);&lt;br /&gt;
yy=[hauximp(xx(end:-1:1)),haux(xx)];&lt;br /&gt;
&lt;br /&gt;
%%% Comprobacion de la extension impar&lt;br /&gt;
figure(1)&lt;br /&gt;
plot3([xy,xx], real(yy), imag(yy), 'r', 'LineWidth', 1.75)  &lt;br /&gt;
xline(0);&lt;br /&gt;
yline(0);&lt;br /&gt;
axis equal&lt;br /&gt;
xlim([-1, 1])&lt;br /&gt;
ylim([-1, 1])&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('Re(f(x))');&lt;br /&gt;
zlabel('Im(f(x))');&lt;br /&gt;
view(3)&lt;br /&gt;
grid on&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2)&lt;br /&gt;
subplot(1,2,1)&lt;br /&gt;
hold on&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('R');&lt;br /&gt;
plot(xx, real(haux(xx)), 'r', 'LineWidth', 1.5)&lt;br /&gt;
plot(xy, real(hauximp(xx(end:-1:1))), ...&lt;br /&gt;
    'r', 'LineWidth', 1.5)&lt;br /&gt;
title('\rm Extensión impar de la función f(x)', 'Interpreter', 'tex')&lt;br /&gt;
grid on&lt;br /&gt;
subplot(1,2,2)&lt;br /&gt;
hold on&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('iR');&lt;br /&gt;
plot(xx, imag(haux(xx)), 'r', 'LineWidth', 1.5)&lt;br /&gt;
plot(xy, imag(hauximp(xx(end:-1:1))), ...&lt;br /&gt;
    'r', 'LineWidth', 1.5)&lt;br /&gt;
title('\rm Extensión impar de la función f(x)', 'Interpreter', 'tex')&lt;br /&gt;
grid on&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
xx=[xy,xx];&lt;br /&gt;
N = [5,10,20];  &lt;br /&gt;
&lt;br /&gt;
%%% Inicializacion los vectores de errores&lt;br /&gt;
L2_errors = zeros(length(N), 1);&lt;br /&gt;
uniform_errors = zeros(length(N), 1);&lt;br /&gt;
&lt;br /&gt;
aux = 1;&lt;br /&gt;
for n = N %%% Aproximacion la funcion por la regla del trapecio&lt;br /&gt;
    a = zeros(1, n);  &lt;br /&gt;
    b = zeros(1, n);  &lt;br /&gt;
    fn = trapz(xx, yy/sqrt(2)) * ones(1, length(xx)); &lt;br /&gt;
    &lt;br /&gt;
    for k = 1:n&lt;br /&gt;
        a(k) = trapz(xx, yy .* ...&lt;br /&gt;
            conj(exp(1i*k*pi*xx)/sqrt(2)));&lt;br /&gt;
        b(k) = trapz(xx, yy .* ...&lt;br /&gt;
            conj(exp(1i*(-k)*pi*xx)/sqrt(2)));&lt;br /&gt;
        &lt;br /&gt;
        fn = fn + a(k) * exp(1i*k*pi*xx)/sqrt(2) + ...&lt;br /&gt;
            b(k) * exp(1i*(-k)*pi*xx)/sqrt(2);&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    %%% Visualizacion de los resultados&lt;br /&gt;
    figure(3)&lt;br /&gt;
    subplot(1, length(N), aux)&lt;br /&gt;
    plot3(xx, real(yy), imag(yy), 'r', 'LineWidth', 1.75)  &lt;br /&gt;
    hold on&lt;br /&gt;
    plot3(xx, real(fn), imag(fn), 'b', 'LineWidth', 1.75)  &lt;br /&gt;
    xline(0);&lt;br /&gt;
    yline(0);&lt;br /&gt;
    axis equal&lt;br /&gt;
    xlim([-1, 1])&lt;br /&gt;
    ylim([-1, 1])&lt;br /&gt;
    legend({'$f(x)$', '$f_n(x)$'}, ...&lt;br /&gt;
        'Interpreter', 'latex', 'Location', 'northwest')&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('Re(f(x))');&lt;br /&gt;
    zlabel('Im(f(x))');&lt;br /&gt;
    title(['n = ', num2str(n)], 'Interpreter', 'latex')&lt;br /&gt;
    view(3)&lt;br /&gt;
    grid on&lt;br /&gt;
    hold off&lt;br /&gt;
&lt;br /&gt;
    %%% Parte real&lt;br /&gt;
    figure(4)&lt;br /&gt;
    subplot(1, length(N), aux)&lt;br /&gt;
    plot3(xx, real(yy), imag(yy), 'r', 'LineWidth', 1.75)  &lt;br /&gt;
    hold on&lt;br /&gt;
    plot3(xx, real(fn), imag(fn), 'b', 'LineWidth', 1.75)  &lt;br /&gt;
    xline(0);&lt;br /&gt;
    yline(0);&lt;br /&gt;
    axis equal&lt;br /&gt;
    xlim([-1, 1])&lt;br /&gt;
    ylim([-1, 1])&lt;br /&gt;
    legend({'$f(x)$', '$f_n(x)$'}, ...&lt;br /&gt;
        'Interpreter', 'latex', 'Location', 'northwest')&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('Re(f(x))');&lt;br /&gt;
    zlabel('Im(f(x))');&lt;br /&gt;
    title(['n = ', num2str(n)], 'Interpreter', 'latex')&lt;br /&gt;
    view(2)&lt;br /&gt;
    grid on&lt;br /&gt;
    hold off&lt;br /&gt;
&lt;br /&gt;
    %%% Parte imaginaria&lt;br /&gt;
    figure(5)&lt;br /&gt;
    subplot(1, length(N), aux)&lt;br /&gt;
    plot3(xx, imag(yy), real(yy), 'r', 'LineWidth', 1.75)  &lt;br /&gt;
    hold on&lt;br /&gt;
    plot3(xx, imag(fn), real(fn), 'b', 'LineWidth', 1.75)  &lt;br /&gt;
    xline(0);&lt;br /&gt;
    yline(0);&lt;br /&gt;
    axis equal&lt;br /&gt;
    xlim([-1, 1])&lt;br /&gt;
    ylim([-1, 1])&lt;br /&gt;
    legend({'$f(x)$', '$f_n(x)$'}, ...&lt;br /&gt;
        'Interpreter', 'latex', 'Location', 'northwest')&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('Im(f(x))');&lt;br /&gt;
    zlabel('Re(f(x))');&lt;br /&gt;
    title(['n = ', num2str(n)], 'Interpreter', 'latex')&lt;br /&gt;
    view(2)&lt;br /&gt;
    grid on&lt;br /&gt;
    hold off&lt;br /&gt;
    &lt;br /&gt;
    %%% Guardamos los errores&lt;br /&gt;
    L2_errors(aux) = sqrt(trapz(xx, abs(yy - fn).^2));&lt;br /&gt;
    uniform_errors(aux) = max(abs(yy - fn)); &lt;br /&gt;
    aux = aux + 1;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
sgtitle('Aproximación de la función por la regla del trapecio', ...&lt;br /&gt;
    'Interpreter', 'latex');&lt;br /&gt;
&lt;br /&gt;
%%% Visualizacion de los errores&lt;br /&gt;
figure(6);&lt;br /&gt;
hold on;&lt;br /&gt;
plot(N, L2_errors, 'b-', 'LineWidth', 2); &lt;br /&gt;
plot(N, uniform_errors, 'r--', 'LineWidth', 2);  &lt;br /&gt;
grid on&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('Error');&lt;br /&gt;
legend('Error L2', 'Error uniforme');&lt;br /&gt;
sgtitle('Errores en normas L2 y uniforme en función de n', ...&lt;br /&gt;
    'Interpreter', 'latex');&lt;br /&gt;
hold off;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_DMR)&amp;diff=83908</id>
		<title>Series de Fourier (Grupo DMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_DMR)&amp;diff=83908"/>
				<updated>2025-02-13T08:28:09Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: /* Código */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Series de Fourier (Grupo DMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | Daniel Rodríguez Calderón, Marcos Cabellos Hernández, Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
En un espacio de Hilbert &amp;lt;math&amp;gt;L_2(a,b)&amp;lt;/math&amp;gt;, una serie de Fourier converge en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt; a una función real de variable real, &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;, que se puede representar mediante la base trigonométrica de Fourier como&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \quad&lt;br /&gt;
f(x) \sim \frac{a_0}{2} + \sum_{n=1}^\infty\left[a_n\cos \left( nx \right) + b_n\sin \left( nx \right) \right]&lt;br /&gt;
&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esta representación nos permite, tomando una suma parcial de la serie, aproximar a &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt;. Sin embargo, la base trigonométrica no se presta a la aproximación de funciones de variable real y valores complejos. Esta carencia nos lleva a la base trigonométrica compleja: considerando seno y coseno complejos, somos capaces de aproximar funciones de variable real y valores complejos o reales indistintamente. Esta base, con dominio &amp;lt;math&amp;gt; [-\pi,\pi] &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \quad \{e^{inx}\}_{n \in \mathbb{Z}} ,&lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
será nuestro foco de atención. La obtendremos formalmente a partir de la base trigonométrica original, para luego visualizarla y comprobar su capacidad para aproximar.&lt;br /&gt;
&lt;br /&gt;
=Base trigonométrica compleja=&lt;br /&gt;
&lt;br /&gt;
Para obtener la base compleja, partamos de la trigonométrica. Por la fórmula de Euler, podemos reescribir coseno y seno de la forma &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
 \cos\theta = \frac{1}{2} (e^{i\theta} + e^{-i\theta}) &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;\quad&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \sin\theta = \frac{1}{2i} (e^{i\theta} - e^{-i\theta})&lt;br /&gt;
&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Así,  en &amp;lt;math&amp;gt; [-\pi,\pi] &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; puede representarse formalmente como&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
f(x) \sim \frac{a_0}{2} + \sum_{n=1}^\infty\left[a_n\cos \left( nx \right) + b_n\sin \left( nx \right) \right] = \frac{a_0}{2} + \sum_{n=1}^\infty\left[\frac{a_n}{2}(e^{inx}+e^{-inx})  +  \frac{b_n}{2i}(e^{inx}-e^{-inx})  \right] = &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
=c_0 + \sum_{n=1}^\infty\left[c_n e^{inx}  +c_{-n} e^{-inx}  \right]=&amp;lt;/math&amp;gt;&amp;lt;math&amp;gt; \sum_{n=0}^\infty c_n e^{inx} + \sum_{n=-\infty}^{-1} c_n e^{inx} =\sum_{n=-\infty}^\infty c_n e^{inx}, &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; c_0:=\frac{a_0}{2}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; c_n:=\frac{a_n-ib_n}{2} &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; c_{-n}:=\frac{a_n+ib_n}{2} &amp;lt;/math&amp;gt;. Decimos que este desarrollo es formal por el penúltimo paso, notemos que estamos reordenando sumandos.&lt;br /&gt;
&lt;br /&gt;
De esta forma hemos obtenido la base trigonométrica compleja&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
 \{e_n := e^{ inx }\}_{n \in \mathbb{Z}} &lt;br /&gt;
&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Usando el producto escalar, comprobemos que es una base ortogonal &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(e_n,e_m)_{L^2} = \int_{-\pi}^{\pi} e_n  \overline{e_m}  \,dx = \int_{-\pi}^{\pi}  e^{inx} e^{-imx} \,dx = &lt;br /&gt;
\int_{-\pi}^{\pi} e^{(n-m)ix}  \,dx = \frac{-i}{n-m} e^{(n-m)ix} \Big|_{-\pi}^{\pi} = 0 \quad \text{si } n \neq m, \\ &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(e_n,e_n)_{L^2} = \int_{-\pi}^{\pi} e^{(n-n)ix}  \,dx = 2\pi.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aquí fijémonos en que hemos usado el producto escalar en &amp;lt;math&amp;gt;L^2(-\pi,\pi)&amp;lt;/math&amp;gt; dado por&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(f,g)_{L^2} = \int_{-\pi}^{\pi} f(x) \hspace{0.2cm}  \overline{g(x)}  \,dx &lt;br /&gt;
&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una observación relevante es que como la norma de cada elemento de la base es siempre &amp;lt;math&amp;gt; \sqrt{2\pi} &amp;lt;/math&amp;gt;, podemos ortonormalizar dividiendo precisamente por esta constante a cada elemento de la base trigonométrica compleja.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Base(DMR).gif|500px|thumb|right|(Pinchar) Términos de la base &amp;lt;math&amp;gt; \{e_n := e^{ inx }\}_{n} &amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;n \in \{-1,0,1,2\}&amp;lt;/math&amp;gt; en referencia tridimensional con eje real y plano complejo.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para la representación de la base trigonométrica compleja. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
%%% Planteamiento&lt;br /&gt;
x = linspace(-pi, pi, 10000);&lt;br /&gt;
n_values = [-1, 0, 1, 2];&lt;br /&gt;
    &lt;br /&gt;
%%% Visualizacion animada de la base&lt;br /&gt;
pelicula=VideoWriter('baseanimada.avi'); &lt;br /&gt;
pelicula.FrameRate=100; &lt;br /&gt;
open(pelicula); &lt;br /&gt;
&lt;br /&gt;
figura=figure(1);&lt;br /&gt;
hold on;&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('Re(f(x))');&lt;br /&gt;
zlabel('Im(f(x))');&lt;br /&gt;
sgtitle('Representación de \{e^{inx}\}', 'Interpreter', 'tex')&lt;br /&gt;
grid on;&lt;br /&gt;
legend;&lt;br /&gt;
view(3);&lt;br /&gt;
axis([-pi,pi,-1.5,1.5,-1.5,1.5]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
h = gobjects(1, length(n_values));&lt;br /&gt;
&lt;br /&gt;
for i = 1:length(n_values)&lt;br /&gt;
    z = exp(1i*n_values(i)*x);&lt;br /&gt;
    h(i) = plot3(NaN, NaN, NaN,'LineWidth', 1.75, 'DisplayName', ...&lt;br /&gt;
        sprintf('n = %d', n_values(i)));&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
for k = 1:70:length(x)&lt;br /&gt;
    for i = 1:length(n_values)&lt;br /&gt;
        z = exp(1i * n_values(i) * x);&lt;br /&gt;
        set(h(i), 'XData', x(1:k), 'YData', real(z(1:k)), ...&lt;br /&gt;
            'ZData', imag(z(1:k)));&lt;br /&gt;
        imagen=getframe(figura);&lt;br /&gt;
        writeVideo(pelicula,imagen); &lt;br /&gt;
    end&lt;br /&gt;
    drawnow;&lt;br /&gt;
    pause(10^(-10));&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
close(pelicula); &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Extensión impar=&lt;br /&gt;
&lt;br /&gt;
Nos podemos plantear cómo aproximar la siguiente función &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-allign:justify;width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Representación gráfica de &amp;lt;math&amp;gt; f^*(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figura6DMR.jpg|400px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:ImparfDMR_V2.jpg|400px]]&lt;br /&gt;
|-&lt;br /&gt;
| Representación de &amp;lt;math&amp;gt;f^*&amp;lt;/math&amp;gt; con eje &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; y el plano complejo en la parte superior, mientras que representamos abajo parte real (izquierda) e imaginaria (derecha).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
\begin{align}&lt;br /&gt;
f: [0,1] \subseteq \mathbb{R} &amp;amp;\longrightarrow \mathbb{C} \\    &lt;br /&gt;
x &amp;amp;\mapsto 4x(\frac{1}{2} − x)^2 + ix. &lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notemos que el intervalo de definición no es simétrico. Extendamos &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt; de forma impar&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
\begin{align}&lt;br /&gt;
f^*: [-1,1] \subseteq \mathbb{R} &amp;amp;\longrightarrow \mathbb{C}   \\&lt;br /&gt;
x &amp;amp;\mapsto \begin{cases} 4x(\frac{1}{2} + x)^2 + ix \text{ , si } x\in [-1,0],\\&lt;br /&gt;
   &lt;br /&gt;
4x(\frac{1}{2} - x)^2 + ix \text{ , si } x\in [0,1].&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tras representar esta función en las imágenes adjuntas, sólo nos falta adaptar la base al nuevo intervalo. Comprobemos que como verifica&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\{e^{\pi n ix }\}_{n \in \mathbb{Z}} : (E_n,E_m)_{L^2} = \int_{-1}^1 E_n\overline{E_m} \,dx = \int_{-1}^1 e^{\pi (n-m)i} \,dx = \begin{cases}&lt;br /&gt;
\int_{-1}^1 1 dx = 2 \text{ , si } n = m, \\&lt;br /&gt;
0 \text{ , si } n \neq m,&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
entonces es una base ortogonal, habiéndonos basado fuertemente en la periodicidad en el intervalo para el segundo caso. Además, podríamos ortonormalizar dividiendo por la norma común a todos los elementos, &amp;lt;math&amp;gt; \sqrt{2} &amp;lt;/math&amp;gt;, por lo que podemos definir la base ortonormal&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\{E_n\}_{n \in \mathbb{Z}} := \{\frac{\sqrt{2}e^{\pi n ix }}{2}\}_{n \in \mathbb{Z}}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para realizar las aproximaciones, necesitamos los coeficientes de cada elemento que consideremos, que pueden obtenerse por ortonormalidad de la base mediante el producto escalar ya que&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
f^*(x) \sim \sum_{n=-\infty}^{\infty} C_nE_n = \sum_{n=-\infty}^{\infty} C_ne^{\pi n i}, \quad&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \quad C_n = (f^*,E_n)_{L^2} = \int_{-1}^1 f^*(x) \overline{E}_n(x) \,dx \in \mathbb{C}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:500px; float:right; font-size:80%;&amp;quot;&lt;br /&gt;
|+ Aproximaciones mediante base trigonométrica compleja.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure2fDMR.jpg|320px]] || [[Archivo:Erroresf.jpg|320px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure3fDMR.jpg|320px]] || [[Archivo:TrapeciofDMR.jpg|320px]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |  Representación de aproximaciones con elementos hasta &amp;lt;math&amp;gt; n = 5,10,20 &amp;lt;/math&amp;gt; en tres dimensiones, parte real de las aproximaciones y parte imaginaria respectivamente en esquinas superior izquierda y ambas de abajo. Mejora visiblemente, aunque difieran los extremos, reflejado en los errores representados en la esquina superior derecha. &lt;br /&gt;
|}&lt;br /&gt;
Podemos estimar estos coeficientes &amp;lt;math&amp;gt; C_n &amp;lt;/math&amp;gt; numéricamente por fórmula del trapecio, y así aproximar la función para un número dado de &amp;lt;math&amp;gt; E_n &amp;lt;/math&amp;gt;. La aproximación con los elementos de la base de &amp;lt;math&amp;gt;-n&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; será entonces&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \quad&lt;br /&gt;
f(x) \approx \sum_{i=-n}^{n} C_iE_{i|[0,1]}. &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vemos que la aproximación mejora el error en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;, algo que esperábamos por continuidad de &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; y su extensión impar. Además, como &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; &lt;br /&gt;
f(1) \neq \frac{f^*(-1)+f^*(1)}{2}  = 0 &lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
por ser impar, las aproximaciones convergerán puntualmente a &amp;lt;math&amp;gt; 0 &amp;lt;/math&amp;gt; en el valor &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;. No hay convergencia uniforme porque es necesario que la convergencia puntual de las aproximaciones sucesivas fuese &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt; en todo punto de &amp;lt;math&amp;gt;[0,1]&amp;lt;/math&amp;gt;. De hecho, el mayor error se obtiene aquí como &amp;lt;math&amp;gt;|f(1)-f_n(1)|=|1+i|=\sqrt{2}. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos verificar que esta base también es útil con funciones reales aproximando &amp;lt;math&amp;gt;\text{Re}f &amp;lt;/math&amp;gt; con una extensión impar (representado gráficamente a continuación), precisamente &amp;lt;math&amp;gt;\text{Re}f^* &amp;lt;/math&amp;gt;. Por el mismo procedimiento, base y código, logramos de nuevo aproximaciones que convergen en norma del espacio de funciones pero no uniformemente, una vez más por el problema que causa &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;, donde de nuevo se halla el mayor error con &amp;lt;math&amp;gt;|f(1)-f_n(1)|=|1|=1. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Código=&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Aproximaciones mediante base trigonométrica compleja.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure2RefDMR.jpg|500px]] || [[Archivo:ErroresRef.jpg|500px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure3RefDMR.jpg|500px]] || [[Archivo:TrapecioRefDMR.jpg|500px]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Análogamente a &amp;lt;math&amp;gt; f^* &amp;lt;/math&amp;gt;, las aproximaciones revelan ser capaces de tomar valores reales a pesar de partir de elementos con parte imaginaria no trivial. La aproximación vuelve a ser por norma del espacio de funciones pero no uniforme por el valor en &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Figura6RefDMR.jpg|300px|thumb|right|Representando esta función real de variable real en las mismas referencias que con &amp;lt;math&amp;gt; f^* &amp;lt;/math&amp;gt;, puede comprobarse que es precisamente su proyección ortogonal en el plano horizontal, claramente con parte imaginaria nula por estar definida como parte real de una función de valores complejos.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%%% Código generado junto con Chat GPT para aproximación y representación de gráficas. &lt;br /&gt;
&lt;br /&gt;
clc&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
%%% Planteamiento&lt;br /&gt;
xx = 0:10^(-3):1;&lt;br /&gt;
xy = -1:10^(-3):0;&lt;br /&gt;
haux = @(x)(4*x.*(1/2 - x).^2 + 1i*x);&lt;br /&gt;
hauximp = @(x)-(4*x.*(1/2 - x).^2 + 1i*x);&lt;br /&gt;
yy=[hauximp(xx(end:-1:1)),haux(xx)];&lt;br /&gt;
&lt;br /&gt;
%%% Comprobacion de la extension impar&lt;br /&gt;
figure(1)&lt;br /&gt;
plot3([xy,xx], real(yy), imag(yy), 'r', 'LineWidth', 1.75)  &lt;br /&gt;
xline(0);&lt;br /&gt;
yline(0);&lt;br /&gt;
axis equal&lt;br /&gt;
xlim([-1, 1])&lt;br /&gt;
ylim([-1, 1])&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('Re(f(x))');&lt;br /&gt;
zlabel('Im(f(x))');&lt;br /&gt;
view(3)&lt;br /&gt;
grid on&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2)&lt;br /&gt;
subplot(1,2,1)&lt;br /&gt;
hold on&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('R');&lt;br /&gt;
plot(xx, real(haux(xx)), 'r', 'LineWidth', 1.5)&lt;br /&gt;
plot(xy, real(hauximp(xx(end:-1:1))), ...&lt;br /&gt;
    'r', 'LineWidth', 1.5)&lt;br /&gt;
title('\rm Extensión impar de la función f(x)', 'Interpreter', 'tex')&lt;br /&gt;
grid on&lt;br /&gt;
subplot(1,2,2)&lt;br /&gt;
hold on&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('iR');&lt;br /&gt;
plot(xx, imag(haux(xx)), 'r', 'LineWidth', 1.5)&lt;br /&gt;
plot(xy, imag(hauximp(xx(end:-1:1))), ...&lt;br /&gt;
    'r', 'LineWidth', 1.5)&lt;br /&gt;
title('\rm Extensión impar de la función f(x)', 'Interpreter', 'tex')&lt;br /&gt;
grid on&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
xx=[xy,xx];&lt;br /&gt;
N = [5,10,20];  &lt;br /&gt;
&lt;br /&gt;
%%% Inicializacion los vectores de errores&lt;br /&gt;
L2_errors = zeros(length(N), 1);&lt;br /&gt;
uniform_errors = zeros(length(N), 1);&lt;br /&gt;
&lt;br /&gt;
aux = 1;&lt;br /&gt;
for n = N %%% Aproximacion la funcion por la regla del trapecio&lt;br /&gt;
    a = zeros(1, n);  &lt;br /&gt;
    b = zeros(1, n);  &lt;br /&gt;
    fn = trapz(xx, yy/sqrt(2)) * ones(1, length(xx)); &lt;br /&gt;
    &lt;br /&gt;
    for k = 1:n&lt;br /&gt;
        a(k) = trapz(xx, yy .* ...&lt;br /&gt;
            conj(exp(1i*k*pi*xx)/sqrt(2)));&lt;br /&gt;
        b(k) = trapz(xx, yy .* ...&lt;br /&gt;
            conj(exp(1i*(-k)*pi*xx)/sqrt(2)));&lt;br /&gt;
        &lt;br /&gt;
        fn = fn + a(k) * exp(1i*k*pi*xx)/sqrt(2) + ...&lt;br /&gt;
            b(k) * exp(1i*(-k)*pi*xx)/sqrt(2);&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    %%% Visualizacion de los resultados&lt;br /&gt;
    figure(3)&lt;br /&gt;
    subplot(1, length(N), aux)&lt;br /&gt;
    plot3(xx, real(yy), imag(yy), 'r', 'LineWidth', 1.75)  &lt;br /&gt;
    hold on&lt;br /&gt;
    plot3(xx, real(fn), imag(fn), 'b', 'LineWidth', 1.75)  &lt;br /&gt;
    xline(0);&lt;br /&gt;
    yline(0);&lt;br /&gt;
    axis equal&lt;br /&gt;
    xlim([-1, 1])&lt;br /&gt;
    ylim([-1, 1])&lt;br /&gt;
    legend({'$f(x)$', '$f_n(x)$'}, ...&lt;br /&gt;
        'Interpreter', 'latex', 'Location', 'northwest')&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('Re(f(x))');&lt;br /&gt;
    zlabel('Im(f(x))');&lt;br /&gt;
    title(['n = ', num2str(n)], 'Interpreter', 'latex')&lt;br /&gt;
    view(3)&lt;br /&gt;
    grid on&lt;br /&gt;
    hold off&lt;br /&gt;
&lt;br /&gt;
    %%% Parte real&lt;br /&gt;
    figure(4)&lt;br /&gt;
    subplot(1, length(N), aux)&lt;br /&gt;
    plot3(xx, real(yy), imag(yy), 'r', 'LineWidth', 1.75)  &lt;br /&gt;
    hold on&lt;br /&gt;
    plot3(xx, real(fn), imag(fn), 'b', 'LineWidth', 1.75)  &lt;br /&gt;
    xline(0);&lt;br /&gt;
    yline(0);&lt;br /&gt;
    axis equal&lt;br /&gt;
    xlim([-1, 1])&lt;br /&gt;
    ylim([-1, 1])&lt;br /&gt;
    legend({'$f(x)$', '$f_n(x)$'}, ...&lt;br /&gt;
        'Interpreter', 'latex', 'Location', 'northwest')&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('Re(f(x))');&lt;br /&gt;
    zlabel('Im(f(x))');&lt;br /&gt;
    title(['n = ', num2str(n)], 'Interpreter', 'latex')&lt;br /&gt;
    view(2)&lt;br /&gt;
    grid on&lt;br /&gt;
    hold off&lt;br /&gt;
&lt;br /&gt;
    %%% Parte imaginaria&lt;br /&gt;
    figure(5)&lt;br /&gt;
    subplot(1, length(N), aux)&lt;br /&gt;
    plot3(xx, imag(yy), real(yy), 'r', 'LineWidth', 1.75)  &lt;br /&gt;
    hold on&lt;br /&gt;
    plot3(xx, imag(fn), real(fn), 'b', 'LineWidth', 1.75)  &lt;br /&gt;
    xline(0);&lt;br /&gt;
    yline(0);&lt;br /&gt;
    axis equal&lt;br /&gt;
    xlim([-1, 1])&lt;br /&gt;
    ylim([-1, 1])&lt;br /&gt;
    legend({'$f(x)$', '$f_n(x)$'}, ...&lt;br /&gt;
        'Interpreter', 'latex', 'Location', 'northwest')&lt;br /&gt;
    xlabel('x');&lt;br /&gt;
    ylabel('Im(f(x))');&lt;br /&gt;
    zlabel('Re(f(x))');&lt;br /&gt;
    title(['n = ', num2str(n)], 'Interpreter', 'latex')&lt;br /&gt;
    view(2)&lt;br /&gt;
    grid on&lt;br /&gt;
    hold off&lt;br /&gt;
    &lt;br /&gt;
    %%% Guardamos los errores&lt;br /&gt;
    L2_errors(aux) = sqrt(trapz(xx, abs(yy - fn).^2));&lt;br /&gt;
    uniform_errors(aux) = max(abs(yy - fn)); &lt;br /&gt;
    aux = aux + 1;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
sgtitle('Aproximación de la función por la regla del trapecio', ...&lt;br /&gt;
    'Interpreter', 'latex');&lt;br /&gt;
&lt;br /&gt;
%%% Visualizacion de los errores&lt;br /&gt;
figure(6);&lt;br /&gt;
hold on;&lt;br /&gt;
plot(N, L2_errors, 'b-', 'LineWidth', 2); &lt;br /&gt;
plot(N, uniform_errors, 'r--', 'LineWidth', 2);  &lt;br /&gt;
grid on&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('Error');&lt;br /&gt;
legend('Error L2', 'Error uniforme');&lt;br /&gt;
sgtitle('Errores en normas L2 y uniforme en función de n', ...&lt;br /&gt;
    'Interpreter', 'latex');&lt;br /&gt;
hold off;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_DMR)&amp;diff=83809</id>
		<title>Series de Fourier (Grupo DMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_DMR)&amp;diff=83809"/>
				<updated>2025-02-12T18:45:15Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Series de Fourier (Grupo DMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | Daniel Rodríguez Calderón, Marcos Cabellos Hernández, Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
En un espacio de Hilbert &amp;lt;math&amp;gt;L_2(a,b)&amp;lt;/math&amp;gt;, una serie de Fourier converge en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt; a una función real de variable real, &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;, que se puede representar mediante la base trigonométrica de Fourier como&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \quad&lt;br /&gt;
f(x) \sim \frac{a_0}{2} + \sum_{n=1}^\infty\left[a_n\cos \left( nx \right) + b_n\sin \left( nx \right) \right]&lt;br /&gt;
&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esta representación nos permite, tomando una suma parcial de la serie, aproximar a &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt;. Sin embargo, la base trigonométrica no se presta a la aproximación de funciones de variable real y valores complejos. Esta carencia nos lleva a la base trigonométrica compleja: considerando seno y coseno complejos, somos capaces de aproximar funciones de variable real y valores complejos o reales indistintamente. Esta base, con dominio &amp;lt;math&amp;gt; [-\pi,\pi] &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \quad \{e^{inx}\}_{n \in \mathbb{Z}} ,&lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
será nuestro foco de atención. La obtendremos formalmente a partir de la base trigonométrica original, para luego visualizarla y comprobar su capacidad para aproximar.&lt;br /&gt;
&lt;br /&gt;
=Base trigonométrica compleja=&lt;br /&gt;
&lt;br /&gt;
Para obtener la base compleja, partamos de la trigonométrica. Por la fórmula de Euler, podemos reescribir coseno y seno de la forma &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
 \cos\theta = \frac{1}{2} (e^{i\theta} + e^{-i\theta}) &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;\quad&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \sin\theta = \frac{1}{2i} (e^{i\theta} - e^{-i\theta})&lt;br /&gt;
&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Así,  en &amp;lt;math&amp;gt; [-\pi,\pi] &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; puede representarse formalmente como&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-allign:justify;width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Representación gráfica de la base trigonométrica compleja.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Base(DMR).gif|500px]]&lt;br /&gt;
|-&lt;br /&gt;
| (Pinchar) Términos de la base &amp;lt;math&amp;gt; \{e_n := e^{ inx }\}_{n} &amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;n \in \{-1,0,1,2\}&amp;lt;/math&amp;gt; en referencia tridimensional con eje real y plano complejo.&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
f(x) \sim \frac{a_0}{2} + \sum_{n=1}^\infty\left[a_n\cos \left( nx \right) + b_n\sin \left( nx \right) \right] = \frac{a_0}{2} + \sum_{n=1}^\infty\left[\frac{a_n}{2}(e^{inx}+e^{-inx})  +  \frac{b_n}{2i}(e^{inx}-e^{-inx})  \right] = &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
=c_0 + \sum_{n=1}^\infty\left[c_n e^{inx}  +c_{-n} e^{-inx}  \right]=&amp;lt;/math&amp;gt;&amp;lt;math&amp;gt; \sum_{n=0}^\infty c_n e^{inx} + \sum_{n=-\infty}^{-1} c_n e^{inx} =\sum_{n=-\infty}^\infty c_n e^{inx}, &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; c_0:=\frac{a_0}{2}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; c_n:=\frac{a_n-ib_n}{2} &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; c_{-n}:=\frac{a_n+ib_n}{2} &amp;lt;/math&amp;gt;. Decimos que este desarrollo es formal por el penúltimo paso:&lt;br /&gt;
&lt;br /&gt;
Notemos que estamos reordenando sumandos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De esta forma hemos obtenido la base trigonométrica compleja&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
 \{e_n := e^{ inx }\}_{n \in \mathbb{Z}} &lt;br /&gt;
&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Usando el producto escalar, comprobemos que es una base ortogonal &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(e_n,e_m)_{L^2} = \int_{-\pi}^{\pi} e_n  \overline{e_m}  \,dx = \int_{-\pi}^{\pi}  e^{inx} e^{-imx} \,dx = &lt;br /&gt;
\int_{-\pi}^{\pi} e^{(n-m)ix}  \,dx = \frac{-i}{n-m} e^{(n-m)ix} \Big|_{-\pi}^{\pi} = 0 \quad \text{si } n \neq m, \\ &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(e_n,e_n)_{L^2} = \int_{-\pi}^{\pi} e^{(n-n)ix}  \,dx = 2\pi.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aquí fijémonos en que hemos usado el producto escalar en &amp;lt;math&amp;gt;L^2(-\pi,\pi)&amp;lt;/math&amp;gt; dado por&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(f,g)_{L^2} = \int_{-\pi}^{\pi} f(x) \hspace{0.2cm}  \overline{g(x)}  \,dx &lt;br /&gt;
&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una observación relevante es que como la norma de cada elemento de la base es siempre &amp;lt;math&amp;gt; \sqrt{2\pi} &amp;lt;/math&amp;gt;, podemos ortonormalizar dividiendo precisamente por esta constante a cada elemento de la base trigonométrica compleja.&lt;br /&gt;
&lt;br /&gt;
=Extensión impar=&lt;br /&gt;
&lt;br /&gt;
Nos podemos plantear cómo aproximar la siguiente función &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-allign:justify;width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Representación gráfica de &amp;lt;math&amp;gt; f^*(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figura6DMR.jpg|400px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:ImparfDMR_V2.jpg|400px]]&lt;br /&gt;
|-&lt;br /&gt;
| Representación de &amp;lt;math&amp;gt;f^*&amp;lt;/math&amp;gt; con eje &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; y el plano complejo en la parte superior, mientras que representamos abajo parte real (izquierda) e imaginaria (derecha).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
\begin{align}&lt;br /&gt;
f: [0,1] \subseteq \mathbb{R} &amp;amp;\longrightarrow \mathbb{C} \\    &lt;br /&gt;
x &amp;amp;\mapsto 4x(\frac{1}{2} − x)^2 + ix &lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notemos que el intervalo de definición no es simétrico. Extendamos &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt; de forma impar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
\begin{align}&lt;br /&gt;
f^*: [-1,1] \subseteq \mathbb{R} &amp;amp;\longrightarrow \mathbb{C}   \\&lt;br /&gt;
x &amp;amp;\mapsto \begin{cases} 4x(\frac{1}{2} + x)^2 + ix \text{ , si } x\in [-1,0]\\&lt;br /&gt;
   &lt;br /&gt;
4x(\frac{1}{2} - x)^2 + ix \text{ , si } x\in [0,1]&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tras representar esta función en las imágenes adjuntas, sólo nos falta adaptar la base al nuevo intervalo. Comprobemos que como verifica&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\{e^{\pi n ix }\}_{n \in \mathbb{Z}} : (E_n,E_m)_{L^2} = \int_{-1}^1 E_n\overline{E_m} \,dx = \int_{-1}^1 e^{\pi (n-m)i} \,dx = \begin{cases}&lt;br /&gt;
\int_{-1}^1 1 dx = 2 \text{ , si } n = m, \\&lt;br /&gt;
0 \text{ , si } n \neq m,&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
entonces es una base ortogonal, habiéndonos basado fuertemente en la periodicidad en el intervalo para el segundo caso. Además, podríamos ortonormalizar dividiendo por la norma común a todos los elementos, &amp;lt;math&amp;gt; \sqrt{2} &amp;lt;/math&amp;gt;, por lo que podemos definir la base ortonormal&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\{E_n\}_{n \in \mathbb{Z}} := \{\frac{\sqrt{2}e^{\pi n ix }}{2}\}_{n \in \mathbb{Z}}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para realizar las aproximaciones, necesitamos los coeficientes de cada elemento que consideremos, que pueden obtenerse por ortonormalidad de la base mediante el producto escalar ya que&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
f^*(x) \sim \sum_{n=-\infty}^{\infty} C_nE_n = \sum_{n=-\infty}^{\infty} C_ne^{\pi n i} \quad ,&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \quad C_n = (f^*,E_n)_{L^2} = \int_{-1}^1 f^*(x) \overline{E}_n(x) \,dx \in \mathbb{C}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Aproximaciones mediante base trigonométrica compleja.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure2fDMR.jpg|320px]] || [[Archivo:Erroresf.jpg|320px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure3fDMR.jpg|320px]] || [[Archivo:TrapeciofDMR.jpg|320px]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |  Representación de aproximaciones con elementos hasta &amp;lt;math&amp;gt; n = 5,10,20 &amp;lt;/math&amp;gt; en tres dimensiones, parte real de las aproximaciones y parte imaginaria respectivamente en esquinas superior izquierda y ambas de abajo. Mejora visiblemente, aunque difieran los extremos, reflejado en los errores representados en la esquina superior derecha. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Podemos estimar estos coeficientes &amp;lt;math&amp;gt; C_n &amp;lt;/math&amp;gt; numéricamente por fórmula del trapecio, y así aproximar la función para un número dado de &amp;lt;math&amp;gt; E_n &amp;lt;/math&amp;gt;. La aproximación con los elementos de la base de &amp;lt;math&amp;gt;-n&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; será entonces&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \quad&lt;br /&gt;
f(x) \approx \sum_{i=-n}^{n} C_iE_{i|[0,1]} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vemos que la aproximación mejora el error en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;, algo que esperábamos por continuidad de &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; y su extensión impar. Además, como &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; &lt;br /&gt;
f(1) \neq \frac{f^*(-1)+f^*(1)}{2}  = 0 &lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
por ser impar, las aproximaciones convergerán puntualmente a &amp;lt;math&amp;gt; 0 &amp;lt;/math&amp;gt; en el valor &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;. No hay convergencia uniforme porque es necesario que la convergencia puntual de las aproximaciones sucesivas fuese &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt; en todo punto de &amp;lt;math&amp;gt;[0,1]&amp;lt;/math&amp;gt;. De hecho, el mayor error se obtiene aquí como &amp;lt;math&amp;gt;|f(1)-f_n(1)|=|1+i|=\sqrt{2}. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos verificar que esta base también es útil con funciones reales aproximando &amp;lt;math&amp;gt;\text{Re}f &amp;lt;/math&amp;gt; con una extensión impar (representado gráficamente a continuación), precisamente &amp;lt;math&amp;gt;\text{Re}f^* &amp;lt;/math&amp;gt;. Por el mismo procedimiento, base y código, logramos de nuevo aproximaciones que convergen en norma del espacio de funciones pero no uniformemente, una vez más por el problema que causa &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;, donde de nuevo se halla el mayor error con &amp;lt;math&amp;gt;|f(1)-f_n(1)|=|1|=1. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:250px; float:left; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Representación gráfica de &amp;lt;math&amp;gt;Ref^*(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figura6RefDMR.jpg|400px]]&lt;br /&gt;
|-&lt;br /&gt;
| Representando esta función real de variable real en las mismas referencias que con &amp;lt;math&amp;gt; f^* &amp;lt;/math&amp;gt;, puede comprobarse que es precisamente su proyección ortogonal en el plano horizontal, claramente con parte imaginaria nula por estar definida como parte real de una función de valores complejos.&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Aproximaciones mediante base trigonométrica compleja.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure2RefDMR.jpg|500px]] || [[Archivo:ErroresRef.jpg|500px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure3RefDMR.jpg|500px]] || [[Archivo:TrapecioRefDMR.jpg|500px]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Análogamente a &amp;lt;math&amp;gt; f^* &amp;lt;/math&amp;gt;, las aproximaciones revelan ser capaces de tomar valores reales a pesar de partir de elementos con parte imaginaria no trivial. La aproximación vuelve a ser por norma del espacio de funciones pero no uniforme por el valor en &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Código=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_DMR)&amp;diff=83808</id>
		<title>Series de Fourier (Grupo DMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_DMR)&amp;diff=83808"/>
				<updated>2025-02-12T18:44:56Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: /* Base trigonométrica compleja */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Series de Fourier (Grupo DMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | Daniel Rodríguez Calderón, Marcos Cabellos Hernández, Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
En un espacio de Hilbert &amp;lt;math&amp;gt;L_2(a,b)&amp;lt;/math&amp;gt;, una serie de Fourier converge en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt; a una función real de variable real, &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;, que se puede representar mediante la base trigonométrica de Fourier como&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \quad&lt;br /&gt;
f(x) \sim \frac{a_0}{2} + \sum_{n=1}^\infty\left[a_n\cos \left( nx \right) + b_n\sin \left( nx \right) \right]&lt;br /&gt;
&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esta representación nos permite, tomando una suma parcial de la serie, aproximar a &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt;. Sin embargo, la base trigonométrica no se presta a la aproximación de funciones de variable real y valores complejos. Esta carencia nos lleva a la base trigonométrica compleja: considerando seno y coseno complejos, somos capaces de aproximar funciones de variable real y valores complejos o reales indistintamente. Esta base, con dominio &amp;lt;math&amp;gt; [-\pi,\pi] &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \quad \{e^{inx}\}_{n \in \mathbb{Z}} ,&lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
será nuestro foco de atención. La obtendremos formalmente a partir de la base trigonométrica original, para luego visualizarla y comprobar su capacidad para aproximar.&lt;br /&gt;
&lt;br /&gt;
=Base trigonométrica compleja=&lt;br /&gt;
&lt;br /&gt;
Para obtener la base compleja, partamos de la trigonométrica. Por la fórmula de Euler, podemos reescribir coseno y seno de la forma &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
 \cos\theta = \frac{1}{2} (e^{i\theta} + e^{-i\theta}) &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;\quad&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \sin\theta = \frac{1}{2i} (e^{i\theta} - e^{-i\theta})&lt;br /&gt;
&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Así,  en &amp;lt;math&amp;gt; [-\pi,\pi] &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; puede representarse formalmente como&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-allign:justify;width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Representación gráfica de la base trigonométrica compleja.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Base(DMR).gif|500px]]&lt;br /&gt;
|-&lt;br /&gt;
| (Pinchar) Términos de la base &amp;lt;math&amp;gt; \{e_n := e^{ inx }\}_{n} &amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;n \in \{-1,0,1,2\}&amp;lt;/math&amp;gt; en referencia tridimensional con eje real y plano complejo.&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
f(x) \sim \frac{a_0}{2} + \sum_{n=1}^\infty\left[a_n\cos \left( nx \right) + b_n\sin \left( nx \right) \right] = \frac{a_0}{2} + \sum_{n=1}^\infty\left[\frac{a_n}{2}(e^{inx}+e^{-inx})  +  \frac{b_n}{2i}(e^{inx}-e^{-inx})  \right] = &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
=c_0 + \sum_{n=1}^\infty\left[c_n e^{inx}  +c_{-n} e^{-inx}  \right]=&amp;lt;/math&amp;gt;&amp;lt;math&amp;gt; \sum_{n=0}^\infty c_n e^{inx} + \sum_{n=-\infty}^{-1} c_n e^{inx} =\sum_{n=-\infty}^\infty c_n e^{inx}, &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; c_0:=\frac{a_0}{2}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; c_n:=\frac{a_n-ib_n}{2} &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; c_{-n}:=\frac{a_n+ib_n}{2} &amp;lt;/math&amp;gt;. Decimos que este desarrollo es formal por el penúltimo paso:&lt;br /&gt;
&lt;br /&gt;
Notemos que estamos reordenando sumandos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De esta forma hemos obtenido la base trigonométrica compleja&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
 \{e_n := e^{ inx }\}_{n \in \mathbb{Z}} &lt;br /&gt;
&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Usando el producto escalar, comprobemos que es una base ortogonal &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(e_n,e_m)_{L^2} = \int_{-\pi}^{\pi} e_n  \overline{e_m}  \,dx = \int_{-\pi}^{\pi}  e^{inx} e^{-imx} \,dx = &lt;br /&gt;
\int_{-\pi}^{\pi} e^{(n-m)ix}  \,dx = \frac{-i}{n-m} e^{(n-m)ix} \Big|_{-\pi}^{\pi} = 0 \quad \text{si } n \neq m, \\ &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(e_n,e_n)_{L^2} = \int_{-\pi}^{\pi} e^{(n-n)ix}  \,dx = 2\pi.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aquí fijémonos en que hemos usado el producto escalar en &amp;lt;math&amp;gt;L^2(-\pi,\pi)&amp;lt;/math&amp;gt; dado por&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(f,g)_{L^2} = \int_{-\pi}^{\pi} f(x) \hspace{0.2cm}  \overline{g(x)}  \,dx &lt;br /&gt;
&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una observación relevante es que como la norma de cada elemento de la base es siempre &amp;lt;math&amp;gt; \sqrt{2\pi} &amp;lt;/math&amp;gt;, podemos ortonormalizar dividiendo precisamente por esta constante a cada elemento de la base trigonométrica compleja.&lt;br /&gt;
&lt;br /&gt;
=Extensión impar=&lt;br /&gt;
&lt;br /&gt;
Nos podemos plantear cómo aproximar la siguiente función &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-allign:justify;width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Representación gráfica de &amp;lt;math&amp;gt; f^*(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figura6DMR.jpg|400px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:ImparfDMR_V2.jpg|400px]]&lt;br /&gt;
|-&lt;br /&gt;
| Representación de &amp;lt;math&amp;gt;f^*&amp;lt;/math&amp;gt; con eje &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; y el plano complejo en la parte superior, mientras que representamos abajo parte real (izquierda) e imaginaria (derecha).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
\begin{align}&lt;br /&gt;
f: [0,1] \subseteq \mathbb{R} &amp;amp;\longrightarrow \mathbb{C} \\    &lt;br /&gt;
x &amp;amp;\mapsto 4x(\frac{1}{2} − x)^2 + ix &lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notemos que el intervalo de definición no es simétrico. Extendamos &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt; de forma impar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
\begin{align}&lt;br /&gt;
f^*: [-1,1] \subseteq \mathbb{R} &amp;amp;\longrightarrow \mathbb{C}   \\&lt;br /&gt;
x &amp;amp;\mapsto \begin{cases} 4x(\frac{1}{2} + x)^2 + ix \text{ , si } x\in [-1,0]\\&lt;br /&gt;
   &lt;br /&gt;
4x(\frac{1}{2} - x)^2 + ix \text{ , si } x\in [0,1]&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tras representar esta función en las imágenes adjuntas, sólo nos falta adaptar la base al nuevo intervalo. Comprobemos que como verifica&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\{e^{\pi n ix }\}_{n \in \mathbb{Z}} : (E_n,E_m)_{L^2} = \int_{-1}^1 E_n\overline{E_m} \,dx = \int_{-1}^1 e^{\pi (n-m)i} \,dx = \begin{cases}&lt;br /&gt;
\int_{-1}^1 1 dx = 2 \text{ , si } n = m, \\&lt;br /&gt;
0 \text{ , si } n \neq m,&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
entonces es una base ortogonal, habiéndonos basado fuertemente en la periodicidad en el intervalo para el segundo caso. Además, podríamos ortonormalizar dividiendo por la norma común a todos los elementos, &amp;lt;math&amp;gt; \sqrt{2} &amp;lt;/math&amp;gt;, por lo que podemos definir la base ortonormal&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\{E_n\}_{n \in \mathbb{Z}} := \{\frac{\sqrt{2}e^{\pi n ix }}{2}\}_{n \in \mathbb{Z}}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para realizar las aproximaciones, necesitamos los coeficientes de cada elemento que consideremos, que pueden obtenerse por ortonormalidad de la base mediante el producto escalar ya que&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
f^*(x) \sim \sum_{n=-\infty}^{\infty} C_nE_n = \sum_{n=-\infty}^{\infty} C_ne^{\pi n i} \quad ,&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \quad C_n = (f^*,E_n)_{L^2} = \int_{-1}^1 f^*(x) \overline{E}_n(x) \,dx \in \mathbb{C}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Aproximaciones mediante base trigonométrica compleja.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure2fDMR.jpg|320px]] || [[Archivo:Erroresf.jpg|320px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure3fDMR.jpg|320px]] || [[Archivo:TrapeciofDMR.jpg|320px]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |  Representación de aproximaciones con elementos hasta &amp;lt;math&amp;gt; n = 5,10,20 &amp;lt;/math&amp;gt; en tres dimensiones, parte real de las aproximaciones y parte imaginaria respectivamente en esquinas superior izquierda y ambas de abajo. Mejora visiblemente, aunque difieran los extremos, reflejado en los errores representados en la esquina superior derecha. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Podemos estimar estos coeficientes &amp;lt;math&amp;gt; C_n &amp;lt;/math&amp;gt; numéricamente por fórmula del trapecio, y así aproximar la función para un número dado de &amp;lt;math&amp;gt; E_n &amp;lt;/math&amp;gt;. La aproximación con los elementos de la base de &amp;lt;math&amp;gt;-n&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; será entonces&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \quad&lt;br /&gt;
f(x) \approx \sum_{i=-n}^{n} C_iE_{i|[0,1]} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vemos que la aproximación mejora el error en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;, algo que esperábamos por continuidad de &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; y su extensión impar. Además, como &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; &lt;br /&gt;
f(1) \neq \frac{f^*(-1)+f^*(1)}{2}  = 0 &lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
por ser impar, las aproximaciones convergerán puntualmente a &amp;lt;math&amp;gt; 0 &amp;lt;/math&amp;gt; en el valor &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;. No hay convergencia uniforme porque es necesario que la convergencia puntual de las aproximaciones sucesivas fuese &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt; en todo punto de &amp;lt;math&amp;gt;[0,1]&amp;lt;/math&amp;gt;. De hecho, el mayor error se obtiene aquí como &amp;lt;math&amp;gt;|f(1)-f_n(1)|=|1+i|=\sqrt{2}. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos verificar que esta base también es útil con funciones reales aproximando &amp;lt;math&amp;gt;\text{Re}f &amp;lt;/math&amp;gt; con una extensión impar (representado gráficamente a continuación), precisamente &amp;lt;math&amp;gt;\text{Re}f^* &amp;lt;/math&amp;gt;. Por el mismo procedimiento, base y código, logramos de nuevo aproximaciones que convergen en norma del espacio de funciones pero no uniformemente, una vez más por el problema que causa &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;, donde de nuevo se halla el mayor error con &amp;lt;math&amp;gt;|f(1)-f_n(1)|=|1|=1. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:250px; float:left; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Representación gráfica de &amp;lt;math&amp;gt;Ref^*(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figura6RefDMR.jpg|400px]]&lt;br /&gt;
|-&lt;br /&gt;
| Representando esta función real de variable real en las mismas referencias que con &amp;lt;math&amp;gt; f^* &amp;lt;/math&amp;gt;, puede comprobarse que es precisamente su proyección ortogonal en el plano horizontal, claramente con parte imaginaria nula por estar definida como parte real de una función de valores complejos.&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Aproximaciones mediante base trigonométrica compleja.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure2RefDMR.jpg|500px]] || [[Archivo:ErroresRef.jpg|500px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure3RefDMR.jpg|500px]] || [[Archivo:TrapecioRefDMR.jpg|500px]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Análogamente a &amp;lt;math&amp;gt; f^* &amp;lt;/math&amp;gt;, las aproximaciones revelan ser capaces de tomar valores reales a pesar de partir de elementos con parte imaginaria no trivial. La aproximación vuelve a ser por norma del espacio de funciones pero no uniforme por el valor en &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_DMR)&amp;diff=83705</id>
		<title>Series de Fourier (Grupo DMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_DMR)&amp;diff=83705"/>
				<updated>2025-02-11T22:13:58Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: /* Extensión impar */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Series de Fourier (Grupo DMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | Daniel Rodríguez Calderón, Marcos Cabellos Hernández, Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
En un espacio de Hilbert &amp;lt;math&amp;gt;L_2(a,b)&amp;lt;/math&amp;gt;, una serie de Fourier converge en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt; a una función real de variable real, &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;, que se puede representar mediante la base trigonométrica de Fourier como&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \quad&lt;br /&gt;
f(x) \sim \frac{a_0}{2} + \sum_{n=1}^\infty\left[a_n\cos \left( nx \right) + b_n\sin \left( nx \right) \right]&lt;br /&gt;
&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esta representación nos permite, tomando una suma parcial de la serie, aproximar a &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt;. Sin embargo, la base trigonométrica no se presta a la aproximación de funciones de variable real y valores complejos. Esta carencia nos lleva a la base trigonométrica compleja: considerando seno y coseno complejos, somos capaces de aproximar funciones de variable real y valores complejos o reales indistintamente. Esta base, con dominio &amp;lt;math&amp;gt; [-\pi,\pi] &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \quad \{e^{inx}\}_{n \in \mathbb{Z}} ,&lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
será nuestro foco de atención. La obtendremos formalmente a partir de la base trigonométrica original, para luego visualizarla y comprobar su capacidad para aproximar.&lt;br /&gt;
&lt;br /&gt;
=Base trigonométrica compleja=&lt;br /&gt;
&lt;br /&gt;
Para obtener la base compleja, partamos de la trigonométrica. Por la fórmula de Euler, podemos reescribir coseno y seno de la forma &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
 \cos\theta = \frac{1}{2} (e^{i\theta} + e^{-i\theta}) &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;\quad&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \sin\theta = \frac{1}{2i} (e^{i\theta} - e^{-i\theta})&lt;br /&gt;
&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Así,  en &amp;lt;math&amp;gt; [-\pi,\pi] &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; puede representarse formalmente como&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Base(DMR).gif|150px|thumb|right| (Pinchar) Términos de la base &amp;lt;math&amp;gt; \{e_n := e^{ inx }\}_{n} &amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;n \in \{-1,0,1,2\}&amp;lt;/math&amp;gt; en referencia tridimensional con eje real y plano complejo.]]&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
f(x) \sim \frac{a_0}{2} + \sum_{n=1}^\infty\left[a_n\cos \left( nx \right) + b_n\sin \left( nx \right) \right] = \frac{a_0}{2} + \sum_{n=1}^\infty\left[\frac{a_n}{2}(e^{inx}+e^{-inx})  +  \frac{b_n}{2i}(e^{inx}-e^{-inx})  \right] = &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
=c_0 + \sum_{n=1}^\infty\left[c_n e^{inx}  +c_{-n} e^{-inx}  \right]=&amp;lt;/math&amp;gt;&amp;lt;math&amp;gt; \sum_{n=0}^\infty c_n e^{inx} + \sum_{n=-\infty}^{-1} c_n e^{inx} =\sum_{n=-\infty}^\infty c_n e^{inx}, &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; c_0:=\frac{a_0}{2}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; c_n:=\frac{a_n-ib_n}{2} &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; c_{-n}:=\frac{a_n+ib_n}{2} &amp;lt;/math&amp;gt;. Decimos que este desarrollo es formal por el penúltimo paso. Notemos que estamos separando la serie en dos series. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De esta forma hemos obtenido la base trigonométrica compleja&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
 \{e_n := e^{ inx }\}_{n \in \mathbb{Z}} &lt;br /&gt;
&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Usando el producto escalar, comprobemos que es una base ortogonal &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(e_n,e_m)_{L^2} = \int_{-\pi}^{\pi} e_n  \overline{e_m}  \,dx = \int_{-\pi}^{\pi}  e^{inx} e^{-imx} \,dx = &lt;br /&gt;
\int_{-\pi}^{\pi} e^{(n-m)ix}  \,dx = \frac{-i}{n-m} e^{(n-m)ix} \Big|_{-\pi}^{\pi} = 0 \quad \text{si } n \neq m, \\ &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(e_n,e_n)_{L^2} = \int_{-\pi}^{\pi} e^{(n-n)ix}  \,dx = 2\pi.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aquí fijémonos en que hemos usado el producto escalar en &amp;lt;math&amp;gt;L^2(-\pi,\pi)&amp;lt;/math&amp;gt; dado por&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(f,g)_{L^2} = \int_{-\pi}^{\pi} f(x) \hspace{0.2cm}  \overline{g(x)}  \,dx &lt;br /&gt;
&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una observación relevante es que como la norma de cada elemento de la base es siempre &amp;lt;math&amp;gt; \sqrt{2\pi} &amp;lt;/math&amp;gt;, podemos ortonormalizar dividiendo precisamente por esta constante a cada elemento de la base trigonométrica compleja.&lt;br /&gt;
&lt;br /&gt;
=Extensión impar=&lt;br /&gt;
&lt;br /&gt;
Nos podemos plantear cómo aproximar la siguiente función &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-allign:justify;width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Representación gráfica de &amp;lt;math&amp;gt; f^*(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figura6DMR.jpg|200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:ImparfDMR_V2.jpg|200px]]&lt;br /&gt;
|-&lt;br /&gt;
| Representación de &amp;lt;math&amp;gt;f^*&amp;lt;/math&amp;gt; con eje &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; y el plano complejo en la parte superior, mientras que representamos abajo parte real (izquierda) e imaginaria (derecha).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
\begin{align}&lt;br /&gt;
f: [0,1] \subseteq \mathbb{R} &amp;amp;\longrightarrow \mathbb{C} \\    &lt;br /&gt;
x &amp;amp;\mapsto 4x(\frac{1}{2} − x)^2 + ix &lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notemos que el intervalo de definición no es simétrico. Extendamos &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt; de forma impar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
\begin{align}&lt;br /&gt;
f^*: [-1,1] \subseteq \mathbb{R} &amp;amp;\longrightarrow \mathbb{C}   \\&lt;br /&gt;
x &amp;amp;\mapsto \begin{cases} 4x(\frac{1}{2} + x)^2 + ix \text{ , si } x\in [-1,0]\\&lt;br /&gt;
   &lt;br /&gt;
4x(\frac{1}{2} - x)^2 + ix \text{ , si } x\in [0,1]&lt;br /&gt;
\end{cases}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tras representar esta función en las imágenes adjuntas, sólo nos falta adaptar la base al nuevo intervalo. Comprobemos que como verifica&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\{e^{\pi n ix }\}_{n \in \mathbb{Z}} : (E_n,E_m)_{L^2} = \int_{-1}^1 E_n\overline{E_m} \,dx = \int_{-1}^1 e^{\pi (n-m)i} \,dx = \begin{cases}&lt;br /&gt;
\int_{-1}^1 1 dx = 2 \text{ , si } n = m, \\&lt;br /&gt;
0 \text{ , si } n \neq m,&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
entonces es una base ortogonal, habiéndonos basado fuertemente en la periodicidad en el intervalo para el segundo caso. Además, podríamos ortonormalizar dividiendo por la norma común a todos los elementos, &amp;lt;math&amp;gt; \sqrt{2} &amp;lt;/math&amp;gt;, por lo que podemos definir la base ortonormal&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\{E_n\}_{n \in \mathbb{Z}} := \{\frac{\sqrt{2}e^{\pi n ix }}{2}\}_{n \in \mathbb{Z}}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Aproximaciones mediante base trigonométrica compleja.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure2fDMR.jpg|200px]] || [[Archivo:Erroresf.jpg|200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure3fDMR.jpg|200px]] || [[Archivo:TrapeciofDMR.jpg|200px]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Representación de aproximaciones con elementos hasta &amp;lt;math&amp;gt; n = 5,10,20 &amp;lt;/math&amp;gt; en referencia tridimensional, parte real de las aproximaciones y parte imaginaria respectivamente en esquinas superior izquierda y ambas de abajo. Mejora visiblemente, aunque difieran los extremos, lo que se ve reflejado en los errores representados en la esquina superior derecha.  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Para realizar las aproximaciones, necesitamos los coeficientes de cada elemento que consideremos, que pueden obtenerse por ortonormalidad de la base mediante el producto escalar ya que&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
f^*(x) \sim \sum_{n=-\infty}^{\infty} C_nE_n = \sum_{n=-\infty}^{\infty} C_ne^{\pi n i} \quad ,&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \quad C_n = (f^*,E_n)_{L^2} = \int_{-1}^1 f^*(x) \overline{E}_n(x) \,dx \in \mathbb{C}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos estimar estos coeficientes &amp;lt;math&amp;gt; C_n &amp;lt;/math&amp;gt; numéricamente por fórmula del trapecio, y así aproximar la función para un número dado de &amp;lt;math&amp;gt; E_n &amp;lt;/math&amp;gt;. La aproximación con los elementos de la base de &amp;lt;math&amp;gt;-n&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; será entonces&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \quad&lt;br /&gt;
f(x) \approx \sum_{i=-n}^{n} C_iE_{i|[0,1]} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vemos que la aproximación mejora el error en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;, algo que esperábamos por continuidad de &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; y su extensión impar. Además, como &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; &lt;br /&gt;
f(1) \neq \frac{f^*(-1)+f^*(1)}{2}  = 0 &lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
por ser impar, las aproximaciones convergerán puntualmente a &amp;lt;math&amp;gt; 0 &amp;lt;/math&amp;gt; en el valor &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;. No hay convergencia uniforme porque es necesario que la convergencia puntual de las aproximaciones sucesivas fuese &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt; en todo punto de &amp;lt;math&amp;gt;[0,1]&amp;lt;/math&amp;gt;. De hecho, el mayor error se obtiene aquí como &amp;lt;math&amp;gt;|f(1)-f_n(1)|=|1+i|=\sqrt{2}. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos verificar que esta base también es útil con funciones reales aproximando &amp;lt;math&amp;gt;\text{Re}f &amp;lt;/math&amp;gt; con una extensión impar (representado gráficamente a continuación), precisamente &amp;lt;math&amp;gt;\text{Re}f^* &amp;lt;/math&amp;gt;. Por el mismo procedimiento, base y código, logramos de nuevo aproximaciones que convergen en norma del espacio de funciones pero no uniformemente, una vez más por el problema que causa &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;, donde de nuevo se halla el mayor error con &amp;lt;math&amp;gt;|f(1)-f_n(1)|=|1|=1. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Aproximaciones mediante base trigonométrica compleja.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure2RefDMR.jpg|250px]] || [[Archivo:ErroresRef.jpg|250px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure3RefDMR.jpg|250px]] || [[Archivo:TrapecioRefDMR.jpg|250px]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Análogamente a &amp;lt;math&amp;gt; f^* &amp;lt;/math&amp;gt;, las aproximaciones revelan ser capaces de tomar valores reales a pesar de partir de elementos con parte imaginaria no trivial. La aproximación vuelve a ser por norma del espacio de funciones pero no uniforme por el valor en &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:250px; float:left; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Representación gráfica de &amp;lt;math&amp;gt;Ref^*(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figura6RefDMR.jpg|250px]]&lt;br /&gt;
|-&lt;br /&gt;
| Representando esta función real de variable real en las mismas referencias que con &amp;lt;math&amp;gt; f^* &amp;lt;/math&amp;gt;, puede comprobarse que es precisamente su proyección ortogonal en el plano horizontal, claramente con parte imaginaria nula por estar definida como parte real de una función de valores complejos.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_DMR)&amp;diff=83704</id>
		<title>Series de Fourier (Grupo DMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_DMR)&amp;diff=83704"/>
				<updated>2025-02-11T22:09:09Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: /* Base trigonométrica compleja */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Series de Fourier (Grupo DMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | Daniel Rodríguez Calderón, Marcos Cabellos Hernández, Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
En un espacio de Hilbert &amp;lt;math&amp;gt;L_2(a,b)&amp;lt;/math&amp;gt;, una serie de Fourier converge en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt; a una función real de variable real, &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;, que se puede representar mediante la base trigonométrica de Fourier como&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \quad&lt;br /&gt;
f(x) \sim \frac{a_0}{2} + \sum_{n=1}^\infty\left[a_n\cos \left( nx \right) + b_n\sin \left( nx \right) \right]&lt;br /&gt;
&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esta representación nos permite, tomando una suma parcial de la serie, aproximar a &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt;. Sin embargo, la base trigonométrica no se presta a la aproximación de funciones de variable real y valores complejos. Esta carencia nos lleva a la base trigonométrica compleja: considerando seno y coseno complejos, somos capaces de aproximar funciones de variable real y valores complejos o reales indistintamente. Esta base, con dominio &amp;lt;math&amp;gt; [-\pi,\pi] &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \quad \{e^{inx}\}_{n \in \mathbb{Z}} ,&lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
será nuestro foco de atención. La obtendremos formalmente a partir de la base trigonométrica original, para luego visualizarla y comprobar su capacidad para aproximar.&lt;br /&gt;
&lt;br /&gt;
=Base trigonométrica compleja=&lt;br /&gt;
&lt;br /&gt;
Para obtener la base compleja, partamos de la trigonométrica. Por la fórmula de Euler, podemos reescribir coseno y seno de la forma &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
 \cos\theta = \frac{1}{2} (e^{i\theta} + e^{-i\theta}) &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;\quad&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \sin\theta = \frac{1}{2i} (e^{i\theta} - e^{-i\theta})&lt;br /&gt;
&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Así,  en &amp;lt;math&amp;gt; [-\pi,\pi] &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; puede representarse formalmente como&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Base(DMR).gif|150px|thumb|right| (Pinchar) Términos de la base &amp;lt;math&amp;gt; \{e_n := e^{ inx }\}_{n} &amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;n \in \{-1,0,1,2\}&amp;lt;/math&amp;gt; en referencia tridimensional con eje real y plano complejo.]]&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
f(x) \sim \frac{a_0}{2} + \sum_{n=1}^\infty\left[a_n\cos \left( nx \right) + b_n\sin \left( nx \right) \right] = \frac{a_0}{2} + \sum_{n=1}^\infty\left[\frac{a_n}{2}(e^{inx}+e^{-inx})  +  \frac{b_n}{2i}(e^{inx}-e^{-inx})  \right] = &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
=c_0 + \sum_{n=1}^\infty\left[c_n e^{inx}  +c_{-n} e^{-inx}  \right]=&amp;lt;/math&amp;gt;&amp;lt;math&amp;gt; \sum_{n=0}^\infty c_n e^{inx} + \sum_{n=-\infty}^{-1} c_n e^{inx} =\sum_{n=-\infty}^\infty c_n e^{inx}, &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; c_0:=\frac{a_0}{2}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; c_n:=\frac{a_n-ib_n}{2} &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; c_{-n}:=\frac{a_n+ib_n}{2} &amp;lt;/math&amp;gt;. Decimos que este desarrollo es formal por el penúltimo paso. Notemos que estamos separando la serie en dos series. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De esta forma hemos obtenido la base trigonométrica compleja&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
 \{e_n := e^{ inx }\}_{n \in \mathbb{Z}} &lt;br /&gt;
&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Usando el producto escalar, comprobemos que es una base ortogonal &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(e_n,e_m)_{L^2} = \int_{-\pi}^{\pi} e_n  \overline{e_m}  \,dx = \int_{-\pi}^{\pi}  e^{inx} e^{-imx} \,dx = &lt;br /&gt;
\int_{-\pi}^{\pi} e^{(n-m)ix}  \,dx = \frac{-i}{n-m} e^{(n-m)ix} \Big|_{-\pi}^{\pi} = 0 \quad \text{si } n \neq m, \\ &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(e_n,e_n)_{L^2} = \int_{-\pi}^{\pi} e^{(n-n)ix}  \,dx = 2\pi.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aquí fijémonos en que hemos usado el producto escalar en &amp;lt;math&amp;gt;L^2(-\pi,\pi)&amp;lt;/math&amp;gt; dado por&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(f,g)_{L^2} = \int_{-\pi}^{\pi} f(x) \hspace{0.2cm}  \overline{g(x)}  \,dx &lt;br /&gt;
&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una observación relevante es que como la norma de cada elemento de la base es siempre &amp;lt;math&amp;gt; \sqrt{2\pi} &amp;lt;/math&amp;gt;, podemos ortonormalizar dividiendo precisamente por esta constante a cada elemento de la base trigonométrica compleja.&lt;br /&gt;
&lt;br /&gt;
=Extensión impar=&lt;br /&gt;
&lt;br /&gt;
Nos podemos plantear cómo aproximar la siguiente función &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-allign:justify;width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Representación gráfica de &amp;lt;math&amp;gt; f^*(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figura6DMR.jpg|200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:ImparfDMR_V2.jpg|200px]]&lt;br /&gt;
|-&lt;br /&gt;
| Representación de &amp;lt;math&amp;gt;f^*&amp;lt;/math&amp;gt; con eje &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; y el plano complejo en la parte superior, mientras que representamos abajo parte real (izquierda) e imaginaria (derecha).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
f: [0,1] \subseteq \mathbb{R} \longrightarrow \mathbb{C} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
x \mapsto 4x(\frac{1}{2} − x)^2 + ix &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notemos que el intervalo de definición no es simétrico. Extendamos &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt; de forma impar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
f^*: [-1,1] \subseteq \mathbb{R} \longrightarrow \mathbb{C} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
x \mapsto \begin{cases} 4x(\frac{1}{2} + x)^2 + ix \text{ , si } x\in [-1,0]\\&lt;br /&gt;
   &lt;br /&gt;
4x(\frac{1}{2} - x)^2 + ix \text{ , si } x\in [0,1]&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tras representar esta función en las imágenes adjuntas, sólo nos falta adaptar la base al nuevo intervalo. Comprobemos que como verifica&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\{e^{\pi n ix }\}_{n \in \mathbb{Z}} : (E_n,E_m)_{L^2} = \int_{-1}^1 E_n\overline{E_m} \,dx = \int_{-1}^1 e^{\pi (n-m)i} \,dx = \begin{cases}&lt;br /&gt;
\int_{-1}^1 1 dx = 2 \text{ , si } n = m, \\&lt;br /&gt;
0 \text{ , si } n \neq m,&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
entonces es una base ortogonal, habiéndonos basado fuertemente en la periodicidad en el intervalo para el segundo caso. Además, podríamos ortonormalizar dividiendo por la norma común a todos los elementos, &amp;lt;math&amp;gt; \sqrt{2} &amp;lt;/math&amp;gt;, por lo que podemos definir la base ortonormal&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\{E_n\}_{n \in \mathbb{Z}} := \{\frac{\sqrt{2}e^{\pi n ix }}{2}\}_{n \in \mathbb{Z}}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Aproximaciones mediante base trigonométrica compleja.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure2fDMR.jpg|200px]] || [[Archivo:Erroresf.jpg|200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure3fDMR.jpg|200px]] || [[Archivo:TrapeciofDMR.jpg|200px]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Representación de aproximaciones con elementos hasta &amp;lt;math&amp;gt; n = 5,10,20 &amp;lt;/math&amp;gt; en referencia tridimensional, parte real de las aproximaciones y parte imaginaria respectivamente en esquinas superior izquierda y ambas de abajo. Mejora visiblemente, aunque difieran los extremos, lo que se ve reflejado en los errores representados en la esquina superior derecha.  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Para realizar las aproximaciones, necesitamos los coeficientes de cada elemento que consideremos, que pueden obtenerse por ortonormalidad de la base mediante el producto escalar ya que&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
f^*(x) \sim \sum_{n=-\infty}^{\infty} C_nE_n = \sum_{n=-\infty}^{\infty} C_ne^{\pi n i} \quad ,&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \quad C_n = (f^*,E_n)_{L^2} = \int_{-1}^1 f^*(x) \overline{E}_n(x) \,dx \in \mathbb{C}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos estimar estos coeficientes &amp;lt;math&amp;gt; C_n &amp;lt;/math&amp;gt; numéricamente por fórmula del trapecio, y así aproximar la función para un número dado de &amp;lt;math&amp;gt; E_n &amp;lt;/math&amp;gt;. La aproximación con los elementos de la base de &amp;lt;math&amp;gt;-n&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; será entonces&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \quad&lt;br /&gt;
f(x) \approx \sum_{i=-n}^{n} C_iE_{i|[0,1]} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vemos que la aproximación mejora el error en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;, algo que esperábamos por continuidad de &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; y su extensión impar. Además, como &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; &lt;br /&gt;
f(1) \neq \frac{f^*(-1)+f^*(1)}{2}  = 0 &lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
por ser impar, las aproximaciones convergerán puntualmente a &amp;lt;math&amp;gt; 0 &amp;lt;/math&amp;gt; en el valor &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;. No hay convergencia uniforme porque es necesario que la convergencia puntual de las aproximaciones sucesivas fuese &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt; en todo punto de &amp;lt;math&amp;gt;[0,1]&amp;lt;/math&amp;gt;. De hecho, el mayor error se obtiene aquí como &amp;lt;math&amp;gt;|f(1)-f_n(1)|=|1+i|=\sqrt{2}. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos verificar que esta base también es útil con funciones reales aproximando &amp;lt;math&amp;gt;\text{Re}f &amp;lt;/math&amp;gt; con una extensión impar (representado gráficamente a continuación), precisamente &amp;lt;math&amp;gt;\text{Re}f^* &amp;lt;/math&amp;gt;. Por el mismo procedimiento, base y código, logramos de nuevo aproximaciones que convergen en norma del espacio de funciones pero no uniformemente, una vez más por el problema que causa &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;, donde de nuevo se halla el mayor error con &amp;lt;math&amp;gt;|f(1)-f_n(1)|=|1|=1. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Aproximaciones mediante base trigonométrica compleja.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure2RefDMR.jpg|200px]] || [[Archivo:ErroresRef.jpg|200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure3RefDMR.jpg|200px]] || [[Archivo:TrapecioRefDMR.jpg|200px]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Análogamente a &amp;lt;math&amp;gt; f^* &amp;lt;/math&amp;gt;, las aproximaciones revelan ser capaces de tomar valores reales a pesar de partir de elementos con parte imaginaria no trivial. La aproximación vuelve a ser por norma del espacio de funciones pero no uniforme por el valor en &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:250px; float:left; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Representación gráfica de &amp;lt;math&amp;gt;Ref^*(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figura6RefDMR.jpg|250px]]&lt;br /&gt;
|-&lt;br /&gt;
| Representando esta función real de variable real en las mismas referencias que con &amp;lt;math&amp;gt; f^* &amp;lt;/math&amp;gt;, puede comprobarse que es precisamente su proyección ortogonal en el plano horizontal, claramente con parte imaginaria nula por estar definida como parte real de una función de valores complejos.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_DMR)&amp;diff=83703</id>
		<title>Series de Fourier (Grupo DMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_DMR)&amp;diff=83703"/>
				<updated>2025-02-11T22:07:41Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: /* Extensión impar */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Series de Fourier (Grupo DMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | Daniel Rodríguez Calderón, Marcos Cabellos Hernández, Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
En un espacio de Hilbert &amp;lt;math&amp;gt;L_2(a,b)&amp;lt;/math&amp;gt;, una serie de Fourier converge en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt; a una función real de variable real, &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;, que se puede representar mediante la base trigonométrica de Fourier como&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \quad&lt;br /&gt;
f(x) \sim \frac{a_0}{2} + \sum_{n=1}^\infty\left[a_n\cos \left( nx \right) + b_n\sin \left( nx \right) \right]&lt;br /&gt;
&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esta representación nos permite, tomando una suma parcial de la serie, aproximar a &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt;. Sin embargo, la base trigonométrica no se presta a la aproximación de funciones de variable real y valores complejos. Esta carencia nos lleva a la base trigonométrica compleja: considerando seno y coseno complejos, somos capaces de aproximar funciones de variable real y valores complejos o reales indistintamente. Esta base, con dominio &amp;lt;math&amp;gt; [-\pi,\pi] &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \quad \{e^{inx}\}_{n \in \mathbb{Z}} ,&lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
será nuestro foco de atención. La obtendremos formalmente a partir de la base trigonométrica original, para luego visualizarla y comprobar su capacidad para aproximar.&lt;br /&gt;
&lt;br /&gt;
=Base trigonométrica compleja=&lt;br /&gt;
&lt;br /&gt;
Para obtener la base compleja, partamos de la trigonométrica. Por la fórmula de Euler, podemos reescribir coseno y seno de la forma &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
 \cos\theta = \frac{1}{2} (e^{i\theta} + e^{-i\theta}) &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;\quad&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \sin\theta = \frac{1}{2i} (e^{i\theta} - e^{-i\theta})&lt;br /&gt;
&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Así,  en &amp;lt;math&amp;gt; [-\pi,\pi] &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; puede representarse formalmente como&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
f(x) \sim \frac{a_0}{2} + \sum_{n=1}^\infty\left[a_n\cos \left( nx \right) + b_n\sin \left( nx \right) \right] = \frac{a_0}{2} + \sum_{n=1}^\infty\left[\frac{a_n}{2}(e^{inx}+e^{-inx})  +  \frac{b_n}{2i}(e^{inx}-e^{-inx})  \right] = &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
=c_0 + \sum_{n=1}^\infty\left[c_n e^{inx}  +c_{-n} e^{-inx}  \right]=&amp;lt;/math&amp;gt;&amp;lt;math&amp;gt; \sum_{n=0}^\infty c_n e^{inx} + \sum_{n=-\infty}^{-1} c_n e^{inx} =\sum_{n=-\infty}^\infty c_n e^{inx}, &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; c_0:=\frac{a_0}{2}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; c_n:=\frac{a_n-ib_n}{2} &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; c_{-n}:=\frac{a_n+ib_n}{2} &amp;lt;/math&amp;gt;. Decimos que este desarrollo es formal por el penúltimo paso. Notemos que estamos separando la serie en dos series. &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Base(DMR).gif|150px|thumb|right| (Pinchar) Términos de la base &amp;lt;math&amp;gt; \{e_n := e^{ inx }\}_{n} &amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;n \in \{-1,0,1,2\}&amp;lt;/math&amp;gt; en referencia tridimensional con eje real y plano complejo.]]&lt;br /&gt;
&lt;br /&gt;
De esta forma hemos obtenido la base trigonométrica compleja&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
 \{e_n := e^{ inx }\}_{n \in \mathbb{Z}} &lt;br /&gt;
&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
-CÓDIGO AQUÍ-&lt;br /&gt;
&lt;br /&gt;
Usando el producto escalar, comprobemos que es una base ortogonal &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(e_n,e_m)_{L^2} = \int_{-\pi}^{\pi} e_n  \overline{e_m}  \,dx = \int_{-\pi}^{\pi}  e^{inx} e^{-imx} \,dx = &lt;br /&gt;
\int_{-\pi}^{\pi} e^{(n-m)ix}  \,dx = \frac{-i}{n-m} e^{(n-m)ix} \Big|_{-\pi}^{\pi} = 0 \quad \text{si } n \neq m, \\ &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(e_n,e_n)_{L^2} = \int_{-\pi}^{\pi} e^{(n-n)ix}  \,dx = 2\pi.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aquí fijémonos en que hemos usado el producto escalar en &amp;lt;math&amp;gt;L^2(-\pi,\pi)&amp;lt;/math&amp;gt; dado por&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(f,g)_{L^2} = \int_{-\pi}^{\pi} f(x) \hspace{0.2cm}  \overline{g(x)}  \,dx &lt;br /&gt;
&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una observación relevante es que como la norma de cada elemento de la base es siempre &amp;lt;math&amp;gt; \sqrt{2\pi} &amp;lt;/math&amp;gt;, podemos ortonormalizar dividiendo precisamente por esta constante a cada elemento de la base trigonométrica compleja.&lt;br /&gt;
&lt;br /&gt;
=Extensión impar=&lt;br /&gt;
&lt;br /&gt;
Nos podemos plantear cómo aproximar la siguiente función &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-allign:justify;width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Representación gráfica de &amp;lt;math&amp;gt; f^*(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figura6DMR.jpg|200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:ImparfDMR_V2.jpg|200px]]&lt;br /&gt;
|-&lt;br /&gt;
| Representación de &amp;lt;math&amp;gt;f^*&amp;lt;/math&amp;gt; con eje &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; y el plano complejo en la parte superior, mientras que representamos abajo parte real (izquierda) e imaginaria (derecha).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
f: [0,1] \subseteq \mathbb{R} \longrightarrow \mathbb{C} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
x \mapsto 4x(\frac{1}{2} − x)^2 + ix &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notemos que el intervalo de definición no es simétrico. Extendamos &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt; de forma impar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
f^*: [-1,1] \subseteq \mathbb{R} \longrightarrow \mathbb{C} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
x \mapsto \begin{cases} 4x(\frac{1}{2} + x)^2 + ix \text{ , si } x\in [-1,0]\\&lt;br /&gt;
   &lt;br /&gt;
4x(\frac{1}{2} - x)^2 + ix \text{ , si } x\in [0,1]&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tras representar esta función en las imágenes adjuntas, sólo nos falta adaptar la base al nuevo intervalo. Comprobemos que como verifica&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\{e^{\pi n ix }\}_{n \in \mathbb{Z}} : (E_n,E_m)_{L^2} = \int_{-1}^1 E_n\overline{E_m} \,dx = \int_{-1}^1 e^{\pi (n-m)i} \,dx = \begin{cases}&lt;br /&gt;
\int_{-1}^1 1 dx = 2 \text{ , si } n = m, \\&lt;br /&gt;
0 \text{ , si } n \neq m,&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
entonces es una base ortogonal, habiéndonos basado fuertemente en la periodicidad en el intervalo para el segundo caso. Además, podríamos ortonormalizar dividiendo por la norma común a todos los elementos, &amp;lt;math&amp;gt; \sqrt{2} &amp;lt;/math&amp;gt;, por lo que podemos definir la base ortonormal&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\{E_n\}_{n \in \mathbb{Z}} := \{\frac{\sqrt{2}e^{\pi n ix }}{2}\}_{n \in \mathbb{Z}}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Aproximaciones mediante base trigonométrica compleja.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure2fDMR.jpg|200px]] || [[Archivo:Erroresf.jpg|200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure3fDMR.jpg|200px]] || [[Archivo:TrapeciofDMR.jpg|200px]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Representación de aproximaciones con elementos hasta &amp;lt;math&amp;gt; n = 5,10,20 &amp;lt;/math&amp;gt; en referencia tridimensional, parte real de las aproximaciones y parte imaginaria respectivamente en esquinas superior izquierda y ambas de abajo. Mejora visiblemente, aunque difieran los extremos, lo que se ve reflejado en los errores representados en la esquina superior derecha.  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Para realizar las aproximaciones, necesitamos los coeficientes de cada elemento que consideremos, que pueden obtenerse por ortonormalidad de la base mediante el producto escalar ya que&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
f^*(x) \sim \sum_{n=-\infty}^{\infty} C_nE_n = \sum_{n=-\infty}^{\infty} C_ne^{\pi n i} \quad ,&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \quad C_n = (f^*,E_n)_{L^2} = \int_{-1}^1 f^*(x) \overline{E}_n(x) \,dx \in \mathbb{C}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos estimar estos coeficientes &amp;lt;math&amp;gt; C_n &amp;lt;/math&amp;gt; numéricamente por fórmula del trapecio, y así aproximar la función para un número dado de &amp;lt;math&amp;gt; E_n &amp;lt;/math&amp;gt;. La aproximación con los elementos de la base de &amp;lt;math&amp;gt;-n&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; será entonces&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \quad&lt;br /&gt;
f(x) \approx \sum_{i=-n}^{n} C_iE_{i|[0,1]} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vemos que la aproximación mejora el error en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;, algo que esperábamos por continuidad de &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; y su extensión impar. Además, como &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; &lt;br /&gt;
f(1) \neq \frac{f^*(-1)+f^*(1)}{2}  = 0 &lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
por ser impar, las aproximaciones convergerán puntualmente a &amp;lt;math&amp;gt; 0 &amp;lt;/math&amp;gt; en el valor &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;. No hay convergencia uniforme porque es necesario que la convergencia puntual de las aproximaciones sucesivas fuese &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt; en todo punto de &amp;lt;math&amp;gt;[0,1]&amp;lt;/math&amp;gt;. De hecho, el mayor error se obtiene aquí como &amp;lt;math&amp;gt;|f(1)-f_n(1)|=|1+i|=\sqrt{2}. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos verificar que esta base también es útil con funciones reales aproximando &amp;lt;math&amp;gt;\text{Re}f &amp;lt;/math&amp;gt; con una extensión impar (representado gráficamente a continuación), precisamente &amp;lt;math&amp;gt;\text{Re}f^* &amp;lt;/math&amp;gt;. Por el mismo procedimiento, base y código, logramos de nuevo aproximaciones que convergen en norma del espacio de funciones pero no uniformemente, una vez más por el problema que causa &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;, donde de nuevo se halla el mayor error con &amp;lt;math&amp;gt;|f(1)-f_n(1)|=|1|=1. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Aproximaciones mediante base trigonométrica compleja.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure2RefDMR.jpg|200px]] || [[Archivo:ErroresRef.jpg|200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure3RefDMR.jpg|200px]] || [[Archivo:TrapecioRefDMR.jpg|200px]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Análogamente a &amp;lt;math&amp;gt; f^* &amp;lt;/math&amp;gt;, las aproximaciones revelan ser capaces de tomar valores reales a pesar de partir de elementos con parte imaginaria no trivial. La aproximación vuelve a ser por norma del espacio de funciones pero no uniforme por el valor en &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:250px; float:left; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Representación gráfica de &amp;lt;math&amp;gt;Ref^*(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figura6RefDMR.jpg|250px]]&lt;br /&gt;
|-&lt;br /&gt;
| Representando esta función real de variable real en las mismas referencias que con &amp;lt;math&amp;gt; f^* &amp;lt;/math&amp;gt;, puede comprobarse que es precisamente su proyección ortogonal en el plano horizontal, claramente con parte imaginaria nula por estar definida como parte real de una función de valores complejos.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_DMR)&amp;diff=83702</id>
		<title>Series de Fourier (Grupo DMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_DMR)&amp;diff=83702"/>
				<updated>2025-02-11T22:04:32Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: /* Base trigonométrica compleja */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Series de Fourier (Grupo DMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | Daniel Rodríguez Calderón, Marcos Cabellos Hernández, Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
En un espacio de Hilbert &amp;lt;math&amp;gt;L_2(a,b)&amp;lt;/math&amp;gt;, una serie de Fourier converge en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt; a una función real de variable real, &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;, que se puede representar mediante la base trigonométrica de Fourier como&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \quad&lt;br /&gt;
f(x) \sim \frac{a_0}{2} + \sum_{n=1}^\infty\left[a_n\cos \left( nx \right) + b_n\sin \left( nx \right) \right]&lt;br /&gt;
&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esta representación nos permite, tomando una suma parcial de la serie, aproximar a &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt;. Sin embargo, la base trigonométrica no se presta a la aproximación de funciones de variable real y valores complejos. Esta carencia nos lleva a la base trigonométrica compleja: considerando seno y coseno complejos, somos capaces de aproximar funciones de variable real y valores complejos o reales indistintamente. Esta base, con dominio &amp;lt;math&amp;gt; [-\pi,\pi] &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \quad \{e^{inx}\}_{n \in \mathbb{Z}} ,&lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
será nuestro foco de atención. La obtendremos formalmente a partir de la base trigonométrica original, para luego visualizarla y comprobar su capacidad para aproximar.&lt;br /&gt;
&lt;br /&gt;
=Base trigonométrica compleja=&lt;br /&gt;
&lt;br /&gt;
Para obtener la base compleja, partamos de la trigonométrica. Por la fórmula de Euler, podemos reescribir coseno y seno de la forma &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
 \cos\theta = \frac{1}{2} (e^{i\theta} + e^{-i\theta}) &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;\quad&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \sin\theta = \frac{1}{2i} (e^{i\theta} - e^{-i\theta})&lt;br /&gt;
&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Así,  en &amp;lt;math&amp;gt; [-\pi,\pi] &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; puede representarse formalmente como&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
f(x) \sim \frac{a_0}{2} + \sum_{n=1}^\infty\left[a_n\cos \left( nx \right) + b_n\sin \left( nx \right) \right] = \frac{a_0}{2} + \sum_{n=1}^\infty\left[\frac{a_n}{2}(e^{inx}+e^{-inx})  +  \frac{b_n}{2i}(e^{inx}-e^{-inx})  \right] = &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
=c_0 + \sum_{n=1}^\infty\left[c_n e^{inx}  +c_{-n} e^{-inx}  \right]=&amp;lt;/math&amp;gt;&amp;lt;math&amp;gt; \sum_{n=0}^\infty c_n e^{inx} + \sum_{n=-\infty}^{-1} c_n e^{inx} =\sum_{n=-\infty}^\infty c_n e^{inx}, &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; c_0:=\frac{a_0}{2}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; c_n:=\frac{a_n-ib_n}{2} &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; c_{-n}:=\frac{a_n+ib_n}{2} &amp;lt;/math&amp;gt;. Decimos que este desarrollo es formal por el penúltimo paso. Notemos que estamos separando la serie en dos series. &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Base(DMR).gif|150px|thumb|right| (Pinchar) Términos de la base &amp;lt;math&amp;gt; \{e_n := e^{ inx }\}_{n} &amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;n \in \{-1,0,1,2\}&amp;lt;/math&amp;gt; en referencia tridimensional con eje real y plano complejo.]]&lt;br /&gt;
&lt;br /&gt;
De esta forma hemos obtenido la base trigonométrica compleja&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
 \{e_n := e^{ inx }\}_{n \in \mathbb{Z}} &lt;br /&gt;
&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
-CÓDIGO AQUÍ-&lt;br /&gt;
&lt;br /&gt;
Usando el producto escalar, comprobemos que es una base ortogonal &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(e_n,e_m)_{L^2} = \int_{-\pi}^{\pi} e_n  \overline{e_m}  \,dx = \int_{-\pi}^{\pi}  e^{inx} e^{-imx} \,dx = &lt;br /&gt;
\int_{-\pi}^{\pi} e^{(n-m)ix}  \,dx = \frac{-i}{n-m} e^{(n-m)ix} \Big|_{-\pi}^{\pi} = 0 \quad \text{si } n \neq m, \\ &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(e_n,e_n)_{L^2} = \int_{-\pi}^{\pi} e^{(n-n)ix}  \,dx = 2\pi.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aquí fijémonos en que hemos usado el producto escalar en &amp;lt;math&amp;gt;L^2(-\pi,\pi)&amp;lt;/math&amp;gt; dado por&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(f,g)_{L^2} = \int_{-\pi}^{\pi} f(x) \hspace{0.2cm}  \overline{g(x)}  \,dx &lt;br /&gt;
&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una observación relevante es que como la norma de cada elemento de la base es siempre &amp;lt;math&amp;gt; \sqrt{2\pi} &amp;lt;/math&amp;gt;, podemos ortonormalizar dividiendo precisamente por esta constante a cada elemento de la base trigonométrica compleja.&lt;br /&gt;
&lt;br /&gt;
=Extensión impar=&lt;br /&gt;
&lt;br /&gt;
Nos podemos plantear cómo aproximar la siguiente función &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-allign:justify;width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Representación gráfica de &amp;lt;math&amp;gt; f^*(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figura6DMR.jpg|200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:ImparfDMR_V2.jpg|200px]]&lt;br /&gt;
|-&lt;br /&gt;
| Representación de &amp;lt;math&amp;gt;f^*&amp;lt;/math&amp;gt; con eje &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; y el plano complejo en la parte superior, mientras que representamos abajo parte real (izquierda) e imaginaria (derecha).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
f: [0,1] \subseteq \mathbb{R} \longrightarrow \mathbb{C} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
x \mapsto 4x(\frac{1}{2} − x)^2 + ix &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notemos que el intervalo de definición no es simétrico. Extendamos &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt; de forma impar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
f^*: [-1,1] \subseteq \mathbb{R} \longrightarrow \mathbb{C} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
x \mapsto \begin{cases} 4x(\frac{1}{2} + x)^2 + ix \text{ , si } x\in [-1,0]\\&lt;br /&gt;
   &lt;br /&gt;
4x(\frac{1}{2} - x)^2 + ix \text{ , si } x\in [0,1]&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tras representar esta función en las imágenes adjuntas, sólo nos falta adaptar la base al nuevo intervalo. Comprobemos que como verifica&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\{e^{\pi n ix }\}_{n \in \mathbb{Z}} : (E_n,E_m)_{L^2} = \int_{-1}^1 E_n\overline{E_m} \,dx = \int_{-1}^1 e^{\pi (n-m)i} \,dx = \begin{cases}&lt;br /&gt;
\int_{-1}^1 1 dx = 2 \text{ , si } n = m, \\&lt;br /&gt;
0 \text{ , si } n \neq m,&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
entonces es una base ortogonal, habiéndonos basado fuertemente en la periodicidad en el intervalo para el segundo caso. Además, podríamos ortonormalizar dividiendo por la norma común a todos los elementos, &amp;lt;math&amp;gt; \sqrt{2} &amp;lt;/math&amp;gt;, por lo que podemos definir la base ortonormal&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\{E_n\}_{n \in \mathbb{Z}} := \{\frac{\sqrt{2}e^{\pi n ix }}{2}\}_{n \in \mathbb{Z}}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Aproximaciones mediante base trigonométrica compleja.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure2fDMR.jpg|200px]] || [[Archivo:Erroresf.jpg|200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure3fDMR.jpg|200px]] || [[Archivo:TrapeciofDMR.jpg|200px]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Representación de aproximaciones con elementos hasta &amp;lt;math&amp;gt; n = 5,10,20 &amp;lt;/math&amp;gt; en referencia tridimensional, parte real de las aproximaciones y parte imaginaria respectivamente en esquinas superior izquierda y ambas de abajo. Mejora visiblemente, aunque difieran los extremos, lo que se ve reflejado en los errores representados en la esquina superior derecha.  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Para realizar las aproximaciones, necesitamos los coeficientes de cada elemento que consideremos, que pueden obtenerse por ortonormalidad de la base mediante el producto escalar ya que&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
f^*(x) \sim \sum_{n=-\infty}^{\infty} C_nE_n = \sum_{n=-\infty}^{\infty} C_ne^{\pi n i} \quad ,&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \quad C_n = (f^*,E_n)_{L^2} = \int_{-1}^1 f^*(x) \overline{E}_n(x) \,dx \in \mathbb{C}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos estimar estos coeficientes &amp;lt;math&amp;gt; C_n &amp;lt;/math&amp;gt; numéricamente por fórmula del trapecio, y así aproximar la función para un número dado de &amp;lt;math&amp;gt; E_n &amp;lt;/math&amp;gt;. La aproximación con los elementos de la base de &amp;lt;math&amp;gt;-n&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; será entonces&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \quad&lt;br /&gt;
f(x) \approx \sum_{i=-n}^{n} C_iE_{i|[0,1]} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vemos que la aproximación mejora el error en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;, algo que esperábamos por continuidad de &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; y su extensión impar. Además, como &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; &lt;br /&gt;
f(1) \neq \frac{f^*(-1)+f^*(1)}{2}  = 0 &lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
por ser impar, las aproximaciones convergerán puntualmente a &amp;lt;math&amp;gt; 0 &amp;lt;/math&amp;gt; en el valor &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;. No hay convergencia uniforme porque es necesario que la convergencia puntual de las aproximaciones sucesivas fuese &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt; en todo punto de &amp;lt;math&amp;gt;[0,1]&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos verificar que esta base también es útil con funciones reales aproximando &amp;lt;math&amp;gt;\text{Re}f &amp;lt;/math&amp;gt; con una extensión impar (representado gráficamente a continuación), precisamente &amp;lt;math&amp;gt;\text{Re}f^* &amp;lt;/math&amp;gt;. Por el mismo procedimiento, base y código, logramos de nuevo aproximaciones que convergen en norma del espacio de funciones pero no uniformemente, una vez más por el problema que causa &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;. Sin embargo, el hecho de que una base sirva para funciones reales y complejas simultáneamente es un hecho a tener en cuenta.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Aproximaciones mediante base trigonométrica compleja.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure2RefDMR.jpg|200px]] || [[Archivo:ErroresRef.jpg|200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure3RefDMR.jpg|200px]] || [[Archivo:TrapecioRefDMR.jpg|200px]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Análogamente a &amp;lt;math&amp;gt; f^* &amp;lt;/math&amp;gt;, las aproximaciones revelan ser capaces de tomar valores reales a pesar de partir de elementos con parte imaginaria no trivial. La aproximación vuelve a ser por norma del espacio de funciones pero no uniforme por el valor en &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:250px; float:left; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Representación gráfica de &amp;lt;math&amp;gt;Ref^*(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figura6RefDMR.jpg|250px]]&lt;br /&gt;
|-&lt;br /&gt;
| Representando esta función real de variable real en las mismas referencias que con &amp;lt;math&amp;gt; f^* &amp;lt;/math&amp;gt;, puede comprobarse que es precisamente su proyección ortogonal en el plano horizontal, claramente con parte imaginaria nula por estar definida como parte real de una función de valores complejos.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_DMR)&amp;diff=83699</id>
		<title>Series de Fourier (Grupo DMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_DMR)&amp;diff=83699"/>
				<updated>2025-02-11T21:56:08Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: /* Extensión impar */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Series de Fourier (Grupo DMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | Daniel Rodríguez Calderón, Marcos Cabellos Hernández, Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
En un espacio de Hilbert &amp;lt;math&amp;gt;L_2(a,b)&amp;lt;/math&amp;gt;, una serie de Fourier converge en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt; a una función real de variable real, &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;, que se puede representar mediante la base trigonométrica de Fourier como&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \quad&lt;br /&gt;
f(x) \sim \frac{a_0}{2} + \sum_{n=1}^\infty\left[a_n\cos \left( nx \right) + b_n\sin \left( nx \right) \right]&lt;br /&gt;
&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esta representación nos permite, tomando una suma parcial de la serie, aproximar a &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt;. Sin embargo, la base trigonométrica no se presta a la aproximación de funciones de variable real y valores complejos. Esta carencia nos lleva a la base trigonométrica compleja: considerando seno y coseno complejos, somos capaces de aproximar funciones de variable real y valores complejos o reales indistintamente. Esta base, con dominio &amp;lt;math&amp;gt; [-\pi,\pi] &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \quad \{e^{inx}\}_{n \in \mathbb{Z}} ,&lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
será nuestro foco de atención. La obtendremos formalmente a partir de la base trigonométrica original, para luego visualizarla y comprobar su capacidad para aproximar.&lt;br /&gt;
&lt;br /&gt;
=Base trigonométrica compleja=&lt;br /&gt;
&lt;br /&gt;
Para obtener la base compleja, partamos de la trigonométrica. Por la fórmula de Euler, podemos reescribir coseno y seno de la forma &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
 \cos\theta = \frac{1}{2} (e^{i\theta} + e^{-i\theta}) &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;\quad&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \sin\theta = \frac{1}{2i} (e^{i\theta} - e^{-i\theta})&lt;br /&gt;
&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Así,  en &amp;lt;math&amp;gt; [-\pi,\pi] &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; puede representarse formalmente como&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
f(x) \sim \frac{a_0}{2} + \sum_{n=1}^\infty\left[a_n\cos \left( nx \right) + b_n\sin \left( nx \right) \right] = \frac{a_0}{2} + \sum_{n=1}^\infty\left[\frac{a_n}{2}(e^{inx}+e^{-inx})  +  \frac{b_n}{2i}(e^{inx}-e^{-inx})  \right] = c_0 + \sum_{n=1}^\infty\left[c_n e^{inx}  +c_{-n} e^{-inx}  \right]=&amp;lt;/math&amp;gt;&amp;lt;math&amp;gt; \sum_{n=0}^\infty c_n e^{inx} + \sum_{n=-\infty}^{-1} c_n e^{inx} =\sum_{n=-\infty}^\infty c_n e^{inx}, &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; c_0:=\frac{a_0}{2}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; c_n:=\frac{a_n-ib_n}{2} &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; c_{-n}:=\frac{a_n+ib_n}{2} &amp;lt;/math&amp;gt;. Decimos que este desarrollo es formal por el penúltimo paso. Notemos que estamos separando la serie en dos series. &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Base(DMR).gif|400px|thumb|right|Términos de la base &amp;lt;math&amp;gt; \{e_n := e^{ inx }\}_{n} &amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;n \in \{-1,0,1,2\}.&amp;lt;/math&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
De esta forma hemos obtenido la base trigonométrica compleja&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
 \{e_n := e^{ inx }\}_{n \in \mathbb{Z}} &lt;br /&gt;
&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
-CÓDIGO AQUÍ-&lt;br /&gt;
&lt;br /&gt;
Usando el producto escalar, comprobemos que es una base ortogonal &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(e_n,e_m)_{L^2} = \int_{-\pi}^{\pi} e_n  \overline{e_m}  \,dx = \int_{-\pi}^{\pi}  e^{inx} e^{-imx} \,dx = &lt;br /&gt;
\int_{-\pi}^{\pi} e^{(n-m)ix}  \,dx = \frac{-i}{n-m} e^{(n-m)ix} \Big|_{-\pi}^{\pi} = 0 \quad \text{si } n \neq m, \\ &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(e_n,e_n)_{L^2} = \int_{-\pi}^{\pi} e^{(n-n)ix}  \,dx = 2\pi.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aquí fijémonos en que hemos usado el producto escalar en &amp;lt;math&amp;gt;L^2(-\pi,\pi)&amp;lt;/math&amp;gt; dado por&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(f,g)_{L^2} = \int_{-\pi}^{\pi} f(x) \hspace{0.2cm}  \overline{g(x)}  \,dx &lt;br /&gt;
&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una observación relevante es que como la norma de cada elemento de la base es siempre &amp;lt;math&amp;gt; \sqrt{2\pi} &amp;lt;/math&amp;gt;, podemos ortonormalizar dividiendo precisamente por esta constante a cada elemento de la base trigonométrica compleja.&lt;br /&gt;
&lt;br /&gt;
=Extensión impar=&lt;br /&gt;
&lt;br /&gt;
Nos podemos plantear cómo aproximar la siguiente función &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-allign:justify;width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Representación gráfica de &amp;lt;math&amp;gt; f^*(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figura6DMR.jpg|200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:ImparfDMR_V2.jpg|200px]]&lt;br /&gt;
|-&lt;br /&gt;
| Representación de &amp;lt;math&amp;gt;f^*&amp;lt;/math&amp;gt; con eje &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; y el plano complejo en la parte superior, mientras que representamos abajo parte real (izquierda) e imaginaria (derecha).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
f: [0,1] \subseteq \mathbb{R} \longrightarrow \mathbb{C} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
x \mapsto 4x(\frac{1}{2} − x)^2 + ix &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notemos que el intervalo de definición no es simétrico. Extendamos &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt; de forma impar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
f^*: [-1,1] \subseteq \mathbb{R} \longrightarrow \mathbb{C} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
x \mapsto \begin{cases} 4x(\frac{1}{2} + x)^2 + ix \text{ , si } x\in [-1,0]\\&lt;br /&gt;
   &lt;br /&gt;
4x(\frac{1}{2} - x)^2 + ix \text{ , si } x\in [0,1]&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tras representar esta función en las imágenes adjuntas, sólo nos falta adaptar la base al nuevo intervalo. Comprobemos que como verifica&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\{e^{\pi n ix }\}_{n \in \mathbb{Z}} : (E_n,E_m)_{L^2} = \int_{-1}^1 E_n\overline{E_m} \,dx = \int_{-1}^1 e^{\pi (n-m)i} \,dx = \begin{cases}&lt;br /&gt;
\int_{-1}^1 1 dx = 2 \text{ , si } n = m, \\&lt;br /&gt;
0 \text{ , si } n \neq m,&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
entonces es una base ortogonal, habiéndonos basado fuertemente en la periodicidad en el intervalo para el segundo caso. Además, podríamos ortonormalizar dividiendo por la norma común a todos los elementos, &amp;lt;math&amp;gt; \sqrt{2} &amp;lt;/math&amp;gt;, por lo que podemos definir la base ortonormal&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\{E_n\}_{n \in \mathbb{Z}} := \{\frac{\sqrt{2}e^{\pi n ix }}{2}\}_{n \in \mathbb{Z}}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Aproximaciones mediante base trigonométrica compleja.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure2fDMR.jpg|200px]] || [[Archivo:Erroresf.jpg|200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure3fDMR.jpg|200px]] || [[Archivo:TrapeciofDMR.jpg|200px]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Representación de aproximaciones con elementos hasta &amp;lt;math&amp;gt; n = 5,10,20 &amp;lt;/math&amp;gt; en referencia tridimensional, parte real de las aproximaciones y parte imaginaria respectivamente en esquinas superior izquierda y ambas de abajo. Mejora visiblemente, aunque difieran los extremos, lo que se ve reflejado en los errores representados en la esquina superior derecha.  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Para realizar las aproximaciones, necesitamos los coeficientes de cada elemento que consideremos, que pueden obtenerse por ortonormalidad de la base mediante el producto escalar ya que&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
f^*(x) \sim \sum_{n=-\infty}^{\infty} C_nE_n = \sum_{n=-\infty}^{\infty} C_ne^{\pi n i} \quad ,&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \quad C_n = (f^*,E_n)_{L^2} = \int_{-1}^1 f^*(x) \overline{E}_n(x) \,dx \in \mathbb{C}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos estimar estos coeficientes &amp;lt;math&amp;gt; C_n &amp;lt;/math&amp;gt; numéricamente por fórmula del trapecio, y así aproximar la función para un número dado de &amp;lt;math&amp;gt; E_n &amp;lt;/math&amp;gt;. La aproximación con los elementos de la base de &amp;lt;math&amp;gt;-n&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; será entonces&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \quad&lt;br /&gt;
f(x) \approx \sum_{i=-n}^{n} C_iE_{i|[0,1]} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vemos que la aproximación mejora el error en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;, algo que esperábamos por continuidad de &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; y su extensión impar. Además, como &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; &lt;br /&gt;
f(1) \neq \frac{f^*(-1)+f^*(1)}{2}  = 0 &lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
por ser impar, las aproximaciones convergerán puntualmente a &amp;lt;math&amp;gt; 0 &amp;lt;/math&amp;gt; en el valor &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;. No hay convergencia uniforme porque es necesario que la convergencia puntual de las aproximaciones sucesivas fuese &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt; en todo punto de &amp;lt;math&amp;gt;[0,1]&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos verificar que esta base también es útil con funciones reales aproximando &amp;lt;math&amp;gt;\text{Re}f &amp;lt;/math&amp;gt; con una extensión impar (representado gráficamente a continuación), precisamente &amp;lt;math&amp;gt;\text{Re}f^* &amp;lt;/math&amp;gt;. Por el mismo procedimiento, base y código, logramos de nuevo aproximaciones que convergen en norma del espacio de funciones pero no uniformemente, una vez más por el problema que causa &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;. Sin embargo, el hecho de que una base sirva para funciones reales y complejas simultáneamente es un hecho a tener en cuenta.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Aproximaciones mediante base trigonométrica compleja.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure2RefDMR.jpg|200px]] || [[Archivo:ErroresRef.jpg|200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure3RefDMR.jpg|200px]] || [[Archivo:TrapecioRefDMR.jpg|200px]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Análogamente a &amp;lt;math&amp;gt; f^* &amp;lt;/math&amp;gt;, las aproximaciones revelan ser capaces de tomar valores reales a pesar de partir de elementos con parte imaginaria no trivial. La aproximación vuelve a ser por norma del espacio de funciones pero no uniforme por el valor en &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:250px; float:left; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Representación gráfica de &amp;lt;math&amp;gt;Ref^*(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figura6RefDMR.jpg|250px]]&lt;br /&gt;
|-&lt;br /&gt;
| Representando esta función real de variable real en las mismas referencias que con &amp;lt;math&amp;gt; f^* &amp;lt;/math&amp;gt;, puede comprobarse que es precisamente su proyección ortogonal en el plano horizontal, claramente con parte imaginaria nula por estar definida como parte real de una función de valores complejos.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_DMR)&amp;diff=83698</id>
		<title>Series de Fourier (Grupo DMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_DMR)&amp;diff=83698"/>
				<updated>2025-02-11T21:41:01Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Series de Fourier (Grupo DMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | Daniel Rodríguez Calderón, Marcos Cabellos Hernández, Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
En un espacio de Hilbert &amp;lt;math&amp;gt;L_2(a,b)&amp;lt;/math&amp;gt;, una serie de Fourier converge en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt; a una función real de variable real, &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;, que se puede representar mediante la base trigonométrica de Fourier como&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \quad&lt;br /&gt;
f(x) \sim \frac{a_0}{2} + \sum_{n=1}^\infty\left[a_n\cos \left( nx \right) + b_n\sin \left( nx \right) \right]&lt;br /&gt;
&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esta representación nos permite, tomando una suma parcial de la serie, aproximar a &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt;. Sin embargo, la base trigonométrica no se presta a la aproximación de funciones de variable real y valores complejos. Esta carencia nos lleva a la base trigonométrica compleja: considerando seno y coseno complejos, somos capaces de aproximar funciones de variable real y valores complejos o reales indistintamente. Esta base, con dominio &amp;lt;math&amp;gt; [-\pi,\pi] &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \quad \{e^{inx}\}_{n \in \mathbb{Z}} ,&lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
será nuestro foco de atención. La obtendremos formalmente a partir de la base trigonométrica original, para luego visualizarla y comprobar su capacidad para aproximar.&lt;br /&gt;
&lt;br /&gt;
=Base trigonométrica compleja=&lt;br /&gt;
&lt;br /&gt;
Para obtener la base compleja, partamos de la trigonométrica. Por la fórmula de Euler, podemos reescribir coseno y seno de la forma &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
 \cos\theta = \frac{1}{2} (e^{i\theta} + e^{-i\theta}) &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;\quad&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \sin\theta = \frac{1}{2i} (e^{i\theta} - e^{-i\theta})&lt;br /&gt;
&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Así,  en &amp;lt;math&amp;gt; [-\pi,\pi] &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; puede representarse formalmente como&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
f(x) \sim \frac{a_0}{2} + \sum_{n=1}^\infty\left[a_n\cos \left( nx \right) + b_n\sin \left( nx \right) \right] = \frac{a_0}{2} + \sum_{n=1}^\infty\left[\frac{a_n}{2}(e^{inx}+e^{-inx})  +  \frac{b_n}{2i}(e^{inx}-e^{-inx})  \right] = c_0 + \sum_{n=1}^\infty\left[c_n e^{inx}  +c_{-n} e^{-inx}  \right]=&amp;lt;/math&amp;gt;&amp;lt;math&amp;gt; \sum_{n=0}^\infty c_n e^{inx} + \sum_{n=-\infty}^{-1} c_n e^{inx} =\sum_{n=-\infty}^\infty c_n e^{inx}, &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; c_0:=\frac{a_0}{2}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; c_n:=\frac{a_n-ib_n}{2} &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; c_{-n}:=\frac{a_n+ib_n}{2} &amp;lt;/math&amp;gt;. Decimos que este desarrollo es formal por el penúltimo paso. Notemos que estamos separando la serie en dos series. &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Base(DMR).gif|400px|thumb|right|Términos de la base &amp;lt;math&amp;gt; \{e_n := e^{ inx }\}_{n} &amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;n \in \{-1,0,1,2\}.&amp;lt;/math&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
De esta forma hemos obtenido la base trigonométrica compleja&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
 \{e_n := e^{ inx }\}_{n \in \mathbb{Z}} &lt;br /&gt;
&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
-CÓDIGO AQUÍ-&lt;br /&gt;
&lt;br /&gt;
Usando el producto escalar, comprobemos que es una base ortogonal &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(e_n,e_m)_{L^2} = \int_{-\pi}^{\pi} e_n  \overline{e_m}  \,dx = \int_{-\pi}^{\pi}  e^{inx} e^{-imx} \,dx = &lt;br /&gt;
\int_{-\pi}^{\pi} e^{(n-m)ix}  \,dx = \frac{-i}{n-m} e^{(n-m)ix} \Big|_{-\pi}^{\pi} = 0 \quad \text{si } n \neq m, \\ &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(e_n,e_n)_{L^2} = \int_{-\pi}^{\pi} e^{(n-n)ix}  \,dx = 2\pi.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aquí fijémonos en que hemos usado el producto escalar en &amp;lt;math&amp;gt;L^2(-\pi,\pi)&amp;lt;/math&amp;gt; dado por&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(f,g)_{L^2} = \int_{-\pi}^{\pi} f(x) \hspace{0.2cm}  \overline{g(x)}  \,dx &lt;br /&gt;
&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una observación relevante es que como la norma de cada elemento de la base es siempre &amp;lt;math&amp;gt; \sqrt{2\pi} &amp;lt;/math&amp;gt;, podemos ortonormalizar dividiendo precisamente por esta constante a cada elemento de la base trigonométrica compleja.&lt;br /&gt;
&lt;br /&gt;
=Extensión impar=&lt;br /&gt;
&lt;br /&gt;
Nos podemos plantear cómo aproximar la siguiente función &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-allign:justify;width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Representación gráfica de &amp;lt;math&amp;gt; f^*(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figura6DMR.jpg|200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:ImparfDMR_V2.jpg|200px]]&lt;br /&gt;
|-&lt;br /&gt;
| Representación de &amp;lt;math&amp;gt;f^*&amp;lt;/math&amp;gt; con eje &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; y el plano complejo en la parte superior, mientras que representamos abajo parte real (izquierda) e imaginaria (derecha).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
f: [0,1] \subseteq \mathbb{R} \longrightarrow \mathbb{C} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
x \mapsto 4x(\frac{1}{2} − x)^2 + ix &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notemos que el intervalo de definición no es simétrico. Extendamos &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt; de forma impar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
f^*: [-1,1] \subseteq \mathbb{R} \longrightarrow \mathbb{C} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
x \mapsto \begin{cases} 4x(\frac{1}{2} + x)^2 + ix \text{ , si } x\in [-1,0]\\&lt;br /&gt;
   &lt;br /&gt;
4x(\frac{1}{2} - x)^2 + ix \text{ , si } x\in [0,1]&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tras representar esta función en las imágenes adjuntas, sólo nos falta adaptar la base al nuevo intervalo. Comprobemos que como verifica&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\{e^{\pi n ix }\}_{n \in \mathbb{Z}} : (E_n,E_m)_{L^2} = \int_{-1}^1 E_n\overline{E_m} \,dx = \int_{-1}^1 e^{\pi (n-m)i} \,dx = \begin{cases}&lt;br /&gt;
\int_{-1}^1 1 dx = 2 \text{ , si } n = m, \\&lt;br /&gt;
0 \text{ , si } n \neq m,&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
entonces es una base ortogonal, habiéndonos basado fuertemente en la periodicidad en el intervalo para el segundo caso. Además, podríamos ortonormalizar dividiendo por la norma común a todos los elementos, &amp;lt;math&amp;gt; \sqrt{2} &amp;lt;/math&amp;gt;, por lo que podemos definir la base ortonormal&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\{E_n\}_{n \in \mathbb{Z}} := \{\frac{\sqrt{2}e^{\pi n ix }}{2}\}_{n \in \mathbb{Z}}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Aproximaciones mediante base trigonométrica compleja.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure2fDMR.jpg|250px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure3fDMR.jpg|250px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:TrapeciofDMR.jpg|250px]]&lt;br /&gt;
|-&lt;br /&gt;
| Aproximaciones con elementos hasta &amp;lt;math&amp;gt; n = 5,10,20 &amp;lt;/math&amp;gt;, representando en referencia tridimensional, parte real de las aproximaciones y parte imaginaria respectivamente. Mejora visiblemente, pero nótese que en los extremos difieren claramente, lo que será importante al considerar errores de aproximación.  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Para realizar las aproximaciones, necesitamos los coeficientes de cada elemento que consideremos, que pueden obtenerse por ortonormalidad de la base mediante el producto escalar ya que&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
f^*(x) \sim \sum_{n=-\infty}^{\infty} C_nE_n = \sum_{n=-\infty}^{\infty} C_ne^{\pi n i} \quad ,&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \quad C_n = (f^*,E_n)_{L^2} = \int_{-1}^1 f^*(x) \overline{E}_n(x) \,dx \in \mathbb{C}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos estimar estos coeficientes &amp;lt;math&amp;gt; C_n &amp;lt;/math&amp;gt; numéricamente por fórmula del trapecio, y así aproximar la función para un número dado de &amp;lt;math&amp;gt; E_n &amp;lt;/math&amp;gt;. La aproximación con los elementos de la base de &amp;lt;math&amp;gt;-n&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; será entonces&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \quad&lt;br /&gt;
f(x) \approx \sum_{i=-n}^{n} C_iE_{i|[0,1]} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Errores en la aproximación.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Erroresf.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| Errores en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt; y uniformes. La aproximación converge en norma pero no uniformemente: puede comprobarse que las aproximaciones tienden a &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; puntualmente en &amp;lt;math&amp;gt;x=1&amp;lt;/math&amp;gt; por haberse tomado una extensión impar, causando el error medido en la gráfica de &amp;lt;math&amp;gt;|f(1)-f_n(1)|=|1+i|=\sqrt{2}&amp;lt;/math&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Vemos que la aproximación mejora el error en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;, algo que esperábamos por continuidad de &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; y su extensión impar. Además, como &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; &lt;br /&gt;
f(1) \neq \frac{f^*(-1)+f^*(1)}{2}  = 0 &lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
por ser impar, las aproximaciones convergerán puntualmente a &amp;lt;math&amp;gt; 0 &amp;lt;/math&amp;gt; en el valor &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;. No hay convergencia uniforme porque es necesario que la convergencia puntual de las aproximaciones sucesivas fuese &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt; en todo punto de &amp;lt;math&amp;gt;[0,1]&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos verificar que esta base también es útil con funciones reales aproximando &amp;lt;math&amp;gt;\text{Re}f &amp;lt;/math&amp;gt; con una extensión impar (representado gráficamente a continuación), precisamente &amp;lt;math&amp;gt;\text{Re}f^* &amp;lt;/math&amp;gt;. Por el mismo procedimiento, base y código, logramos de nuevo aproximaciones que convergen en norma del espacio de funciones pero no uniformemente, una vez más por el problema que causa &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;. Sin embargo, el hecho de que una base sirva para funciones reales y complejas simultáneamente es un hecho a tener en cuenta.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Errores en la aproximación.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:ErroresRef.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| Errores en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt; y uniformes. Al igual que en el caso complejo, la aproximación converge en norma pero no uniformemente: puede comprobarse que las aproximaciones tienden a &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; puntualmente en &amp;lt;math&amp;gt;x=1&amp;lt;/math&amp;gt; por haberse tomado una extensión impar, causando el error medido en la gráfica de &amp;lt;math&amp;gt;|f(1)-f_n(1)|=|1|=1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Aproximaciones mediante base trigonométrica compleja.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure2RefDMR.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure3RefDMR.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:TrapecioRefDMR.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| Aproximaciones con elementos hasta &amp;lt;math&amp;gt; n = 5,10,20 &amp;lt;/math&amp;gt;, representando en referencia tridimensional, parte real de las aproximaciones y parte imaginaria respectivamente. Mejora visiblemente, pero nótese que en los extremos difieren claramente, lo que será importante al considerar errores de aproximación. Es notable que la parte imaginaria se aproxime a la perfección: a pesar de ser una base con parte imaginaria no trivial, es capaz de aproximar valores reales con los coeficientes adecuados. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Representación gráfica de &amp;lt;math&amp;gt;Ref^*(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figura6RefDMR.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| Representando esta función real de variable real en las mismas referencias que con &amp;lt;math&amp;gt; f^* &amp;lt;/math&amp;gt;, puede comprobarse que es precisamente su proyección ortogonal en el plano horizontal, claramente con parte imaginaria nula por estar definida como parte real de una función de valores complejos.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_DMR)&amp;diff=83697</id>
		<title>Series de Fourier (Grupo DMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_DMR)&amp;diff=83697"/>
				<updated>2025-02-11T21:39:54Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: /* Extensión impar */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Series de Fourier (Grupo DMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | Daniel Rodríguez Calderón, Marcos Cabellos Hernández, Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
En un espacio de Hilbert &amp;lt;math&amp;gt;L_2(a,b)&amp;lt;/math&amp;gt;, una serie de Fourier converge en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt; a una función real de variable real, &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;, que se puede representar mediante la base trigonométrica de Fourier como&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \quad&lt;br /&gt;
f(x) \sim \frac{a_0}{2} + \sum_{n=1}^\infty\left[a_n\cos \left( nx \right) + b_n\sin \left( nx \right) \right]&lt;br /&gt;
&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esta representación nos permite, tomando una suma parcial de la serie, aproximar a &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt;. Sin embargo, la base trigonométrica no se presta a la aproximación de funciones de variable real y valores complejos. Esta carencia nos lleva a la base trigonométrica compleja: considerando seno y coseno complejos, somos capaces de aproximar funciones de variable real y valores complejos o reales indistintamente. Esta base, con dominio &amp;lt;math&amp;gt; [-\pi,\pi] &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \quad \{e^{inx}\}_{n \in \mathbb{Z}} ,&lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
será nuestro foco de atención. La obtendremos formalmente a partir de la base trigonométrica original, para luego visualizarla y comprobar su capacidad para aproximar.&lt;br /&gt;
&lt;br /&gt;
=Base trigonométrica compleja=&lt;br /&gt;
&lt;br /&gt;
Para obtener la base compleja, partamos de la trigonométrica. Por la fórmula de Euler, podemos reescribir coseno y seno de la forma &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
 \cos\theta = \frac{1}{2} (e^{i\theta} + e^{-i\theta}) &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;\quad&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \sin\theta = \frac{1}{2i} (e^{i\theta} - e^{-i\theta})&lt;br /&gt;
&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Así,  en &amp;lt;math&amp;gt; [-\pi,\pi] &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; puede representarse formalmente como&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
f(x) \sim \frac{a_0}{2} + \sum_{n=1}^\infty\left[a_n\cos \left( nx \right) + b_n\sin \left( nx \right) \right] = \frac{a_0}{2} + \sum_{n=1}^\infty\left[\frac{a_n}{2}(e^{inx}+e^{-inx})  +  \frac{b_n}{2i}(e^{inx}-e^{-inx})  \right] = c_0 + \sum_{n=1}^\infty\left[c_n e^{inx}  +c_{-n} e^{-inx}  \right]=&amp;lt;/math&amp;gt;&amp;lt;math&amp;gt; \sum_{n=0}^\infty c_n e^{inx} + \sum_{n=-\infty}^{-1} c_n e^{inx} =\sum_{n=-\infty}^\infty c_n e^{inx}, &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; c_0:=\frac{a_0}{2}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; c_n:=\frac{a_n-ib_n}{2} &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; c_{-n}:=\frac{a_n+ib_n}{2} &amp;lt;/math&amp;gt;. Decimos que este desarrollo es formal por el penúltimo paso. Notemos que estamos separando la serie en dos series. &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Base(DMR).gif|400px|thumb|right|Términos de la base &amp;lt;math&amp;gt; \{e_n := e^{ inx }\}_{n} &amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;n \in \{-1,0,1,2\}.&amp;lt;/math&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
De esta forma hemos obtenido la base trigonométrica compleja&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
 \{e_n := e^{ inx }\}_{n \in \mathbb{Z}} &lt;br /&gt;
&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
-CÓDIGO AQUÍ-&lt;br /&gt;
&lt;br /&gt;
Usando el producto escalar, comprobemos que es una base ortogonal &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(e_n,e_m)_{L^2} = \int_{-\pi}^{\pi} e_n  \overline{e_m}  \,dx = \int_{-\pi}^{\pi}  e^{inx} e^{-imx} \,dx = &lt;br /&gt;
\int_{-\pi}^{\pi} e^{(n-m)ix}  \,dx = \frac{-i}{n-m} e^{(n-m)ix} \Big|_{-\pi}^{\pi} = 0 \quad \text{si } n \neq m, \\ &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(e_n,e_n)_{L^2} = \int_{-\pi}^{\pi} e^{(n-n)ix}  \,dx = 2\pi.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aquí fijémonos en que hemos usado el producto escalar en &amp;lt;math&amp;gt;L^2(-\pi,\pi)&amp;lt;/math&amp;gt; dado por&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(f,g)_{L^2} = \int_{-\pi}^{\pi} f(x) \hspace{0.2cm}  \overline{g(x)}  \,dx &lt;br /&gt;
&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una observación relevante es que como la norma de cada elemento de la base es siempre &amp;lt;math&amp;gt; \sqrt{2\pi} &amp;lt;/math&amp;gt;, podemos ortonormalizar dividiendo precisamente por esta constante a cada elemento de la base trigonométrica compleja.&lt;br /&gt;
&lt;br /&gt;
=Extensión impar=&lt;br /&gt;
&lt;br /&gt;
Nos podemos plantear cómo aproximar la siguiente función &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-allign:justify;width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Representación gráfica de &amp;lt;math&amp;gt; f^*(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figura6DMR.jpg|200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:ImparfDMR_V2.jpg|200px]]&lt;br /&gt;
|-&lt;br /&gt;
| Representación de &amp;lt;math&amp;gt;f^*&amp;lt;/math&amp;gt; con eje &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; y el plano complejo en la parte superior, mientras que representamos abajo parte real (izquierda) e imaginaria (derecha).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
f: [0,1] \subseteq \mathbb{R} \longrightarrow \mathbb{C} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
x \mapsto 4x(\frac{1}{2} − x)^2 + ix &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notemos que el intervalo de definición no es simétrico. Extendamos &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt; de forma impar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
f^*: [-1,1] \subseteq \mathbb{R} \longrightarrow \mathbb{C} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
x \mapsto \begin{cases} 4x(\frac{1}{2} + x)^2 + ix \text{ , si } x\in [-1,0]\\&lt;br /&gt;
   &lt;br /&gt;
4x(\frac{1}{2} - x)^2 + ix \text{ , si } x\in [0,1]&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tras representar esta función en las imágenes adjuntas, sólo nos falta adaptar la base al nuevo intervalo. Comprobemos que como verifica&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\{e^{\pi n ix }\}_{n \in \mathbb{Z}} : (E_n,E_m)_{L^2} = \int_{-1}^1 E_n\overline{E_m} \,dx = \int_{-1}^1 e^{\pi (n-m)i} \,dx = \begin{cases}&lt;br /&gt;
\int_{-1}^1 1 dx = 2 \text{ , si } n = m, \\&lt;br /&gt;
0 \text{ , si } n \neq m,&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
entonces es una base ortogonal, habiéndonos basado fuertemente en la periodicidad en el intervalo para el segundo caso. Además, podríamos ortonormalizar dividiendo por la norma común a todos los elementos, &amp;lt;math&amp;gt; \sqrt{2} &amp;lt;/math&amp;gt;, por lo que podemos definir la base ortonormal&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\{E_n\}_{n \in \mathbb{Z}} := \{\frac{\sqrt{2}e^{\pi n ix }}{2}\}_{n \in \mathbb{Z}}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Aproximaciones mediante base trigonométrica compleja.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure2fDMR.jpg|250px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure3fDMR.jpg|250px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:TrapeciofDMR.jpg|250px]]&lt;br /&gt;
|-&lt;br /&gt;
| Aproximaciones con elementos hasta &amp;lt;math&amp;gt; n = 5,10,20 &amp;lt;/math&amp;gt;, representando en referencia tridimensional, parte real de las aproximaciones y parte imaginaria respectivamente. Mejora visiblemente, pero nótese que en los extremos difieren claramente, lo que será importante al considerar errores de aproximación.  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Para realizar las aproximaciones, necesitamos los coeficientes de cada elemento que consideremos, que pueden obtenerse por ortonormalidad de la base mediante el producto escalar ya que&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
f^*(x) \sim \sum_{n=-\infty}^{\infty} C_nE_n = \sum_{n=-\infty}^{\infty} C_ne^{\pi n i} \quad ,&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \quad C_n = (f^*,E_n)_{L^2} = \int_{-1}^1 f^*(x) \overline{E}_n(x) \,dx \in \mathbb{C}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos estimar estos coeficientes &amp;lt;math&amp;gt; C_n &amp;lt;/math&amp;gt; numéricamente por fórmula del trapecio, y así aproximar la función para un número dado de &amp;lt;math&amp;gt; E_n &amp;lt;/math&amp;gt;. La aproximación con los elementos de la base de &amp;lt;math&amp;gt;-n&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; será entonces&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \quad&lt;br /&gt;
f(x) \approx \sum_{i=-n}^{n} C_iE_{i|[0,1]} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Errores en la aproximación.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Erroresf.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| Errores en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt; y uniformes. La aproximación converge en norma pero no uniformemente: puede comprobarse que las aproximaciones tienden a &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; puntualmente en &amp;lt;math&amp;gt;x=1&amp;lt;/math&amp;gt; por haberse tomado una extensión impar, causando el error medido en la gráfica de &amp;lt;math&amp;gt;|f(1)-f_n(1)|=|1+i|=\sqrt{2}&amp;lt;/math&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Vemos que la aproximación mejora el error en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;, algo que esperábamos por continuidad de &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; y su extensión impar. Además, como &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; &lt;br /&gt;
f(1) \neq \frac{f^*(-1)+f^*(1)}{2}  = 0 &lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
por ser impar, las aproximaciones convergerán puntualmente a &amp;lt;math&amp;gt; 0 &amp;lt;/math&amp;gt; en el valor &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;. No hay convergencia uniforme porque es necesario que la convergencia puntual de las aproximaciones sucesivas fuese &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt; en todo punto de &amp;lt;math&amp;gt;[0,1]&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos verificar que esta base también es útil con funciones reales aproximando &amp;lt;math&amp;gt;\text{Re}f &amp;lt;/math&amp;gt; con una extensión impar (representado gráficamente a continuación), precisamente &amp;lt;math&amp;gt;\text{Re}f^* &amp;lt;/math&amp;gt;. Por el mismo procedimiento, base y código, logramos de nuevo aproximaciones que convergen en norma del espacio de funciones pero no uniformemente, una vez más por el problema que causa &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;. Sin embargo, el hecho de que una base sirva para funciones reales y complejas simultáneamente es un hecho a tener en cuenta.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Errores en la aproximación.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:ErroresRef.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| Errores en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt; y uniformes. Al igual que en el caso complejo, la aproximación converge en norma pero no uniformemente: puede comprobarse que las aproximaciones tienden a &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; puntualmente en &amp;lt;math&amp;gt;x=1&amp;lt;/math&amp;gt; por haberse tomado una extensión impar, causando el error medido en la gráfica de &amp;lt;math&amp;gt;|f(1)-f_n(1)|=|1|=1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Aproximaciones mediante base trigonométrica compleja.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure2RefDMR.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure3RefDMR.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:TrapecioRefDMR.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| Aproximaciones con elementos hasta &amp;lt;math&amp;gt; n = 5,10,20 &amp;lt;/math&amp;gt;, representando en referencia tridimensional, parte real de las aproximaciones y parte imaginaria respectivamente. Mejora visiblemente, pero nótese que en los extremos difieren claramente, lo que será importante al considerar errores de aproximación. Es notable que la parte imaginaria se aproxime a la perfección: a pesar de ser una base con parte imaginaria no trivial, es capaz de aproximar valores reales con los coeficientes adecuados. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Representación gráfica de &amp;lt;math&amp;gt;Ref^*(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figura6RefDMR.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| Representando esta función real de variable real en las mismas referencias que con &amp;lt;math&amp;gt; f^* &amp;lt;/math&amp;gt;, puede comprobarse que es precisamente su proyección ortogonal en el plano horizontal, claramente con parte imaginaria nula por estar definida como parte real de una función de valores complejos.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Código=&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_DMR)&amp;diff=83696</id>
		<title>Series de Fourier (Grupo DMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_DMR)&amp;diff=83696"/>
				<updated>2025-02-11T21:34:54Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: /* Extensión impar */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Series de Fourier (Grupo DMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | Daniel Rodríguez Calderón, Marcos Cabellos Hernández, Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
En un espacio de Hilbert &amp;lt;math&amp;gt;L_2(a,b)&amp;lt;/math&amp;gt;, una serie de Fourier converge en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt; a una función real de variable real, &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;, que se puede representar mediante la base trigonométrica de Fourier como&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \quad&lt;br /&gt;
f(x) \sim \frac{a_0}{2} + \sum_{n=1}^\infty\left[a_n\cos \left( nx \right) + b_n\sin \left( nx \right) \right]&lt;br /&gt;
&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esta representación nos permite, tomando una suma parcial de la serie, aproximar a &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt;. Sin embargo, la base trigonométrica no se presta a la aproximación de funciones de variable real y valores complejos. Esta carencia nos lleva a la base trigonométrica compleja: considerando seno y coseno complejos, somos capaces de aproximar funciones de variable real y valores complejos o reales indistintamente. Esta base, con dominio &amp;lt;math&amp;gt; [-\pi,\pi] &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \quad \{e^{inx}\}_{n \in \mathbb{Z}} ,&lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
será nuestro foco de atención. La obtendremos formalmente a partir de la base trigonométrica original, para luego visualizarla y comprobar su capacidad para aproximar.&lt;br /&gt;
&lt;br /&gt;
=Base trigonométrica compleja=&lt;br /&gt;
&lt;br /&gt;
Para obtener la base compleja, partamos de la trigonométrica. Por la fórmula de Euler, podemos reescribir coseno y seno de la forma &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
 \cos\theta = \frac{1}{2} (e^{i\theta} + e^{-i\theta}) &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;\quad&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \sin\theta = \frac{1}{2i} (e^{i\theta} - e^{-i\theta})&lt;br /&gt;
&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Así,  en &amp;lt;math&amp;gt; [-\pi,\pi] &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; puede representarse formalmente como&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
f(x) \sim \frac{a_0}{2} + \sum_{n=1}^\infty\left[a_n\cos \left( nx \right) + b_n\sin \left( nx \right) \right] = \frac{a_0}{2} + \sum_{n=1}^\infty\left[\frac{a_n}{2}(e^{inx}+e^{-inx})  +  \frac{b_n}{2i}(e^{inx}-e^{-inx})  \right] = c_0 + \sum_{n=1}^\infty\left[c_n e^{inx}  +c_{-n} e^{-inx}  \right]=&amp;lt;/math&amp;gt;&amp;lt;math&amp;gt; \sum_{n=0}^\infty c_n e^{inx} + \sum_{n=-\infty}^{-1} c_n e^{inx} =\sum_{n=-\infty}^\infty c_n e^{inx}, &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; c_0:=\frac{a_0}{2}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; c_n:=\frac{a_n-ib_n}{2} &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; c_{-n}:=\frac{a_n+ib_n}{2} &amp;lt;/math&amp;gt;. Decimos que este desarrollo es formal por el penúltimo paso. Notemos que estamos separando la serie en dos series. &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Base(DMR).gif|400px|thumb|right|Términos de la base &amp;lt;math&amp;gt; \{e_n := e^{ inx }\}_{n} &amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;n \in \{-1,0,1,2\}.&amp;lt;/math&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
De esta forma hemos obtenido la base trigonométrica compleja&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
 \{e_n := e^{ inx }\}_{n \in \mathbb{Z}} &lt;br /&gt;
&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
-CÓDIGO AQUÍ-&lt;br /&gt;
&lt;br /&gt;
Usando el producto escalar, comprobemos que es una base ortogonal &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(e_n,e_m)_{L^2} = \int_{-\pi}^{\pi} e_n  \overline{e_m}  \,dx = \int_{-\pi}^{\pi}  e^{inx} e^{-imx} \,dx = &lt;br /&gt;
\int_{-\pi}^{\pi} e^{(n-m)ix}  \,dx = \frac{-i}{n-m} e^{(n-m)ix} \Big|_{-\pi}^{\pi} = 0 \quad \text{si } n \neq m, \\ &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(e_n,e_n)_{L^2} = \int_{-\pi}^{\pi} e^{(n-n)ix}  \,dx = 2\pi.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aquí fijémonos en que hemos usado el producto escalar en &amp;lt;math&amp;gt;L^2(-\pi,\pi)&amp;lt;/math&amp;gt; dado por&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(f,g)_{L^2} = \int_{-\pi}^{\pi} f(x) \hspace{0.2cm}  \overline{g(x)}  \,dx &lt;br /&gt;
&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una observación relevante es que como la norma de cada elemento de la base es siempre &amp;lt;math&amp;gt; \sqrt{2\pi} &amp;lt;/math&amp;gt;, podemos ortonormalizar dividiendo precisamente por esta constante a cada elemento de la base trigonométrica compleja.&lt;br /&gt;
&lt;br /&gt;
=Extensión impar=&lt;br /&gt;
&lt;br /&gt;
Nos podemos plantear cómo aproximar la siguiente función &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-allign:justify;width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Representación gráfica de &amp;lt;math&amp;gt; f^*(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figura6DMR.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:ImparfDMR_V2.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| Representación de &amp;lt;math&amp;gt;f^*&amp;lt;/math&amp;gt; con eje &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; y el plano complejo en la parte superior, mientras que representamos abajo parte real (izquierda) e imaginaria (derecha).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
f: [0,1] \subseteq \mathbb{R} \longrightarrow \mathbb{C} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
x \mapsto 4x(\frac{1}{2} − x)^2 + ix &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notemos que el intervalo de definición no es simétrico. Extendamos &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt; de forma impar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
f^*: [-1,1] \subseteq \mathbb{R} \longrightarrow \mathbb{C} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
x \mapsto \begin{cases} 4x(\frac{1}{2} + x)^2 + ix \text{ , si } x\in [-1,0]\\&lt;br /&gt;
   &lt;br /&gt;
4x(\frac{1}{2} - x)^2 + ix \text{ , si } x\in [0,1]&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tras representar esta función en las imágenes adjuntas, sólo nos falta adaptar la base al nuevo intervalo. Comprobemos que como verifica&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\{e^{\pi n ix }\}_{n \in \mathbb{Z}} : (E_n,E_m)_{L^2} = \int_{-1}^1 E_n\overline{E_m} \,dx = \int_{-1}^1 e^{\pi (n-m)i} \,dx = \begin{cases}&lt;br /&gt;
\int_{-1}^1 1 dx = 2 \text{ , si } n = m, \\&lt;br /&gt;
0 \text{ , si } n \neq m,&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
entonces es una base ortogonal, habiéndonos basado fuertemente en la periodicidad en el intervalo para el segundo caso. Además, podríamos ortonormalizar dividiendo por la norma común a todos los elementos, &amp;lt;math&amp;gt; \sqrt{2} &amp;lt;/math&amp;gt;, por lo que podemos definir la base ortonormal&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\{E_n\}_{n \in \mathbb{Z}} := \{\frac{\sqrt{2}e^{\pi n ix }}{2}\}_{n \in \mathbb{Z}}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para realizar las aproximaciones, necesitamos los coeficientes de cada elemento que consideremos, que pueden obtenerse por ortonormalidad de la base mediante el producto escalar ya que&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
f^*(x) \sim \sum_{n=-\infty}^{\infty} C_nE_n = \sum_{n=-\infty}^{\infty} C_ne^{\pi n i} \quad , \quad C_n = (f^*,E_n)_{L^2} = \int_{-1}^1 f^*(x) \overline{E}_n(x) \,dx \in \mathbb{C}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos estimar estos coeficientes &amp;lt;math&amp;gt; C_n &amp;lt;/math&amp;gt; numéricamente por fórmula del trapecio, y así aproximar la función para un número dado de &amp;lt;math&amp;gt; E_n &amp;lt;/math&amp;gt;. La aproximación con los elementos de la base de &amp;lt;math&amp;gt;-n&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; será entonces&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \quad&lt;br /&gt;
f(x) \approx \sum_{i=-n}^{n} C_iE_{i|[0,1]} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Aproximaciones mediante base trigonométrica compleja.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure2fDMR.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure3fDMR.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:TrapeciofDMR.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| Aproximaciones con elementos hasta &amp;lt;math&amp;gt; n = 5,10,20 &amp;lt;/math&amp;gt;, representando en referencia tridimensional, parte real de las aproximaciones y parte imaginaria respectivamente. Mejora visiblemente, pero nótese que en los extremos difieren claramente, lo que será importante al considerar errores de aproximación.  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Errores en la aproximación.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Erroresf.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| Errores en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt; y uniformes. La aproximación converge en norma pero no uniformemente: puede comprobarse que las aproximaciones tienden a &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; puntualmente en &amp;lt;math&amp;gt;x=1&amp;lt;/math&amp;gt; por haberse tomado una extensión impar, causando el error medido en la gráfica de &amp;lt;math&amp;gt;|f(1)-f_n(1)|=|1+i|=\sqrt{2}&amp;lt;/math&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:ErroresRef.jpg|200px|thumb|left|texto alternativo]]&lt;br /&gt;
[[Archivo:Figura6RefDMR.jpg|200px|thumb|left|texto alternativo]]&lt;br /&gt;
[[Archivo:Figure2RefDMR.jpg|200px|thumb|left|texto alternativo]]&lt;br /&gt;
[[Archivo:Figure3fDMR.jpg|200px|thumb|left|texto alternativo]]&lt;br /&gt;
[[Archivo:Figure3RefDMR.jpg|200px|thumb|left|texto alternativo]]&lt;br /&gt;
[[Archivo:ImparfDMR.jpg|200px|thumb|right|texto alternativo]]&lt;br /&gt;
[[Archivo:TrapeciofDMR.jpg|200px|thumb|left|texto alternativo]]&lt;br /&gt;
[[Archivo:TrapecioRefDMR.jpg|200px|thumb|left|texto alternativo]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vemos que la aproximación mejora el error en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;, algo que esperábamos por continuidad de &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; y su extensión impar. Además, como &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; &lt;br /&gt;
f(1) \neq \frac{f^*(-1)+f^*(1)}{2}  = 0 &lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
por ser impar, las aproximaciones convergerán puntualmente a &amp;lt;math&amp;gt; 0 &amp;lt;/math&amp;gt; en el valor &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;. No hay convergencia uniforme porque es necesario que la convergencia puntual de las aproximaciones sucesivas fuese &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt; en todo punto de &amp;lt;math&amp;gt;[0,1]&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos verificar que esta base también es útil con funciones reales aproximando &amp;lt;math&amp;gt;\text{Re}f &amp;lt;/math&amp;gt; con una extensión impar (representado gráficamente a continuación), precisamente &amp;lt;math&amp;gt;\text{Re}f^* &amp;lt;/math&amp;gt;. Por el mismo procedimiento, base y código, logramos de nuevo aproximaciones que convergen en norma del espacio de funciones pero no uniformemente, una vez más por el problema que causa &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;. Sin embargo, el hecho de que una base sirva para funciones reales y complejas simultáneamente es un hecho a tener en cuenta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Representación gráfica de &amp;lt;math&amp;gt;Ref^*(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figura6RefDMR.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| Representando esta función real de variable real en las mismas referencias que con &amp;lt;math&amp;gt; f^* &amp;lt;/math&amp;gt;, puede comprobarse que es precisamente su proyección ortogonal en el plano horizontal, claramente con parte imaginaria nula por estar definida como parte real de una función de valores complejos.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Aproximaciones mediante base trigonométrica compleja.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure2RefDMR.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure3RefDMR.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:TrapecioRefDMR.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| Aproximaciones con elementos hasta &amp;lt;math&amp;gt; n = 5,10,20 &amp;lt;/math&amp;gt;, representando en referencia tridimensional, parte real de las aproximaciones y parte imaginaria respectivamente. Mejora visiblemente, pero nótese que en los extremos difieren claramente, lo que será importante al considerar errores de aproximación. Es notable que la parte imaginaria se aproxime a la perfección: a pesar de ser una base con parte imaginaria no trivial, es capaz de aproximar valores reales con los coeficientes adecuados. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Errores en la aproximación.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:ErroresRef.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| Errores en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt; y uniformes. Al igual que en el caso complejo, la aproximación converge en norma pero no uniformemente: puede comprobarse que las aproximaciones tienden a &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; puntualmente en &amp;lt;math&amp;gt;x=1&amp;lt;/math&amp;gt; por haberse tomado una extensión impar, causando el error medido en la gráfica de &amp;lt;math&amp;gt;|f(1)-f_n(1)|=|1|=1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Código=&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_DMR)&amp;diff=83695</id>
		<title>Series de Fourier (Grupo DMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_DMR)&amp;diff=83695"/>
				<updated>2025-02-11T21:29:15Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: /* Extensión impar */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Series de Fourier (Grupo DMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | Daniel Rodríguez Calderón, Marcos Cabellos Hernández, Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
En un espacio de Hilbert &amp;lt;math&amp;gt;L_2(a,b)&amp;lt;/math&amp;gt;, una serie de Fourier converge en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt; a una función real de variable real, &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;, que se puede representar mediante la base trigonométrica de Fourier como&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \quad&lt;br /&gt;
f(x) \sim \frac{a_0}{2} + \sum_{n=1}^\infty\left[a_n\cos \left( nx \right) + b_n\sin \left( nx \right) \right]&lt;br /&gt;
&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esta representación nos permite, tomando una suma parcial de la serie, aproximar a &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt;. Sin embargo, la base trigonométrica no se presta a la aproximación de funciones de variable real y valores complejos. Esta carencia nos lleva a la base trigonométrica compleja: considerando seno y coseno complejos, somos capaces de aproximar funciones de variable real y valores complejos o reales indistintamente. Esta base, con dominio &amp;lt;math&amp;gt; [-\pi,\pi] &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \quad \{e^{inx}\}_{n \in \mathbb{Z}} ,&lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
será nuestro foco de atención. La obtendremos formalmente a partir de la base trigonométrica original, para luego visualizarla y comprobar su capacidad para aproximar.&lt;br /&gt;
&lt;br /&gt;
=Base trigonométrica compleja=&lt;br /&gt;
&lt;br /&gt;
Para obtener la base compleja, partamos de la trigonométrica. Por la fórmula de Euler, podemos reescribir coseno y seno de la forma &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
 \cos\theta = \frac{1}{2} (e^{i\theta} + e^{-i\theta}) &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;\quad&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \sin\theta = \frac{1}{2i} (e^{i\theta} - e^{-i\theta})&lt;br /&gt;
&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Así,  en &amp;lt;math&amp;gt; [-\pi,\pi] &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; puede representarse formalmente como&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
f(x) \sim \frac{a_0}{2} + \sum_{n=1}^\infty\left[a_n\cos \left( nx \right) + b_n\sin \left( nx \right) \right] = \frac{a_0}{2} + \sum_{n=1}^\infty\left[\frac{a_n}{2}(e^{inx}+e^{-inx})  +  \frac{b_n}{2i}(e^{inx}-e^{-inx})  \right] = c_0 + \sum_{n=1}^\infty\left[c_n e^{inx}  +c_{-n} e^{-inx}  \right]=&amp;lt;/math&amp;gt;&amp;lt;math&amp;gt; \sum_{n=0}^\infty c_n e^{inx} + \sum_{n=-\infty}^{-1} c_n e^{inx} =\sum_{n=-\infty}^\infty c_n e^{inx}, &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; c_0:=\frac{a_0}{2}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; c_n:=\frac{a_n-ib_n}{2} &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; c_{-n}:=\frac{a_n+ib_n}{2} &amp;lt;/math&amp;gt;. Decimos que este desarrollo es formal por el penúltimo paso. Notemos que estamos separando la serie en dos series. &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Base(DMR).gif|400px|thumb|right|Términos de la base &amp;lt;math&amp;gt; \{e_n := e^{ inx }\}_{n} &amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;n \in \{-1,0,1,2\}.&amp;lt;/math&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
De esta forma hemos obtenido la base trigonométrica compleja&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
 \{e_n := e^{ inx }\}_{n \in \mathbb{Z}} &lt;br /&gt;
&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
-CÓDIGO AQUÍ-&lt;br /&gt;
&lt;br /&gt;
Usando el producto escalar, comprobemos que es una base ortogonal &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(e_n,e_m)_{L^2} = \int_{-\pi}^{\pi} e_n  \overline{e_m}  \,dx = \int_{-\pi}^{\pi}  e^{inx} e^{-imx} \,dx = &lt;br /&gt;
\int_{-\pi}^{\pi} e^{(n-m)ix}  \,dx = \frac{-i}{n-m} e^{(n-m)ix} \Big|_{-\pi}^{\pi} = 0 \quad \text{si } n \neq m, \\ &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(e_n,e_n)_{L^2} = \int_{-\pi}^{\pi} e^{(n-n)ix}  \,dx = 2\pi.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aquí fijémonos en que hemos usado el producto escalar en &amp;lt;math&amp;gt;L^2(-\pi,\pi)&amp;lt;/math&amp;gt; dado por&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(f,g)_{L^2} = \int_{-\pi}^{\pi} f(x) \hspace{0.2cm}  \overline{g(x)}  \,dx &lt;br /&gt;
&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una observación relevante es que como la norma de cada elemento de la base es siempre &amp;lt;math&amp;gt; \sqrt{2\pi} &amp;lt;/math&amp;gt;, podemos ortonormalizar dividiendo precisamente por esta constante a cada elemento de la base trigonométrica compleja.&lt;br /&gt;
&lt;br /&gt;
=Extensión impar=&lt;br /&gt;
&lt;br /&gt;
Nos podemos plantear cómo aproximar la siguiente función &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
f: [0,1] \subseteq \mathbb{R} \longrightarrow \mathbb{C} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
x \mapsto 4x(\frac{1}{2} − x)^2 + ix &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notemos que el intervalo de definición no es simétrico. Extendamos &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt; de forma impar&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-allign:justify;width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Representación gráfica de &amp;lt;math&amp;gt; f^*(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figura6DMR.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:ImparfDMR_V2.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| Representación de &amp;lt;math&amp;gt;f^*&amp;lt;/math&amp;gt; con eje &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; y el plano complejo en la parte superior, mientras que representamos abajo parte real (izquierda) e imaginaria (derecha).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
f^*: [-1,1] \subseteq \mathbb{R} \longrightarrow \mathbb{C} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
x \mapsto \begin{cases} 4x(\frac{1}{2} + x)^2 + ix \text{ , si } x\in [-1,0]\\&lt;br /&gt;
   &lt;br /&gt;
4x(\frac{1}{2} - x)^2 + ix \text{ , si } x\in [0,1]&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tras representar esta función en las imágenes adjuntas, sólo nos falta adaptar la base al nuevo intervalo. Comprobemos que como verifica&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\{e^{\pi n ix }\}_{n \in \mathbb{Z}} : (E_n,E_m)_{L^2} = \int_{-1}^1 E_n\overline{E_m} \,dx = \int_{-1}^1 e^{\pi (n-m)i} \,dx = \begin{cases}&lt;br /&gt;
\int_{-1}^1 1 dx = 2 \text{ , si } n = m, \\&lt;br /&gt;
0 \text{ , si } n \neq m,&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
entonces es una base ortogonal, habiéndonos basado fuertemente en la periodicidad en el intervalo para el segundo caso. Además, podríamos ortonormalizar dividiendo por la norma común a todos los elementos, &amp;lt;math&amp;gt; \sqrt{2} &amp;lt;/math&amp;gt;, por lo que podemos definir la base ortonormal&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\{E_n\}_{n \in \mathbb{Z}} := \{\frac{\sqrt{2}e^{\pi n ix }}{2}\}_{n \in \mathbb{Z}}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para realizar las aproximaciones, necesitamos los coeficientes de cada elemento que consideremos, que pueden obtenerse por ortonormalidad de la base mediante el producto escalar ya que&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
f^*(x) \sim \sum_{n=-\infty}^{\infty} C_nE_n = \sum_{n=-\infty}^{\infty} C_ne^{\pi n i} \quad , \quad C_n = (f^*,E_n)_{L^2} = \int_{-1}^1 f^*(x) \overline{E}_n(x) \,dx \in \mathbb{C}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos estimar estos coeficientes &amp;lt;math&amp;gt; C_n &amp;lt;/math&amp;gt; numéricamente por fórmula del trapecio, y así aproximar la función para un número dado de &amp;lt;math&amp;gt; E_n &amp;lt;/math&amp;gt;. La aproximación con los elementos de la base de &amp;lt;math&amp;gt;-n&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; será entonces&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \quad&lt;br /&gt;
f(x) \approx \sum_{i=-n}^{n} C_iE_{i|[0,1]} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Aproximaciones mediante base trigonométrica compleja.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure2fDMR.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure3fDMR.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:TrapeciofDMR.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| Aproximaciones con elementos hasta &amp;lt;math&amp;gt; n = 5,10,20 &amp;lt;/math&amp;gt;, representando en referencia tridimensional, parte real de las aproximaciones y parte imaginaria respectivamente. Mejora visiblemente, pero nótese que en los extremos difieren claramente, lo que será importante al considerar errores de aproximación.  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Errores en la aproximación.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Erroresf.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| Errores en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt; y uniformes. La aproximación converge en norma pero no uniformemente: puede comprobarse que las aproximaciones tienden a &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; puntualmente en &amp;lt;math&amp;gt;x=1&amp;lt;/math&amp;gt; por haberse tomado una extensión impar, causando el error medido en la gráfica de &amp;lt;math&amp;gt;|f(1)|=|1+i|=\sqrt{2}&amp;lt;/math&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:ErroresRef.jpg|200px|thumb|left|texto alternativo]]&lt;br /&gt;
[[Archivo:Figura6RefDMR.jpg|200px|thumb|left|texto alternativo]]&lt;br /&gt;
[[Archivo:Figure2RefDMR.jpg|200px|thumb|left|texto alternativo]]&lt;br /&gt;
[[Archivo:Figure3fDMR.jpg|200px|thumb|left|texto alternativo]]&lt;br /&gt;
[[Archivo:Figure3RefDMR.jpg|200px|thumb|left|texto alternativo]]&lt;br /&gt;
[[Archivo:ImparfDMR.jpg|200px|thumb|right|texto alternativo]]&lt;br /&gt;
[[Archivo:TrapeciofDMR.jpg|200px|thumb|left|texto alternativo]]&lt;br /&gt;
[[Archivo:TrapecioRefDMR.jpg|200px|thumb|left|texto alternativo]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vemos que la aproximación mejora el error en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;, algo que esperábamos por continuidad de &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; y su extensión impar. Además, como &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; &lt;br /&gt;
f(1) \neq \frac{f^*(-1)+f^*(1)}{2}  = 0 &lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
por ser impar, las aproximaciones convergerán puntualmente a &amp;lt;math&amp;gt; 0 &amp;lt;/math&amp;gt; en el valor &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;. No hay convergencia uniforme porque es necesario que la convergencia puntual de las aproximaciones sucesivas fuese &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt; en todo punto de &amp;lt;math&amp;gt;[0,1]&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos verificar que esta base también es útil con funciones reales aproximando &amp;lt;math&amp;gt;\text{Re}f &amp;lt;/math&amp;gt; con una extensión impar (representado gráficamente a continuación), precisamente &amp;lt;math&amp;gt;\text{Re}f^* &amp;lt;/math&amp;gt;. Por el mismo procedimiento, base y código, logramos de nuevo aproximaciones que convergen en norma del espacio de funciones pero no uniformemente, una vez más por el problema que causa &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;. Sin embargo, el hecho de que una base sirva para funciones reales y complejas simultáneamente es un hecho a tener en cuenta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Representación gráfica de &amp;lt;math&amp;gt;Ref^*(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figura6RefDMR.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| Representando esta función real de variable real en las mismas referencias que con &amp;lt;math&amp;gt; f^* &amp;lt;/math&amp;gt;, puede comprobarse que es precisamente su proyección ortogonal en el plano horizontal, claramente con parte imaginaria nula por estar definida como parte real de una función de valores complejos.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Representación gráfica de &amp;lt;math&amp;gt;Ref^*(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure2RefDMR.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| Representando esta función real de variable real en las mismas referencias que con &amp;lt;math&amp;gt; f^* &amp;lt;/math&amp;gt;, puede comprobarse que es precisamente su proyección ortogonal en el plano horizontal, claramente con parte imaginaria nula por estar definida como parte real de una función de valores complejos.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Código=&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_DMR)&amp;diff=83694</id>
		<title>Series de Fourier (Grupo DMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_DMR)&amp;diff=83694"/>
				<updated>2025-02-11T21:27:33Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: /* Extensión impar */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Series de Fourier (Grupo DMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | Daniel Rodríguez Calderón, Marcos Cabellos Hernández, Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
En un espacio de Hilbert &amp;lt;math&amp;gt;L_2(a,b)&amp;lt;/math&amp;gt;, una serie de Fourier converge en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt; a una función real de variable real, &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;, que se puede representar mediante la base trigonométrica de Fourier como&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \quad&lt;br /&gt;
f(x) \sim \frac{a_0}{2} + \sum_{n=1}^\infty\left[a_n\cos \left( nx \right) + b_n\sin \left( nx \right) \right]&lt;br /&gt;
&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esta representación nos permite, tomando una suma parcial de la serie, aproximar a &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt;. Sin embargo, la base trigonométrica no se presta a la aproximación de funciones de variable real y valores complejos. Esta carencia nos lleva a la base trigonométrica compleja: considerando seno y coseno complejos, somos capaces de aproximar funciones de variable real y valores complejos o reales indistintamente. Esta base, con dominio &amp;lt;math&amp;gt; [-\pi,\pi] &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \quad \{e^{inx}\}_{n \in \mathbb{Z}} ,&lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
será nuestro foco de atención. La obtendremos formalmente a partir de la base trigonométrica original, para luego visualizarla y comprobar su capacidad para aproximar.&lt;br /&gt;
&lt;br /&gt;
=Base trigonométrica compleja=&lt;br /&gt;
&lt;br /&gt;
Para obtener la base compleja, partamos de la trigonométrica. Por la fórmula de Euler, podemos reescribir coseno y seno de la forma &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
 \cos\theta = \frac{1}{2} (e^{i\theta} + e^{-i\theta}) &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;\quad&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \sin\theta = \frac{1}{2i} (e^{i\theta} - e^{-i\theta})&lt;br /&gt;
&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Así,  en &amp;lt;math&amp;gt; [-\pi,\pi] &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; puede representarse formalmente como&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
f(x) \sim \frac{a_0}{2} + \sum_{n=1}^\infty\left[a_n\cos \left( nx \right) + b_n\sin \left( nx \right) \right] = \frac{a_0}{2} + \sum_{n=1}^\infty\left[\frac{a_n}{2}(e^{inx}+e^{-inx})  +  \frac{b_n}{2i}(e^{inx}-e^{-inx})  \right] = c_0 + \sum_{n=1}^\infty\left[c_n e^{inx}  +c_{-n} e^{-inx}  \right]=&amp;lt;/math&amp;gt;&amp;lt;math&amp;gt; \sum_{n=0}^\infty c_n e^{inx} + \sum_{n=-\infty}^{-1} c_n e^{inx} =\sum_{n=-\infty}^\infty c_n e^{inx}, &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; c_0:=\frac{a_0}{2}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; c_n:=\frac{a_n-ib_n}{2} &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; c_{-n}:=\frac{a_n+ib_n}{2} &amp;lt;/math&amp;gt;. Decimos que este desarrollo es formal por el penúltimo paso. Notemos que estamos separando la serie en dos series. &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Base(DMR).gif|400px|thumb|right|Términos de la base &amp;lt;math&amp;gt; \{e_n := e^{ inx }\}_{n} &amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;n \in \{-1,0,1,2\}.&amp;lt;/math&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
De esta forma hemos obtenido la base trigonométrica compleja&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
 \{e_n := e^{ inx }\}_{n \in \mathbb{Z}} &lt;br /&gt;
&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
-CÓDIGO AQUÍ-&lt;br /&gt;
&lt;br /&gt;
Usando el producto escalar, comprobemos que es una base ortogonal &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(e_n,e_m)_{L^2} = \int_{-\pi}^{\pi} e_n  \overline{e_m}  \,dx = \int_{-\pi}^{\pi}  e^{inx} e^{-imx} \,dx = &lt;br /&gt;
\int_{-\pi}^{\pi} e^{(n-m)ix}  \,dx = \frac{-i}{n-m} e^{(n-m)ix} \Big|_{-\pi}^{\pi} = 0 \quad \text{si } n \neq m, \\ &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(e_n,e_n)_{L^2} = \int_{-\pi}^{\pi} e^{(n-n)ix}  \,dx = 2\pi.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aquí fijémonos en que hemos usado el producto escalar en &amp;lt;math&amp;gt;L^2(-\pi,\pi)&amp;lt;/math&amp;gt; dado por&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(f,g)_{L^2} = \int_{-\pi}^{\pi} f(x) \hspace{0.2cm}  \overline{g(x)}  \,dx &lt;br /&gt;
&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una observación relevante es que como la norma de cada elemento de la base es siempre &amp;lt;math&amp;gt; \sqrt{2\pi} &amp;lt;/math&amp;gt;, podemos ortonormalizar dividiendo precisamente por esta constante a cada elemento de la base trigonométrica compleja.&lt;br /&gt;
&lt;br /&gt;
=Extensión impar=&lt;br /&gt;
&lt;br /&gt;
Nos podemos plantear cómo aproximar la siguiente función &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
f: [0,1] \subseteq \mathbb{R} \longrightarrow \mathbb{C} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
x \mapsto 4x(\frac{1}{2} − x)^2 + ix &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notemos que el intervalo de definición no es simétrico. Extendamos &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt; de forma impar&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-allign:justify;width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Representación gráfica de &amp;lt;math&amp;gt; f^*(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figura6DMR.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:ImparfDMR_V2.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| Representación de &amp;lt;math&amp;gt;f^*&amp;lt;/math&amp;gt; con eje &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; y el plano complejo en la parte superior, mientras que representamos abajo parte real (izquierda) e imaginaria (derecha).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
f^*: [-1,1] \subseteq \mathbb{R} \longrightarrow \mathbb{C} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
x \mapsto \begin{cases} 4x(\frac{1}{2} + x)^2 + ix \text{ , si } x\in [-1,0]\\&lt;br /&gt;
   &lt;br /&gt;
4x(\frac{1}{2} - x)^2 + ix \text{ , si } x\in [0,1]&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tras representar esta función en las imágenes adjuntas, sólo nos falta adaptar la base al nuevo intervalo. Comprobemos que como verifica&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\{e^{\pi n ix }\}_{n \in \mathbb{Z}} : (E_n,E_m)_{L^2} = \int_{-1}^1 E_n\overline{E_m} \,dx = \int_{-1}^1 e^{\pi (n-m)i} \,dx = \begin{cases}&lt;br /&gt;
\int_{-1}^1 1 dx = 2 \text{ , si } n = m, \\&lt;br /&gt;
0 \text{ , si } n \neq m,&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
entonces es una base ortogonal, habiéndonos basado fuertemente en la periodicidad en el intervalo para el segundo caso. Además, podríamos ortonormalizar dividiendo por la norma común a todos los elementos, &amp;lt;math&amp;gt; \sqrt{2} &amp;lt;/math&amp;gt;, por lo que podemos definir la base ortonormal&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\{E_n\}_{n \in \mathbb{Z}} := \{\frac{\sqrt{2}e^{\pi n ix }}{2}\}_{n \in \mathbb{Z}}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para realizar las aproximaciones, necesitamos los coeficientes de cada elemento que consideremos, que pueden obtenerse por ortonormalidad de la base mediante el producto escalar ya que&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
f^*(x) \sim \sum_{n=-\infty}^{\infty} C_nE_n = \sum_{n=-\infty}^{\infty} C_ne^{\pi n i} \quad , \quad C_n = (f^*,E_n)_{L^2} = \int_{-1}^1 f^*(x) \overline{E}_n(x) \,dx \in \mathbb{C}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos estimar estos coeficientes &amp;lt;math&amp;gt; C_n &amp;lt;/math&amp;gt; numéricamente por fórmula del trapecio, y así aproximar la función para un número dado de &amp;lt;math&amp;gt; E_n &amp;lt;/math&amp;gt;. La aproximación con los elementos de la base de &amp;lt;math&amp;gt;-n&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; será entonces&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \quad&lt;br /&gt;
f(x) \approx \sum_{i=-n}^{n} C_iE_{i|[0,1]} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Aproximaciones mediante base trigonométrica compleja.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure2fDMR.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure3fDMR.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:TrapeciofDMR.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| Aproximaciones con elementos hasta &amp;lt;math&amp;gt; n = 5,10,20. &amp;lt;/math&amp;gt; Mejora visiblemente, pero nótese que en los extremos difieren claramente.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Errores en la aproximación.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Erroresf.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| Errores en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt; y uniformes. La aproximación converge en norma pero no uniformemente: puede comprobarse que las aproximaciones tienden a &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; puntualmente en &amp;lt;math&amp;gt;x=1&amp;lt;/math&amp;gt; por haberse tomado una extensión impar, causando el error medido en la gráfica de &amp;lt;math&amp;gt;|f(1)|=|1+i|=\sqrt{2}&amp;lt;/math&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:ErroresRef.jpg|200px|thumb|left|texto alternativo]]&lt;br /&gt;
[[Archivo:Figura6RefDMR.jpg|200px|thumb|left|texto alternativo]]&lt;br /&gt;
[[Archivo:Figure2RefDMR.jpg|200px|thumb|left|texto alternativo]]&lt;br /&gt;
[[Archivo:Figure3fDMR.jpg|200px|thumb|left|texto alternativo]]&lt;br /&gt;
[[Archivo:Figure3RefDMR.jpg|200px|thumb|left|texto alternativo]]&lt;br /&gt;
[[Archivo:ImparfDMR.jpg|200px|thumb|right|texto alternativo]]&lt;br /&gt;
[[Archivo:TrapeciofDMR.jpg|200px|thumb|left|texto alternativo]]&lt;br /&gt;
[[Archivo:TrapecioRefDMR.jpg|200px|thumb|left|texto alternativo]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vemos que la aproximación mejora el error en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;, algo que esperábamos por continuidad de &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; y su extensión impar. Además, como &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; &lt;br /&gt;
f(1) \neq \frac{f^*(-1)+f^*(1)}{2}  = 0 &lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
por ser impar, las aproximaciones convergerán puntualmente a &amp;lt;math&amp;gt; 0 &amp;lt;/math&amp;gt; en el valor &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;. No hay convergencia uniforme porque es necesario que la convergencia puntual de las aproximaciones sucesivas fuese &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt; en todo punto de &amp;lt;math&amp;gt;[0,1]&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos verificar que esta base también es útil con funciones reales aproximando &amp;lt;math&amp;gt;\text{Re}f &amp;lt;/math&amp;gt; con una extensión impar (representado gráficamente a continuación), precisamente &amp;lt;math&amp;gt;\text{Re}f^* &amp;lt;/math&amp;gt;. Por el mismo procedimiento, base y código, logramos de nuevo aproximaciones que convergen en norma del espacio de funciones pero no uniformemente, una vez más por el problema que causa &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;. Sin embargo, el hecho de que una base sirva para funciones reales y complejas simultáneamente es un hecho a tener en cuenta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Representación gráfica de &amp;lt;math&amp;gt;Ref^*(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figura6RefDMR.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| Representando esta función real de variable real en las mismas referencias que con &amp;lt;math&amp;gt; f^* &amp;lt;/math&amp;gt;, puede comprobarse que es precisamente su proyección ortogonal en el plano horizontal, claramente con parte imaginaria nula por estar definida como parte real de una función de valores complejos.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:justify; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Representación gráfica de &amp;lt;math&amp;gt;Ref^*(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure2RefDMR.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| Representando esta función real de variable real en las mismas referencias que con &amp;lt;math&amp;gt; f^* &amp;lt;/math&amp;gt;, puede comprobarse que es precisamente su proyección ortogonal en el plano horizontal, claramente con parte imaginaria nula por estar definida como parte real de una función de valores complejos.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Código=&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_DMR)&amp;diff=83693</id>
		<title>Series de Fourier (Grupo DMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_DMR)&amp;diff=83693"/>
				<updated>2025-02-11T21:24:28Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: /* Extensión impar */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Series de Fourier (Grupo DMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | Daniel Rodríguez Calderón, Marcos Cabellos Hernández, Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
En un espacio de Hilbert &amp;lt;math&amp;gt;L_2(a,b)&amp;lt;/math&amp;gt;, una serie de Fourier converge en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt; a una función real de variable real, &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;, que se puede representar mediante la base trigonométrica de Fourier como&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \quad&lt;br /&gt;
f(x) \sim \frac{a_0}{2} + \sum_{n=1}^\infty\left[a_n\cos \left( nx \right) + b_n\sin \left( nx \right) \right]&lt;br /&gt;
&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esta representación nos permite, tomando una suma parcial de la serie, aproximar a &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt;. Sin embargo, la base trigonométrica no se presta a la aproximación de funciones de variable real y valores complejos. Esta carencia nos lleva a la base trigonométrica compleja: considerando seno y coseno complejos, somos capaces de aproximar funciones de variable real y valores complejos o reales indistintamente. Esta base, con dominio &amp;lt;math&amp;gt; [-\pi,\pi] &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \quad \{e^{inx}\}_{n \in \mathbb{Z}} ,&lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
será nuestro foco de atención. La obtendremos formalmente a partir de la base trigonométrica original, para luego visualizarla y comprobar su capacidad para aproximar.&lt;br /&gt;
&lt;br /&gt;
=Base trigonométrica compleja=&lt;br /&gt;
&lt;br /&gt;
Para obtener la base compleja, partamos de la trigonométrica. Por la fórmula de Euler, podemos reescribir coseno y seno de la forma &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
 \cos\theta = \frac{1}{2} (e^{i\theta} + e^{-i\theta}) &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;\quad&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \sin\theta = \frac{1}{2i} (e^{i\theta} - e^{-i\theta})&lt;br /&gt;
&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Así,  en &amp;lt;math&amp;gt; [-\pi,\pi] &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; puede representarse formalmente como&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
f(x) \sim \frac{a_0}{2} + \sum_{n=1}^\infty\left[a_n\cos \left( nx \right) + b_n\sin \left( nx \right) \right] = \frac{a_0}{2} + \sum_{n=1}^\infty\left[\frac{a_n}{2}(e^{inx}+e^{-inx})  +  \frac{b_n}{2i}(e^{inx}-e^{-inx})  \right] = c_0 + \sum_{n=1}^\infty\left[c_n e^{inx}  +c_{-n} e^{-inx}  \right]=&amp;lt;/math&amp;gt;&amp;lt;math&amp;gt; \sum_{n=0}^\infty c_n e^{inx} + \sum_{n=-\infty}^{-1} c_n e^{inx} =\sum_{n=-\infty}^\infty c_n e^{inx}, &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; c_0:=\frac{a_0}{2}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; c_n:=\frac{a_n-ib_n}{2} &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; c_{-n}:=\frac{a_n+ib_n}{2} &amp;lt;/math&amp;gt;. Decimos que este desarrollo es formal por el penúltimo paso. Notemos que estamos separando la serie en dos series. &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Base(DMR).gif|400px|thumb|right|Términos de la base &amp;lt;math&amp;gt; \{e_n := e^{ inx }\}_{n} &amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;n \in \{-1,0,1,2\}.&amp;lt;/math&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
De esta forma hemos obtenido la base trigonométrica compleja&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
 \{e_n := e^{ inx }\}_{n \in \mathbb{Z}} &lt;br /&gt;
&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
-CÓDIGO AQUÍ-&lt;br /&gt;
&lt;br /&gt;
Usando el producto escalar, comprobemos que es una base ortogonal &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(e_n,e_m)_{L^2} = \int_{-\pi}^{\pi} e_n  \overline{e_m}  \,dx = \int_{-\pi}^{\pi}  e^{inx} e^{-imx} \,dx = &lt;br /&gt;
\int_{-\pi}^{\pi} e^{(n-m)ix}  \,dx = \frac{-i}{n-m} e^{(n-m)ix} \Big|_{-\pi}^{\pi} = 0 \quad \text{si } n \neq m, \\ &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(e_n,e_n)_{L^2} = \int_{-\pi}^{\pi} e^{(n-n)ix}  \,dx = 2\pi.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aquí fijémonos en que hemos usado el producto escalar en &amp;lt;math&amp;gt;L^2(-\pi,\pi)&amp;lt;/math&amp;gt; dado por&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(f,g)_{L^2} = \int_{-\pi}^{\pi} f(x) \hspace{0.2cm}  \overline{g(x)}  \,dx &lt;br /&gt;
&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una observación relevante es que como la norma de cada elemento de la base es siempre &amp;lt;math&amp;gt; \sqrt{2\pi} &amp;lt;/math&amp;gt;, podemos ortonormalizar dividiendo precisamente por esta constante a cada elemento de la base trigonométrica compleja.&lt;br /&gt;
&lt;br /&gt;
=Extensión impar=&lt;br /&gt;
&lt;br /&gt;
Nos podemos plantear cómo aproximar la siguiente función &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
f: [0,1] \subseteq \mathbb{R} \longrightarrow \mathbb{C} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
x \mapsto 4x(\frac{1}{2} − x)^2 + ix &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notemos que el intervalo de definición no es simétrico. Extendamos &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt; de forma impar&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Representación gráfica de &amp;lt;math&amp;gt; f^*(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figura6DMR.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:ImparfDMR_V2.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| Representación de &amp;lt;math&amp;gt;f^*&amp;lt;/math&amp;gt; con eje &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; y el plano complejo en la parte superior, mientras que representamos abajo parte real (izquierda) e imaginaria (derecha).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
f^*: [-1,1] \subseteq \mathbb{R} \longrightarrow \mathbb{C} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
x \mapsto \begin{cases} 4x(\frac{1}{2} + x)^2 + ix \text{ , si } x\in [-1,0]\\&lt;br /&gt;
   &lt;br /&gt;
4x(\frac{1}{2} - x)^2 + ix \text{ , si } x\in [0,1]&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tras representar esta función en las imágenes adjuntas, sólo nos falta adaptar la base al nuevo intervalo. Comprobemos que como verifica&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\{e^{\pi n ix }\}_{n \in \mathbb{Z}} : (E_n,E_m)_{L^2} = \int_{-1}^1 E_n\overline{E_m} \,dx = \int_{-1}^1 e^{\pi (n-m)i} \,dx = \begin{cases}&lt;br /&gt;
\int_{-1}^1 1 dx = 2 \text{ , si } n = m, \\&lt;br /&gt;
0 \text{ , si } n \neq m,&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
entonces es una base ortogonal, habiéndonos basado fuertemente en la periodicidad en el intervalo para el segundo caso. Además, podríamos ortonormalizar dividiendo por la norma común a todos los elementos, &amp;lt;math&amp;gt; \sqrt{2} &amp;lt;/math&amp;gt;, por lo que podemos definir la base ortonormal&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\{E_n\}_{n \in \mathbb{Z}} := \{\frac{\sqrt{2}e^{\pi n ix }}{2}\}_{n \in \mathbb{Z}}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para realizar las aproximaciones, necesitamos los coeficientes de cada elemento que consideremos, que pueden obtenerse por ortonormalidad de la base mediante el producto escalar ya que&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
f^*(x) \sim \sum_{n=-\infty}^{\infty} C_nE_n = \sum_{n=-\infty}^{\infty} C_ne^{\pi n i} \quad , \quad C_n = (f^*,E_n)_{L^2} = \int_{-1}^1 f^*(x) \overline{E}_n(x) \,dx \in \mathbb{C}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos estimar estos coeficientes &amp;lt;math&amp;gt; C_n &amp;lt;/math&amp;gt; numéricamente por fórmula del trapecio, y así aproximar la función para un número dado de &amp;lt;math&amp;gt; E_n &amp;lt;/math&amp;gt;. La aproximación con los elementos de la base de &amp;lt;math&amp;gt;-n&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; será entonces&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \quad&lt;br /&gt;
f(x) \approx \sum_{i=-n}^{n} C_iE_{i|[0,1]} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Aproximaciones mediante base trigonométrica compleja.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure2fDMR.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure3fDMR.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:TrapeciofDMR.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| Aproximaciones con elementos hasta &amp;lt;math&amp;gt; n = 5,10,20. &amp;lt;/math&amp;gt; Mejora visiblemente, pero nótese que en los extremos difieren claramente.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Errores en la aproximación.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Erroresf.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| Errores en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt; y uniformes. La aproximación converge en norma pero no uniformemente: puede comprobarse que las aproximaciones tienden a 0 puntualmente en x=1 por haberse tomado una extensión impar, causando el error medido en la gráfica de &amp;lt;math&amp;gt;|f(1)|=|1+i|=\sqrt{2}&amp;lt;/math&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:ErroresRef.jpg|200px|thumb|left|texto alternativo]]&lt;br /&gt;
[[Archivo:Figura6RefDMR.jpg|200px|thumb|left|texto alternativo]]&lt;br /&gt;
[[Archivo:Figure2RefDMR.jpg|200px|thumb|left|texto alternativo]]&lt;br /&gt;
[[Archivo:Figure3fDMR.jpg|200px|thumb|left|texto alternativo]]&lt;br /&gt;
[[Archivo:Figure3RefDMR.jpg|200px|thumb|left|texto alternativo]]&lt;br /&gt;
[[Archivo:ImparfDMR.jpg|200px|thumb|right|texto alternativo]]&lt;br /&gt;
[[Archivo:TrapeciofDMR.jpg|200px|thumb|left|texto alternativo]]&lt;br /&gt;
[[Archivo:TrapecioRefDMR.jpg|200px|thumb|left|texto alternativo]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vemos que la aproximación mejora el error en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;, algo que esperábamos por continuidad de &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; y su extensión impar. Además, como &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; &lt;br /&gt;
f(1) \neq \frac{f^*(-1)+f^*(1)}{2}  = 0 &lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
por ser impar, las aproximaciones convergerán puntualmente a &amp;lt;math&amp;gt; 0 &amp;lt;/math&amp;gt; en el valor &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;. No hay convergencia uniforme porque es necesario que la convergencia puntual de las aproximaciones sucesivas fuese &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt; en todo punto de &amp;lt;math&amp;gt;[0,1]&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos verificar que esta base también es útil con funciones reales aproximando &amp;lt;math&amp;gt;\text{Re}f &amp;lt;/math&amp;gt; con una extensión impar (representado gráficamente a continuación), precisamente &amp;lt;math&amp;gt;\text{Re}f^* &amp;lt;/math&amp;gt;. Por el mismo procedimiento, base y código, logramos de nuevo aproximaciones que convergen en norma del espacio de funciones pero no uniformemente, una vez más por el problema que causa &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;. Sin embargo, el hecho de que una base sirva para funciones reales y complejas simultáneamente es un hecho a tener en cuenta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Representación gráfica de &amp;lt;math&amp;gt;Ref^*(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figura6RefDMR.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| Representando esta función real de variable real en las mismas referencias que con &amp;lt;math&amp;gt; f^* &amp;lt;/math&amp;gt;, puede comprobarse que es precisamente su proyección ortogonal en el plano horizontal, claramente con parte imaginaria nula por estar definida como parte real de una función de valores complejos.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Representación gráfica de &amp;lt;math&amp;gt;Ref^*(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure2RefDMR.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| Representando esta función real de variable real en las mismas referencias que con &amp;lt;math&amp;gt; f^* &amp;lt;/math&amp;gt;, puede comprobarse que es precisamente su proyección ortogonal en el plano horizontal, claramente con parte imaginaria nula por estar definida como parte real de una función de valores complejos.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Código=&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_DMR)&amp;diff=83692</id>
		<title>Series de Fourier (Grupo DMR)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_DMR)&amp;diff=83692"/>
				<updated>2025-02-11T21:23:28Z</updated>
		
		<summary type="html">&lt;p&gt;Marcos Cabellos: /* Extensión impar */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Series de Fourier (Grupo DMR). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | Daniel Rodríguez Calderón, Marcos Cabellos Hernández, Rafael Pascual Ortega.}}&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
En un espacio de Hilbert &amp;lt;math&amp;gt;L_2(a,b)&amp;lt;/math&amp;gt;, una serie de Fourier converge en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt; a una función real de variable real, &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;, que se puede representar mediante la base trigonométrica de Fourier como&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \quad&lt;br /&gt;
f(x) \sim \frac{a_0}{2} + \sum_{n=1}^\infty\left[a_n\cos \left( nx \right) + b_n\sin \left( nx \right) \right]&lt;br /&gt;
&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esta representación nos permite, tomando una suma parcial de la serie, aproximar a &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt;. Sin embargo, la base trigonométrica no se presta a la aproximación de funciones de variable real y valores complejos. Esta carencia nos lleva a la base trigonométrica compleja: considerando seno y coseno complejos, somos capaces de aproximar funciones de variable real y valores complejos o reales indistintamente. Esta base, con dominio &amp;lt;math&amp;gt; [-\pi,\pi] &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \quad \{e^{inx}\}_{n \in \mathbb{Z}} ,&lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
será nuestro foco de atención. La obtendremos formalmente a partir de la base trigonométrica original, para luego visualizarla y comprobar su capacidad para aproximar.&lt;br /&gt;
&lt;br /&gt;
=Base trigonométrica compleja=&lt;br /&gt;
&lt;br /&gt;
Para obtener la base compleja, partamos de la trigonométrica. Por la fórmula de Euler, podemos reescribir coseno y seno de la forma &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
 \cos\theta = \frac{1}{2} (e^{i\theta} + e^{-i\theta}) &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;\quad&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 \sin\theta = \frac{1}{2i} (e^{i\theta} - e^{-i\theta})&lt;br /&gt;
&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Así,  en &amp;lt;math&amp;gt; [-\pi,\pi] &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; puede representarse formalmente como&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
f(x) \sim \frac{a_0}{2} + \sum_{n=1}^\infty\left[a_n\cos \left( nx \right) + b_n\sin \left( nx \right) \right] = \frac{a_0}{2} + \sum_{n=1}^\infty\left[\frac{a_n}{2}(e^{inx}+e^{-inx})  +  \frac{b_n}{2i}(e^{inx}-e^{-inx})  \right] = c_0 + \sum_{n=1}^\infty\left[c_n e^{inx}  +c_{-n} e^{-inx}  \right]=&amp;lt;/math&amp;gt;&amp;lt;math&amp;gt; \sum_{n=0}^\infty c_n e^{inx} + \sum_{n=-\infty}^{-1} c_n e^{inx} =\sum_{n=-\infty}^\infty c_n e^{inx}, &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; c_0:=\frac{a_0}{2}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; c_n:=\frac{a_n-ib_n}{2} &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; c_{-n}:=\frac{a_n+ib_n}{2} &amp;lt;/math&amp;gt;. Decimos que este desarrollo es formal por el penúltimo paso. Notemos que estamos separando la serie en dos series. &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Base(DMR).gif|400px|thumb|right|Términos de la base &amp;lt;math&amp;gt; \{e_n := e^{ inx }\}_{n} &amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;n \in \{-1,0,1,2\}.&amp;lt;/math&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
De esta forma hemos obtenido la base trigonométrica compleja&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
 \{e_n := e^{ inx }\}_{n \in \mathbb{Z}} &lt;br /&gt;
&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
-CÓDIGO AQUÍ-&lt;br /&gt;
&lt;br /&gt;
Usando el producto escalar, comprobemos que es una base ortogonal &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(e_n,e_m)_{L^2} = \int_{-\pi}^{\pi} e_n  \overline{e_m}  \,dx = \int_{-\pi}^{\pi}  e^{inx} e^{-imx} \,dx = &lt;br /&gt;
\int_{-\pi}^{\pi} e^{(n-m)ix}  \,dx = \frac{-i}{n-m} e^{(n-m)ix} \Big|_{-\pi}^{\pi} = 0 \quad \text{si } n \neq m, \\ &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(e_n,e_n)_{L^2} = \int_{-\pi}^{\pi} e^{(n-n)ix}  \,dx = 2\pi.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aquí fijémonos en que hemos usado el producto escalar en &amp;lt;math&amp;gt;L^2(-\pi,\pi)&amp;lt;/math&amp;gt; dado por&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
(f,g)_{L^2} = \int_{-\pi}^{\pi} f(x) \hspace{0.2cm}  \overline{g(x)}  \,dx &lt;br /&gt;
&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una observación relevante es que como la norma de cada elemento de la base es siempre &amp;lt;math&amp;gt; \sqrt{2\pi} &amp;lt;/math&amp;gt;, podemos ortonormalizar dividiendo precisamente por esta constante a cada elemento de la base trigonométrica compleja.&lt;br /&gt;
&lt;br /&gt;
=Extensión impar=&lt;br /&gt;
&lt;br /&gt;
Nos podemos plantear cómo aproximar la siguiente función &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
f: [0,1] \subseteq \mathbb{R} \longrightarrow \mathbb{C} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
x \mapsto 4x(\frac{1}{2} − x)^2 + ix &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notemos que el intervalo de definición no es simétrico. Extendamos &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt; de forma impar&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Representación gráfica de &amp;lt;math&amp;gt; f^*(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figura6DMR.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:ImparfDMR_V2.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| Representación de &amp;lt;math&amp;gt;f^*&amp;lt;/math&amp;gt; con eje &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; y el plano complejo en la parte superior, mientras que representamos abajo parte real (izquierda) e imaginaria (derecha).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
f^*: [-1,1] \subseteq \mathbb{R} \longrightarrow \mathbb{C} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad    &lt;br /&gt;
x \mapsto \begin{cases} 4x(\frac{1}{2} + x)^2 + ix \text{ , si } x\in [-1,0]\\&lt;br /&gt;
   &lt;br /&gt;
4x(\frac{1}{2} - x)^2 + ix \text{ , si } x\in [0,1]&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tras representar esta función en las imágenes adjuntas, sólo nos falta adaptar la base al nuevo intervalo. Comprobemos que como verifica&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\{e^{\pi n ix }\}_{n \in \mathbb{Z}} : (E_n,E_m)_{L^2} = \int_{-1}^1 E_n\overline{E_m} \,dx = \int_{-1}^1 e^{\pi (n-m)i} \,dx = \begin{cases}&lt;br /&gt;
\int_{-1}^1 1 dx = 2 \text{ , si } n = m, \\&lt;br /&gt;
0 \text{ , si } n \neq m,&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
entonces es una base ortogonal, habiéndonos basado fuertemente en la periodicidad en el intervalo para el segundo caso. Además, podríamos ortonormalizar dividiendo por la norma común a todos los elementos, &amp;lt;math&amp;gt; \sqrt{2} &amp;lt;/math&amp;gt;, por lo que podemos definir la base ortonormal&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
\{E_n\}_{n \in \mathbb{Z}} := \{\frac{\sqrt{2}e^{\pi n ix }}{2}\}_{n \in \mathbb{Z}}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para realizar las aproximaciones, necesitamos los coeficientes de cada elemento que consideremos, que pueden obtenerse por ortonormalidad de la base mediante el producto escalar ya que&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\quad&lt;br /&gt;
f^*(x) \sim \sum_{n=-\infty}^{\infty} C_nE_n = \sum_{n=-\infty}^{\infty} C_ne^{\pi n i} \quad , \quad C_n = (f^*,E_n)_{L^2} = \int_{-1}^1 f^*(x) \overline{E}_n(x) \,dx \in \mathbb{C}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos estimar estos coeficientes &amp;lt;math&amp;gt; C_n &amp;lt;/math&amp;gt; numéricamente por fórmula del trapecio, y así aproximar la función para un número dado de &amp;lt;math&amp;gt; E_n &amp;lt;/math&amp;gt;. La aproximación con los elementos de la base de &amp;lt;math&amp;gt;-n&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; será entonces&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \quad&lt;br /&gt;
f(x) \approx \sum_{i=-n}^{n} C_iE_{i|[0,1]} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Aproximaciones mediante base trigonométrica compleja.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure2fDMR.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure3fDMR.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:TrapeciofDMR.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| Aproximaciones con elementos hasta &amp;lt;math&amp;gt; n = 5,10,20. &amp;lt;/math&amp;gt; Mejora visiblemente, pero nótese que en los extremos difieren claramente.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Errores en la aproximación.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Erroresf.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| Errores en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt; y uniformes. La aproximación converge en norma pero no uniformemente: puede comprobarse que las aproximaciones tienden a 0 puntualmente en x=1 por haberse tomado una extensión impar, causando el error medido en la gráfica de &amp;lt;math&amp;gt;|f(1)|=|1+i|=\sqrt{2}&amp;lt;/math&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:ErroresRef.jpg|200px|thumb|left|texto alternativo]]&lt;br /&gt;
[[Archivo:Figura6RefDMR.jpg|200px|thumb|left|texto alternativo]]&lt;br /&gt;
[[Archivo:Figure2RefDMR.jpg|200px|thumb|left|texto alternativo]]&lt;br /&gt;
[[Archivo:Figure3fDMR.jpg|200px|thumb|left|texto alternativo]]&lt;br /&gt;
[[Archivo:Figure3RefDMR.jpg|200px|thumb|left|texto alternativo]]&lt;br /&gt;
[[Archivo:ImparfDMR.jpg|200px|thumb|right|texto alternativo]]&lt;br /&gt;
[[Archivo:TrapeciofDMR.jpg|200px|thumb|left|texto alternativo]]&lt;br /&gt;
[[Archivo:TrapecioRefDMR.jpg|200px|thumb|left|texto alternativo]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vemos que la aproximación mejora el error en norma &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;, algo que esperábamos por continuidad de &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; y su extensión impar. Además, como &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; &lt;br /&gt;
f(1) \neq \frac{f^*(-1)+f^*(1)}{2}  = 0 &lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
por ser impar, las aproximaciones convergerán puntualmente a &amp;lt;math&amp;gt; 0 &amp;lt;/math&amp;gt; en el valor &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;. No hay convergencia uniforme porque es necesario que la convergencia puntual de las aproximaciones sucesivas fuese &amp;lt;math&amp;gt; f &amp;lt;/math&amp;gt; en todo punto de &amp;lt;math&amp;gt;[0,1]&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos verificar que esta base también es útil con funciones reales aproximando &amp;lt;math&amp;gt;\text{Re}f &amp;lt;/math&amp;gt; con una extensión impar (representado gráficamente a continuación), precisamente &amp;lt;math&amp;gt;\text{Re}f^* &amp;lt;/math&amp;gt;. Por el mismo procedimiento, base y código, logramos de nuevo aproximaciones que convergen en norma del espacio de funciones pero no uniformemente, una vez más por el problema que causa &amp;lt;math&amp;gt; x=1 &amp;lt;/math&amp;gt;. Sin embargo, el hecho de que una base sirva para funciones reales y complejas simultáneamente es un hecho a tener en cuenta.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Figura6RefDMR.jpg|300px|thumb|right|Representación de &amp;lt;math&amp;gt;Ref^*&amp;lt;/math&amp;gt; con eje &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; y el plano complejo. Tendrá idéntica parte real al caso &amp;lt;math&amp;gt;f^*&amp;lt;/math&amp;gt; con parte imaginaria nula.]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Representación gráfica de &amp;lt;math&amp;gt;Ref^*(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure2RefDMR.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| Representando esta función real de variable real en las mismas referencias que con &amp;lt;math&amp;gt; f^* &amp;lt;/math&amp;gt;, puede comprobarse que es precisamente su proyección ortogonal en el plano horizontal, claramente con parte imaginaria nula por estar definida como parte real de una función de valores complejos.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center; width:200px; float:right; font-size:90%;&amp;quot;&lt;br /&gt;
|+ Representación gráfica de &amp;lt;math&amp;gt;Ref^*(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [[Archivo:Figure2RefDMR.jpg|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| Representando esta función real de variable real en las mismas referencias que con &amp;lt;math&amp;gt; f^* &amp;lt;/math&amp;gt;, puede comprobarse que es precisamente su proyección ortogonal en el plano horizontal, claramente con parte imaginaria nula por estar definida como parte real de una función de valores complejos.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Código=&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Marcos Cabellos</name></author>	</entry>

	</feed>