<?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=Angelasotelo</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=Angelasotelo"/>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/wiki/Especial:Contribuciones/Angelasotelo"/>
		<updated>2026-04-29T12:07:54Z</updated>
		<subtitle>Contribuciones del usuario</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_ACIRV)&amp;diff=84181</id>
		<title>Series de Fourier (Grupo ACIRV)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_ACIRV)&amp;diff=84181"/>
				<updated>2025-02-19T22:09:35Z</updated>
		
		<summary type="html">&lt;p&gt;Angelasotelo: /* Base trigonométrica */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Series de Fourier (Grupo ACIRV). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | Ángela Sotelo Fernández, Carmen Doñoro Molina, Inés Torres Gómez, Rubén Gutiérrez Hernández, Violeta Luján Barrios.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
Las series de Fourier constituyen una herramienta fundamental en el análisis matemático. Estas series, introducidas por Joseph Fourier en el siglo XIX, nos permiten representar funciones periódicas mediante una base de funciones trigonométricas.&lt;br /&gt;
&lt;br /&gt;
La idea es que cualquier función \( f(x) \) periódica con \( f\in L^2(-\pi,\pi) \) puede expresarse como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; f(x) = d_0 + \sum_{n=1}^{\infty} \left[ d_n \cos\left(\frac{2\pi n x}{T}\right) + c_n \sin\left(\frac{2\pi n x}{T}\right) \right] &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde los coeficientes \( d_n \) y \( c_n \) se obtienen mediante integrales que dependen de la función dada.&lt;br /&gt;
&lt;br /&gt;
=Base trigonométrica=&lt;br /&gt;
La &amp;lt;b&amp;gt;base trigonométrica&amp;lt;/b&amp;gt;  &amp;lt;math&amp;gt; \left\{ \frac{1}{2}, \cos(n\pi x), \sin(n\pi x) \right\}_{n \in \mathbb{N}} &amp;lt;/math&amp;gt;&lt;br /&gt;
es una base del espacio &amp;lt;math&amp;gt;L^2([-\pi,\pi])&amp;lt;/math&amp;gt;, por lo que las funciones pertenecientes a este espacio pueden escribirse como una combinación lineal de los elementos de la base. A estas expresiones se les llama &amp;lt;b&amp;gt;series de Fourier&amp;lt;/b&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
Dado que es una base ortonormal, sus coeficientes pueden calcularse mediante integración:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;d_0 = \int_{-\pi}^{\pi} f(x) \frac{1}{2} \, dx , \hspace{30px} d_n = \int_{-\pi}^{\pi} f(x) \cos(n\pi x) \, dx , \hspace{30px} c_n = \int_{-\pi}^{\pi} f(x) \sin(n\pi x) \, dx . &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Utilizando el siguiente código en MATLAB, se pueden representar los 10 primeros elementos de la base en una gráfica:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
% Definimos la malla para pintar funciones del [-1,1]&lt;br /&gt;
x = linspace(-1, 1, 1000);  &lt;br /&gt;
n_max = 5;                  % Número de funciones a pintar para seno y coseno&lt;br /&gt;
&lt;br /&gt;
% Pintamos la gráfica de f = 1/2&lt;br /&gt;
figure;&lt;br /&gt;
plot(x, 1/2 * ones(size(x)), 'k', 'LineWidth', 1, 'DisplayName', '1/2');&lt;br /&gt;
hold on;&lt;br /&gt;
&lt;br /&gt;
% Pintamos cos(n*pi*x) y sin(n*pi*x) para n = 1 hasta n_max&lt;br /&gt;
for n = 1:n_max&lt;br /&gt;
    % Definimos las funciones&lt;br /&gt;
    f_cos = cos(n * pi * x);&lt;br /&gt;
    f_sin = sin(n * pi * x);&lt;br /&gt;
    &lt;br /&gt;
    plot(x, f_cos, 'LineWidth', 1, 'DisplayName', sprintf('cos(%d\\pi x)', n));&lt;br /&gt;
    &lt;br /&gt;
    plot(x, f_sin,'--', 'LineWidth', 1, 'DisplayName', sprintf('sin(%d\\pi x)', n));&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Ponemos leyenda en la gráfica&lt;br /&gt;
title(sprintf('Base \\{1/2, cos(n\\pi x), sin(n\\pi x)\\} para n = 1 ... %d', n_max));&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('Valor de la función');&lt;br /&gt;
legend('show', 'Location', 'BestOutside'); &lt;br /&gt;
grid on;&lt;br /&gt;
axis([-1 1 -1.5 1.5]);&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center; margin-top: 10px;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;display: inline-block; margin-right: 10px;&amp;quot;&amp;gt;&lt;br /&gt;
    [[Archivo:EJ1_SENO_ACIRV.png|400px|none|Seno]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;&lt;br /&gt;
    [[Archivo:EJ1_COSENO_ACIRV.png|400px|none|Coseno]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;&lt;br /&gt;
    [[Archivo:EJ1_1_2_ACIRV.jpeg|400px|none|Coseno]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Aproximación de una función continua=&lt;br /&gt;
Vamos a aproximar la función \( f(x) = 1 - 2 \left| \frac{1}{2} - x \right| \). &lt;br /&gt;
&lt;br /&gt;
Primeramente, extendemos de forma impar la función al intervalo simétrico \([-1,1]\), obteniendo \( f_{\text{ext}}(x) = \operatorname{sign}(x) \cdot \left(1 - 2 \left| \frac{1}{2} - |x| \right| \right).  \) Es decir,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
f_{\text{ext}}(x) =&lt;br /&gt;
\begin{cases} &lt;br /&gt;
-(1 - 2 | \frac{1}{2} - |x| |), &amp;amp; \text{si } x \in [-1,0) \\ &lt;br /&gt;
1 - 2 \left| \frac{1}{2} - x \right|, &amp;amp; \text{si } x \in [0,1].&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La función es continua en \([-1,1]\), pues la extensión mantiene la continuidad en \(x=0\) y es continua en \( [-1,0) \cup (0,1] \).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora, calcularemos los coeficientes de Fourier con las fórmulas indicadas anteriormente numéricamente usando la fórmula del trapecio con una división bastante fina \( (10^{-3}) \). Como nuestra función es impar, su serie de Fourier también lo es; es decir, será una combinación lineal de los elementos &amp;lt;math&amp;gt;\{ \sin(n\pi x) \}_{n \in \mathbb{N}}&amp;lt;/math&amp;gt;. Verificamos que los coeficientes \( d_0 \) y \( d_n \) se anulan, pues son el resultado de integrales de una función impar sobre un intervalo simétrico.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; f_{\text{ext}}(x) \approx \sum_{n=1}^{\infty} c_n \sin(n\pi x). &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Definimos \( f_n(x) \) como la suma de los primeros \( n \) términos de la serie de Fourier:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; f_{n}(x) = \sum_{k=1}^{n} c_k \sin(k\pi x), \hspace{2mm} \text{con} \hspace{2mm} c_k = 2\int_{0}^{1} f(x)\sin{(k\pi x)} \,dx . &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt; &lt;br /&gt;
&lt;br /&gt;
A continuación, representamos gráficamente \( f(x) \) y \( f_n(x) \) para \( n=1,5,10 \).  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Untitled.png|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
%Escribimos la función original definida en el intervalo [0,1]:&lt;br /&gt;
f=@(x)1-2*abs(1/2-x);&lt;br /&gt;
%Modificamos la función para que sea impar en el intervalo [-1,1]&lt;br /&gt;
f_ext=@(x)sign(x).*(1-2*abs(1/2-abs(x)));&lt;br /&gt;
&lt;br /&gt;
%Graficamos la función estendida de forma impar&lt;br /&gt;
hold on&lt;br /&gt;
xx=linspace(-1,1,10000);&lt;br /&gt;
plot(xx,f_ext(xx))&lt;br /&gt;
%Modificamos los colores de las gráficas para que se vean mejor&lt;br /&gt;
newcolors = [0.83 0.14 0.14&lt;br /&gt;
             1.00 0.54 0.00&lt;br /&gt;
             0.47 0.25 0.80&lt;br /&gt;
             0.25 0.80 0.54];         &lt;br /&gt;
colororder(newcolors)&lt;br /&gt;
&lt;br /&gt;
%Ahora, vamos a calcular los coeficientes de la serie de Fourier empleando la fórmula del trapecio. &lt;br /&gt;
n=[1 5 10];&lt;br /&gt;
N=1000;                       %Número de puntos&lt;br /&gt;
a=0; b=1;                     %Extremos de los intervalos&lt;br /&gt;
h=(b-a)/N;                    %Tamaño de los intervalos&lt;br /&gt;
u=a:h:b;                      %Puntos de la partición&lt;br /&gt;
for i=1:length(n) &lt;br /&gt;
    SF=0&lt;br /&gt;
    for k=1:n(i)&lt;br /&gt;
        c_n=zeros(1,n(i));&lt;br /&gt;
        c=(2.*f(u).*sin(k.*pi.*u))';  %Función a integrar&lt;br /&gt;
        w=ones(N+1,1);                %Vector de pesos &lt;br /&gt;
        w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
        c_n(k)=h*w'*c;                %Coeficientes de la serie de Fourier&lt;br /&gt;
        SF=SF+c_n(k)*sin(k*pi*xx);    %Vamos calculando la propia serie&lt;br /&gt;
    end&lt;br /&gt;
    plot(xx,SF)                      %Graficamos la serie de Fourier para un n determinado&lt;br /&gt;
end&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Nótese que aumentar el número de términos de la serie de Fourier permite aproximar mejor la función original. &lt;br /&gt;
&lt;br /&gt;
Para hacer un estudio completo de las aproximaciones, vamos a representar el error de \( f_n(x) \) respecto a \( f(x) \) en función de \( n \) con normas \( L^2 \) y del supremo o uniforme.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:24_25_grupoACIRV_erroresej1.png|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
a=0; b=1;                    &lt;br /&gt;
u_1=a:10^(-3):b; &lt;br /&gt;
N=length(u_1)-1;&lt;br /&gt;
h=(b-a)/N;&lt;br /&gt;
&lt;br /&gt;
%Definir la función f(x)&lt;br /&gt;
f = @(x) 1 - 2*abs(1/2 - x);&lt;br /&gt;
&lt;br /&gt;
% Pesos para la integración con la regla del trapecio&lt;br /&gt;
w=ones(N+1,1);              &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
&lt;br /&gt;
% Inicialización de los errores&lt;br /&gt;
error1 = zeros(1,300);&lt;br /&gt;
error2 = zeros(1,300);&lt;br /&gt;
&lt;br /&gt;
for n=1:300&lt;br /&gt;
    f_n=zeros(1,N+1); % Aproximación con n términos&lt;br /&gt;
    for k=1:n&lt;br /&gt;
        g=(f(u_1).*sin(k*pi*u_1))'; &lt;br /&gt;
        a_k=2*h*w'*g; % Coeficiente de Fourier&lt;br /&gt;
        f_n=f_n+a_k*sin(k*pi*u_1); % Suma de términos&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    % Cálculo de errores&lt;br /&gt;
    g1=abs(f(u_1)-f_n).^2;&lt;br /&gt;
    error1(n)=(h*w'*g1')^(1/2); % Norma L^2&lt;br /&gt;
    error2(n)=max(abs(f(u_1)-f_n)); % Norma suprema&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Graficar errores con escala logarítmica en el eje y&lt;br /&gt;
nn=1:300;&lt;br /&gt;
hold on&lt;br /&gt;
plot(nn,error1,'b',LineWidth=1.5)&lt;br /&gt;
plot(nn,error2,'r',LineWidth=1.5)&lt;br /&gt;
xlabel('Valor de n')&lt;br /&gt;
ylabel('Error en escala logarítmica')&lt;br /&gt;
title('Errores en las normas L^2 y uniforme')&lt;br /&gt;
legend('Error en la norma $L^2$', 'Error en la norma uniforme')&lt;br /&gt;
grid on&lt;br /&gt;
set(gca, 'YScale', 'log') % Escala logarítmica en el eje y&lt;br /&gt;
ylim([1e-6 1]) % Límites del eje y&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Aproximación de una función discontinua=&lt;br /&gt;
&lt;br /&gt;
Ahora, vamos a aproximar la función \( f(x) = 1_{x \leq 1/4}(x) \).&lt;br /&gt;
&lt;br /&gt;
A diferencia del caso anterior, extendemos la función de forma par al intervalo \([-1,1]\), obteniendo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; f_{\text{ext}}(x) = \begin{cases} 1, &amp;amp; \text{si } x \in [-\frac{1}{4}, \frac{1}{4}] \\ 0, &amp;amp; \text{si } x \in [-1,-\frac{1}{4}) \cup (\frac{1}{4},1]. \end{cases} &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Observamos que la función posee dos discontinuidades, en \( x = -\frac{1}{4} \) y \( x = \frac{1}{4} \). Sin embargo, por la condición de Dirichlet, puesto que el número de discontinuidades es finito y la función es monótona a trozos, podemos hacer su transformada de Fourier.&lt;br /&gt;
&lt;br /&gt;
Como en este caso la función es par, su serie de Fourier es una combinación lineal de \( \{\frac{1}{2}, cos(n\pi x)\}_{n\in\mathbf{N}} \). Los coeficientes \( c_n \) se anulan al ser la integral de una función impar sobre un intervalo simétrico:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; f_{\text{ext}}(x) \approx d_0 +\sum^{\infty}_{n=1} d_ncos(n\pi x) &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Al representar \( f(x) \) y \( f_{n}(x) \) para \( n=\{1,...,10 \}\), observamos que aparecen unas oscilaciones conocidas como el fenómeno de Gibbs.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:24 25 grupoACIRV fourierej3.png|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
F=@(x) 1.*(x&amp;lt;=1/4);&lt;br /&gt;
g=@(x) F(-x);&lt;br /&gt;
xx=linspace(-1,1,10000);&lt;br /&gt;
fplot(F,[0 1],'b','linewidth',1.5)&lt;br /&gt;
hold on&lt;br /&gt;
fplot(g,[-1 0],'b','linewidth',1.5)&lt;br /&gt;
%Modificamos los colores de las gráficas para que se vean mejor&lt;br /&gt;
newcolors = [0.83 0.14 0.14&lt;br /&gt;
             1.00 0.54 0.00&lt;br /&gt;
             0.47 0.25 0.80&lt;br /&gt;
             0.25 0.80 0.54];         &lt;br /&gt;
colororder(newcolors)&lt;br /&gt;
&lt;br /&gt;
%Ahora, vamos a calcular los coeficientes de la serie de Fourier empleando la fórmula del trapecio. &lt;br /&gt;
n=1:1:10;&lt;br /&gt;
N=1000;                       %Número de puntos&lt;br /&gt;
a=0; b=1;                     %Extremos de los intervalos&lt;br /&gt;
h=(b-a)/N;                    %Tamaño de los intervalos&lt;br /&gt;
u=a:h:b;                      %Puntos de la partición&lt;br /&gt;
w=ones(N+1,1);                %Vector de pesos &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
d_0=0; d0=(2.*F(u).*(1/2))';&lt;br /&gt;
d_0=h*w'*d0;&lt;br /&gt;
SF=zeros(length(n),length(xx))+ones(length(n),length(xx))*d_0;&lt;br /&gt;
for i=1:length(n) &lt;br /&gt;
    for k=1:n(i)&lt;br /&gt;
        d_n=zeros(1,n(i));&lt;br /&gt;
        c=(2.*F(u).*cos(k.*pi.*u))';  %Función a integrar&lt;br /&gt;
        d_n(k)=h*w'*c;                %Coeficientes de la serie de Fourier&lt;br /&gt;
        SF(i,:)=SF(i,:)+d_n(k)*cos(k*pi*xx); %Vamos calculando la serie para cada n y la guardamos en la fila n de SF&lt;br /&gt;
    end&lt;br /&gt;
    plot(xx,SF(i,:))                  %Graficamos la serie de Fourier para un n determinado&lt;br /&gt;
end&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Para suavizar dichas oscilaciones utilizamos las sumas de Cesàro:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; S_N = \frac{1}{n+1} \sum^{N}_{n=0}f_n(x). &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podemos representarlas gráficamente para un n dado:&lt;br /&gt;
[[Archivo:24 25 grupoACIRV cesaroej3.png|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
F=@(x) 1.*(x&amp;lt;=1/4);&lt;br /&gt;
g=@(x) F(-x);&lt;br /&gt;
xx=linspace(-1,1,10000);&lt;br /&gt;
fplot(F,[0 1],'b','linewidth',1.5)&lt;br /&gt;
hold on&lt;br /&gt;
fplot(g,[-1 0],'b','linewidth',1.5)&lt;br /&gt;
%Modificamos los colores de las gráficas para que se vean mejor&lt;br /&gt;
newcolors = [0.83 0.14 0.14&lt;br /&gt;
             1.00 0.54 0.00&lt;br /&gt;
             0.47 0.25 0.80&lt;br /&gt;
             0.25 0.80 0.54];         &lt;br /&gt;
colororder(newcolors)&lt;br /&gt;
&lt;br /&gt;
%Ahora, vamos a calcular los coeficientes de la serie de Fourier empleando la fórmula del trapecio. &lt;br /&gt;
n=1:1:100;&lt;br /&gt;
N=1000;                       %Número de puntos&lt;br /&gt;
a=0; b=1;                     %Extremos de los intervalos&lt;br /&gt;
h=(b-a)/N;                    %Tamaño de los intervalos&lt;br /&gt;
u=a:h:b;                      %Puntos de la partición&lt;br /&gt;
w=ones(N+1,1);                %Vector de pesos &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
d_0=0; d0=(2.*F(u).*(1/2))';&lt;br /&gt;
d_0=h*w'*d0;&lt;br /&gt;
SF=zeros(length(n),length(xx))+ones(length(n),length(xx))*d_0;&lt;br /&gt;
for i=1:length(n) &lt;br /&gt;
    for k=1:n(i)&lt;br /&gt;
        d_n=zeros(1,n(i));&lt;br /&gt;
        c=(2.*F(u).*cos(k.*pi.*u))';  %Función a integrar&lt;br /&gt;
        d_n(k)=h*w'*c;                %Coeficientes de la serie de Fourier&lt;br /&gt;
        SF(i,:)=SF(i,:)+d_n(k)*cos(k*pi*xx); %Vamos calculando la serie para cada n y la guardamos en la fila n de SF&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
SNs=zeros(1,length(xx));              %Calculamos las sumas de Cesàro&lt;br /&gt;
for i=1:length(n)&lt;br /&gt;
    SNs=SNs+SF(i,:);&lt;br /&gt;
end&lt;br /&gt;
SN=1/(length(n)+1)*SNs;&lt;br /&gt;
plot(xx,SN)                           %Graficamos la aproximación obtenida.&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vamos a comparar el error de aproximación respecto valores de N. Lo vemos inicialmente para la aproximación por serie de Fourier y luego visualizamos el que resulta de usar las sumas de Cesàro&lt;br /&gt;
[[Archivo: EJ3_ERROR_FOURIER_ACIRV.jpeg|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a=0; b=1;                    &lt;br /&gt;
u_1=a:10^(-3):b;&lt;br /&gt;
N=length(u_1)-1;&lt;br /&gt;
h=(b-a)/N;&lt;br /&gt;
&lt;br /&gt;
% Definir la función f(x)&lt;br /&gt;
f = @(x) 1.*(x&amp;lt;=1/4);&lt;br /&gt;
f_ext = @(x) 1.*(x &amp;lt;= 1/4).*(x &amp;gt;= -1/4);&lt;br /&gt;
&lt;br /&gt;
% Pesos para la integración con la regla del trapecio&lt;br /&gt;
w=ones(N+1,1);              &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
&lt;br /&gt;
% Inicialización de los errores&lt;br /&gt;
error1 = zeros(1,300);&lt;br /&gt;
error2 = zeros(1,300);&lt;br /&gt;
&lt;br /&gt;
d_0=0;d0=(2.*f(u_1).*(1/2))';&lt;br /&gt;
d_0=h*w'*d0;&lt;br /&gt;
for n=1:300&lt;br /&gt;
    f_n=zeros(1,N+1); % Aproximación con n términos&lt;br /&gt;
    for k=1:n&lt;br /&gt;
        g=(f(u_1).*cos(k*pi*u_1))';&lt;br /&gt;
        d_k=2*h*w'*g; % Coeficiente de Fourier&lt;br /&gt;
        f_n=f_n+d_k*cos(k*pi*u_1); %Suma de términos&lt;br /&gt;
    end&lt;br /&gt;
f_n=f_n+d_0; %Función extendida&lt;br /&gt;
&lt;br /&gt;
    % Cálculo de errores&lt;br /&gt;
    g1=abs(f_ext(u_1)-f_n).^2;&lt;br /&gt;
    error1(n)=(h*w'*g1')^(1/2); % Norma L^2&lt;br /&gt;
    error2(n)=max(abs(f_ext(u_1)-f_n)); % Norma suprema&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Graficar errores con escala logarítmica en el eje y&lt;br /&gt;
nn=1:300;&lt;br /&gt;
hold on&lt;br /&gt;
plot(nn,error1,'b',LineWidth=1.5)&lt;br /&gt;
plot(nn,error2,'r',LineWidth=1.5)&lt;br /&gt;
xlabel('Valor de n')&lt;br /&gt;
ylabel('Error en escala logarítmica')&lt;br /&gt;
title('Errores en las normas L^2 y uniforme')&lt;br /&gt;
legend('Error en la norma $L^2$', 'Error en la norma uniforme')&lt;br /&gt;
grid on&lt;br /&gt;
set(gca, 'YScale', 'log') % Escala logarítmica en el eje y&lt;br /&gt;
ylim([1e-6 1]) % Límites del eje y&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo: imagen_error_sumas_cesaro_ACIRV.jpeg|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Definimos la función F y su extensión impar g&lt;br /&gt;
F = @(x) 1.*(x &amp;lt;= 1/4);&lt;br /&gt;
g = @(x) F(-x);&lt;br /&gt;
f_ext = @(x) 1.(x &amp;lt;= 1/4).(x &amp;gt;= -1/4);&lt;br /&gt;
&lt;br /&gt;
% Puntos para la evaluación&lt;br /&gt;
xx = linspace(-1,1, 10000);&lt;br /&gt;
&lt;br /&gt;
% Graficamos la función original&lt;br /&gt;
fplot(F, [0 1], 'b', 'linewidth', 1.5)&lt;br /&gt;
hold on&lt;br /&gt;
fplot(g, [-1 0], 'b', 'linewidth', 1.5)&lt;br /&gt;
&lt;br /&gt;
% Modificamos los colores de las gráficas para mejorar la visibilidad&lt;br /&gt;
newcolors = [0.83 0.14 0.14;&lt;br /&gt;
             1.00 0.54 0.00;&lt;br /&gt;
             0.47 0.25 0.80;&lt;br /&gt;
             0.25 0.80 0.54];         &lt;br /&gt;
colororder(newcolors)&lt;br /&gt;
&lt;br /&gt;
% Parámetros para la serie de Fourier&lt;br /&gt;
n = 1:1:300;    % Número de términos considerados&lt;br /&gt;
N = 1000;       % Número de puntos en la integración&lt;br /&gt;
a = 0; b = 1;   % Extremos del intervalo&lt;br /&gt;
h = (b-a)/N;    % Tamaño de los subintervalos&lt;br /&gt;
u = a:h:b;      % Puntos de la partición&lt;br /&gt;
w = ones(N+1,1); &lt;br /&gt;
w(1) = 1/2; &lt;br /&gt;
w(N+1) = 1/2;   % Pesos del método del trapecio&lt;br /&gt;
&lt;br /&gt;
% Cálculo de los coeficientes de Fourier&lt;br /&gt;
d_0 = 0; &lt;br /&gt;
d0 = (2.F(u).(1/2))';&lt;br /&gt;
d_0 = h*w'*d0;  % Coeficiente a_0&lt;br /&gt;
SF = zeros(length(n), length(xx)) + d_0;&lt;br /&gt;
&lt;br /&gt;
for i = 1:length(n)&lt;br /&gt;
    for k = 1:n(i)&lt;br /&gt;
        c = (2.*F(u).*cos(k.*pi.*u))';  % Función a integrar&lt;br /&gt;
        d_n(k) = h*w'*c;  % Coeficientes de la serie de Fourier&lt;br /&gt;
        SF(i,:) = SF(i,:) + d_n(k) * cos(k*pi*xx);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Aplicamos las sumas de Cesàro y guardamos en una matriz su valor para&lt;br /&gt;
% cada n&lt;br /&gt;
SN =  zeros(length(n), length(xx));&lt;br /&gt;
SNs = zeros(length(n), length(xx));&lt;br /&gt;
for j =1:length(n)&lt;br /&gt;
    for i = 1:j&lt;br /&gt;
        SNs(j,:) = SNs(j,:) + SF(i,:);&lt;br /&gt;
    end&lt;br /&gt;
    SN(j,:) = 1/(j+1) * SNs(j,:); % Suma de Cesàro&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Cálculo del error con normas L^∞ y L^2&lt;br /&gt;
error_uniforme = zeros(1, length(n));&lt;br /&gt;
error_L2 = zeros(1, length(n));&lt;br /&gt;
&lt;br /&gt;
w1 = ones(length(xx),1); &lt;br /&gt;
w1(1) = 1/2; &lt;br /&gt;
w1(length(xx)) = 1/2;   % Pesos del método del trapecio&lt;br /&gt;
h1=1/5000;&lt;br /&gt;
for i = 1:length(n)&lt;br /&gt;
    % Norma uniforme (máximo error absoluto)&lt;br /&gt;
    error_uniforme(i) = max(abs(f_ext(xx) - SN(i,:)));&lt;br /&gt;
&lt;br /&gt;
    % Norma L^2 usando la regla del trapecio&lt;br /&gt;
    integrando =2.*((f_ext(xx) - SN(i,:)).^2);&lt;br /&gt;
    error_L2(i) = sqrt(h1.*w1'*integrando');&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Graficamos los errores&lt;br /&gt;
figure&lt;br /&gt;
plot(n, error_uniforme, 'r', 'linewidth', 1.5)&lt;br /&gt;
hold on&lt;br /&gt;
plot(n, error_L2, 'b', 'linewidth', 1.5)&lt;br /&gt;
xlabel('Número de términos N')&lt;br /&gt;
ylabel('Error')&lt;br /&gt;
legend('Norma uniforme', 'Norma L^2')&lt;br /&gt;
title('Error de la Aproximación de Fourier')&lt;br /&gt;
grid on&lt;br /&gt;
}}&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Angelasotelo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_ACIRV)&amp;diff=84178</id>
		<title>Series de Fourier (Grupo ACIRV)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_ACIRV)&amp;diff=84178"/>
				<updated>2025-02-19T19:55:49Z</updated>
		
		<summary type="html">&lt;p&gt;Angelasotelo: /* Aproximación de una función discontinua */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Series de Fourier (Grupo ACIRV). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | Ángela Sotelo Fernández, Carmen Doñoro Molina, Inés Torres Gómez, Rubén Gutiérrez Hernández, Violeta Luján Barrios.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
Las series de Fourier constituyen una herramienta fundamental en el análisis matemático. Estas series, introducidas por Joseph Fourier en el siglo XIX, nos permiten representar funciones periódicas mediante una base de funciones trigonométricas.&lt;br /&gt;
&lt;br /&gt;
La idea es que cualquier función \( f(x) \) periódica con \( f\in L^2(-\pi,\pi) \) puede expresarse como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; f(x) = d_0 + \sum_{n=1}^{\infty} \left[ d_n \cos\left(\frac{2\pi n x}{T}\right) + c_n \sin\left(\frac{2\pi n x}{T}\right) \right] &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde los coeficientes \( d_n \) y \( c_n \) se obtienen mediante integrales que dependen de la función dada.&lt;br /&gt;
&lt;br /&gt;
=Base trigonométrica=&lt;br /&gt;
La &amp;lt;b&amp;gt;base trigonométrica&amp;lt;/b&amp;gt; es una base del espacio &amp;lt;math&amp;gt;L^2([-\pi,\pi])&amp;lt;/math&amp;gt;, por lo que las funciones pertenecientes a este espacio pueden escribirse como una combinación lineal de los elementos de la base. A estas expresiones se les llama &amp;lt;b&amp;gt;series de Fourier&amp;lt;/b&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
Dado que es una base ortonormal, sus coeficientes pueden calcularse mediante integración:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;d_0 = \int_{-\pi}^{\pi} f(x) \frac{1}{2} \, dx , \hspace{30px} d_n = \int_{-\pi}^{\pi} f(x) \cos(n\pi x) \, dx , \hspace{30px} c_n = \int_{-\pi}^{\pi} f(x) \sin(n\pi x) \, dx . &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Utilizando el siguiente código en MATLAB, se pueden representar los 10 primeros elementos de la base en una gráfica:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
% Definimos la malla para pintar funciones del [-1,1]&lt;br /&gt;
x = linspace(-1, 1, 1000);  &lt;br /&gt;
n_max = 5;                  % Número de funciones a pintar para seno y coseno&lt;br /&gt;
&lt;br /&gt;
% Pintamos la gráfica de f = 1/2&lt;br /&gt;
figure;&lt;br /&gt;
plot(x, 1/2 * ones(size(x)), 'k', 'LineWidth', 1, 'DisplayName', '1/2');&lt;br /&gt;
hold on;&lt;br /&gt;
&lt;br /&gt;
% Pintamos cos(n*pi*x) y sin(n*pi*x) para n = 1 hasta n_max&lt;br /&gt;
for n = 1:n_max&lt;br /&gt;
    % Definimos las funciones&lt;br /&gt;
    f_cos = cos(n * pi * x);&lt;br /&gt;
    f_sin = sin(n * pi * x);&lt;br /&gt;
    &lt;br /&gt;
    plot(x, f_cos, 'LineWidth', 1, 'DisplayName', sprintf('cos(%d\\pi x)', n));&lt;br /&gt;
    &lt;br /&gt;
    plot(x, f_sin,'--', 'LineWidth', 1, 'DisplayName', sprintf('sin(%d\\pi x)', n));&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Ponemos leyenda en la gráfica&lt;br /&gt;
title(sprintf('Base \\{1/2, cos(n\\pi x), sin(n\\pi x)\\} para n = 1 ... %d', n_max));&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('Valor de la función');&lt;br /&gt;
legend('show', 'Location', 'BestOutside'); &lt;br /&gt;
grid on;&lt;br /&gt;
axis([-1 1 -1.5 1.5]);&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center; margin-top: 10px;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;display: inline-block; margin-right: 10px;&amp;quot;&amp;gt;&lt;br /&gt;
    [[Archivo:EJ1_SENO_ACIRV.png|400px|none|Seno]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;&lt;br /&gt;
    [[Archivo:EJ1_COSENO_ACIRV.png|400px|none|Coseno]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;&lt;br /&gt;
    [[Archivo:EJ1_1_2_ACIRV.jpeg|400px|none|Coseno]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Aproximación de una función continua=&lt;br /&gt;
Vamos a aproximar la función \( f(x) = 1 - 2 \left| \frac{1}{2} - x \right| \). &lt;br /&gt;
&lt;br /&gt;
Primeramente, extendemos de forma impar la función al intervalo simétrico \([-1,1]\), obteniendo \( f_{\text{ext}}(x) = \operatorname{sign}(x) \cdot \left(1 - 2 \left| \frac{1}{2} - |x| \right| \right).  \) Es decir,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
f_{\text{ext}}(x) =&lt;br /&gt;
\begin{cases} &lt;br /&gt;
-(1 - 2 | \frac{1}{2} - |x| |), &amp;amp; \text{si } x \in [-1,0) \\ &lt;br /&gt;
1 - 2 \left| \frac{1}{2} - x \right|, &amp;amp; \text{si } x \in [0,1].&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La función es continua en \([-1,1]\), pues la extensión mantiene la continuidad en \(x=0\) y es continua en \( [-1,0) \cup (0,1] \).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora, calcularemos los coeficientes de Fourier con las fórmulas indicadas anteriormente numéricamente usando la fórmula del trapecio con una división bastante fina \( (10^{-3}) \). Como nuestra función es impar, su serie de Fourier también lo es; es decir, será una combinación lineal de los elementos &amp;lt;math&amp;gt;\{ \sin(n\pi x) \}_{n \in \mathbb{N}}&amp;lt;/math&amp;gt;. Verificamos que los coeficientes \( d_0 \) y \( d_n \) se anulan, pues son el resultado de integrales de una función impar sobre un intervalo simétrico.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; f_{\text{ext}}(x) \approx \sum_{n=1}^{\infty} c_n \sin(n\pi x). &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Definimos \( f_n(x) \) como la suma de los primeros \( n \) términos de la serie de Fourier:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; f_{n}(x) = \sum_{k=1}^{n} c_k \sin(k\pi x), \hspace{2mm} \text{con} \hspace{2mm} c_k = 2\int_{0}^{1} f(x)\sin{(k\pi x)} \,dx . &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt; &lt;br /&gt;
&lt;br /&gt;
A continuación, representamos gráficamente \( f(x) \) y \( f_n(x) \) para \( n=1,5,10 \).  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Untitled.png|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
%Escribimos la función original definida en el intervalo [0,1]:&lt;br /&gt;
f=@(x)1-2*abs(1/2-x);&lt;br /&gt;
%Modificamos la función para que sea impar en el intervalo [-1,1]&lt;br /&gt;
f_ext=@(x)sign(x).*(1-2*abs(1/2-abs(x)));&lt;br /&gt;
&lt;br /&gt;
%Graficamos la función estendida de forma impar&lt;br /&gt;
hold on&lt;br /&gt;
xx=linspace(-1,1,10000);&lt;br /&gt;
plot(xx,f_ext(xx))&lt;br /&gt;
%Modificamos los colores de las gráficas para que se vean mejor&lt;br /&gt;
newcolors = [0.83 0.14 0.14&lt;br /&gt;
             1.00 0.54 0.00&lt;br /&gt;
             0.47 0.25 0.80&lt;br /&gt;
             0.25 0.80 0.54];         &lt;br /&gt;
colororder(newcolors)&lt;br /&gt;
&lt;br /&gt;
%Ahora, vamos a calcular los coeficientes de la serie de Fourier empleando la fórmula del trapecio. &lt;br /&gt;
n=[1 5 10];&lt;br /&gt;
N=1000;                       %Número de puntos&lt;br /&gt;
a=0; b=1;                     %Extremos de los intervalos&lt;br /&gt;
h=(b-a)/N;                    %Tamaño de los intervalos&lt;br /&gt;
u=a:h:b;                      %Puntos de la partición&lt;br /&gt;
for i=1:length(n) &lt;br /&gt;
    SF=0&lt;br /&gt;
    for k=1:n(i)&lt;br /&gt;
        c_n=zeros(1,n(i));&lt;br /&gt;
        c=(2.*f(u).*sin(k.*pi.*u))';  %Función a integrar&lt;br /&gt;
        w=ones(N+1,1);                %Vector de pesos &lt;br /&gt;
        w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
        c_n(k)=h*w'*c;                %Coeficientes de la serie de Fourier&lt;br /&gt;
        SF=SF+c_n(k)*sin(k*pi*xx);    %Vamos calculando la propia serie&lt;br /&gt;
    end&lt;br /&gt;
    plot(xx,SF)                      %Graficamos la serie de Fourier para un n determinado&lt;br /&gt;
end&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Nótese que aumentar el número de términos de la serie de Fourier permite aproximar mejor la función original. &lt;br /&gt;
&lt;br /&gt;
Para hacer un estudio completo de las aproximaciones, vamos a representar el error de \( f_n(x) \) respecto a \( f(x) \) en función de \( n \) con normas \( L^2 \) y del supremo o uniforme.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:24_25_grupoACIRV_erroresej1.png|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
a=0; b=1;                    &lt;br /&gt;
u_1=a:10^(-3):b; &lt;br /&gt;
N=length(u_1)-1;&lt;br /&gt;
h=(b-a)/N;&lt;br /&gt;
&lt;br /&gt;
%Definir la función f(x)&lt;br /&gt;
f = @(x) 1 - 2*abs(1/2 - x);&lt;br /&gt;
&lt;br /&gt;
% Pesos para la integración con la regla del trapecio&lt;br /&gt;
w=ones(N+1,1);              &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
&lt;br /&gt;
% Inicialización de los errores&lt;br /&gt;
error1 = zeros(1,300);&lt;br /&gt;
error2 = zeros(1,300);&lt;br /&gt;
&lt;br /&gt;
for n=1:300&lt;br /&gt;
    f_n=zeros(1,N+1); % Aproximación con n términos&lt;br /&gt;
    for k=1:n&lt;br /&gt;
        g=(f(u_1).*sin(k*pi*u_1))'; &lt;br /&gt;
        a_k=2*h*w'*g; % Coeficiente de Fourier&lt;br /&gt;
        f_n=f_n+a_k*sin(k*pi*u_1); % Suma de términos&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    % Cálculo de errores&lt;br /&gt;
    g1=abs(f(u_1)-f_n).^2;&lt;br /&gt;
    error1(n)=(h*w'*g1')^(1/2); % Norma L^2&lt;br /&gt;
    error2(n)=max(abs(f(u_1)-f_n)); % Norma suprema&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Graficar errores con escala logarítmica en el eje y&lt;br /&gt;
nn=1:300;&lt;br /&gt;
hold on&lt;br /&gt;
plot(nn,error1,'b',LineWidth=1.5)&lt;br /&gt;
plot(nn,error2,'r',LineWidth=1.5)&lt;br /&gt;
xlabel('Valor de n')&lt;br /&gt;
ylabel('Error en escala logarítmica')&lt;br /&gt;
title('Errores en las normas L^2 y uniforme')&lt;br /&gt;
legend('Error en la norma $L^2$', 'Error en la norma uniforme')&lt;br /&gt;
grid on&lt;br /&gt;
set(gca, 'YScale', 'log') % Escala logarítmica en el eje y&lt;br /&gt;
ylim([1e-6 1]) % Límites del eje y&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Aproximación de una función discontinua=&lt;br /&gt;
&lt;br /&gt;
Ahora, vamos a aproximar la función \( f(x) = 1_{x \leq 1/4}(x) \).&lt;br /&gt;
&lt;br /&gt;
A diferencia del caso anterior, extendemos la función de forma par al intervalo \([-1,1]\), obteniendo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; f_{\text{ext}}(x) = \begin{cases} 1, &amp;amp; \text{si } x \in [-\frac{1}{4}, \frac{1}{4}] \\ 0, &amp;amp; \text{si } x \in [-1,-\frac{1}{4}) \cup (\frac{1}{4},1]. \end{cases} &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Observamos que la función posee dos discontinuidades, en \( x = -\frac{1}{4} \) y \( x = \frac{1}{4} \). Sin embargo, por la condición de Dirichlet, puesto que el número de discontinuidades es finito y la función es monótona a trozos, podemos hacer su transformada de Fourier.&lt;br /&gt;
&lt;br /&gt;
Como en este caso la función es par, su serie de Fourier es una combinación lineal de \( \{\frac{1}{2}, cos(n\pi x)\}_{n\in\mathbf{N}} \). Los coeficientes \( c_n \) se anulan al ser la integral de una función impar sobre un intervalo simétrico:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; f_{\text{ext}}(x) \approx d_0 +\sum^{\infty}_{n=1} d_ncos(n\pi x) &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Al representar \( f(x) \) y \( f_{n}(x) \) para \( n=\{1,...,10 \}\), observamos que aparecen unas oscilaciones conocidas como el fenómeno de Gibbs.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:24 25 grupoACIRV fourierej3.png|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
F=@(x) 1.*(x&amp;lt;=1/4);&lt;br /&gt;
g=@(x) F(-x);&lt;br /&gt;
xx=linspace(-1,1,10000);&lt;br /&gt;
fplot(F,[0 1],'b','linewidth',1.5)&lt;br /&gt;
hold on&lt;br /&gt;
fplot(g,[-1 0],'b','linewidth',1.5)&lt;br /&gt;
%Modificamos los colores de las gráficas para que se vean mejor&lt;br /&gt;
newcolors = [0.83 0.14 0.14&lt;br /&gt;
             1.00 0.54 0.00&lt;br /&gt;
             0.47 0.25 0.80&lt;br /&gt;
             0.25 0.80 0.54];         &lt;br /&gt;
colororder(newcolors)&lt;br /&gt;
&lt;br /&gt;
%Ahora, vamos a calcular los coeficientes de la serie de Fourier empleando la fórmula del trapecio. &lt;br /&gt;
n=1:1:10;&lt;br /&gt;
N=1000;                       %Número de puntos&lt;br /&gt;
a=0; b=1;                     %Extremos de los intervalos&lt;br /&gt;
h=(b-a)/N;                    %Tamaño de los intervalos&lt;br /&gt;
u=a:h:b;                      %Puntos de la partición&lt;br /&gt;
w=ones(N+1,1);                %Vector de pesos &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
d_0=0; d0=(2.*F(u).*(1/2))';&lt;br /&gt;
d_0=h*w'*d0;&lt;br /&gt;
SF=zeros(length(n),length(xx))+ones(length(n),length(xx))*d_0;&lt;br /&gt;
for i=1:length(n) &lt;br /&gt;
    for k=1:n(i)&lt;br /&gt;
        d_n=zeros(1,n(i));&lt;br /&gt;
        c=(2.*F(u).*cos(k.*pi.*u))';  %Función a integrar&lt;br /&gt;
        d_n(k)=h*w'*c;                %Coeficientes de la serie de Fourier&lt;br /&gt;
        SF(i,:)=SF(i,:)+d_n(k)*cos(k*pi*xx); %Vamos calculando la serie para cada n y la guardamos en la fila n de SF&lt;br /&gt;
    end&lt;br /&gt;
    plot(xx,SF(i,:))                  %Graficamos la serie de Fourier para un n determinado&lt;br /&gt;
end&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Para suavizar dichas oscilaciones utilizamos las sumas de Cesàro:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; S_N = \frac{1}{n+1} \sum^{N}_{n=0}f_n(x). &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podemos representarlas gráficamente para un n dado:&lt;br /&gt;
[[Archivo:24 25 grupoACIRV cesaroej3.png|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
F=@(x) 1.*(x&amp;lt;=1/4);&lt;br /&gt;
g=@(x) F(-x);&lt;br /&gt;
xx=linspace(-1,1,10000);&lt;br /&gt;
fplot(F,[0 1],'b','linewidth',1.5)&lt;br /&gt;
hold on&lt;br /&gt;
fplot(g,[-1 0],'b','linewidth',1.5)&lt;br /&gt;
%Modificamos los colores de las gráficas para que se vean mejor&lt;br /&gt;
newcolors = [0.83 0.14 0.14&lt;br /&gt;
             1.00 0.54 0.00&lt;br /&gt;
             0.47 0.25 0.80&lt;br /&gt;
             0.25 0.80 0.54];         &lt;br /&gt;
colororder(newcolors)&lt;br /&gt;
&lt;br /&gt;
%Ahora, vamos a calcular los coeficientes de la serie de Fourier empleando la fórmula del trapecio. &lt;br /&gt;
n=1:1:100;&lt;br /&gt;
N=1000;                       %Número de puntos&lt;br /&gt;
a=0; b=1;                     %Extremos de los intervalos&lt;br /&gt;
h=(b-a)/N;                    %Tamaño de los intervalos&lt;br /&gt;
u=a:h:b;                      %Puntos de la partición&lt;br /&gt;
w=ones(N+1,1);                %Vector de pesos &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
d_0=0; d0=(2.*F(u).*(1/2))';&lt;br /&gt;
d_0=h*w'*d0;&lt;br /&gt;
SF=zeros(length(n),length(xx))+ones(length(n),length(xx))*d_0;&lt;br /&gt;
for i=1:length(n) &lt;br /&gt;
    for k=1:n(i)&lt;br /&gt;
        d_n=zeros(1,n(i));&lt;br /&gt;
        c=(2.*F(u).*cos(k.*pi.*u))';  %Función a integrar&lt;br /&gt;
        d_n(k)=h*w'*c;                %Coeficientes de la serie de Fourier&lt;br /&gt;
        SF(i,:)=SF(i,:)+d_n(k)*cos(k*pi*xx); %Vamos calculando la serie para cada n y la guardamos en la fila n de SF&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
SNs=zeros(1,length(xx));              %Calculamos las sumas de Cesàro&lt;br /&gt;
for i=1:length(n)&lt;br /&gt;
    SNs=SNs+SF(i,:);&lt;br /&gt;
end&lt;br /&gt;
SN=1/(length(n)+1)*SNs;&lt;br /&gt;
plot(xx,SN)                           %Graficamos la aproximación obtenida.&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vamos a comparar el error de aproximación respecto valores de N. Lo vemos inicialmente para la aproximación por serie de Fourier y luego visualizamos el que resulta de usar las sumas de Cesàro&lt;br /&gt;
[[Archivo: EJ3_ERROR_FOURIER_ACIRV.jpeg|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a=0; b=1;                    &lt;br /&gt;
u_1=a:10^(-3):b;&lt;br /&gt;
N=length(u_1)-1;&lt;br /&gt;
h=(b-a)/N;&lt;br /&gt;
&lt;br /&gt;
% Definir la función f(x)&lt;br /&gt;
f = @(x) 1.*(x&amp;lt;=1/4);&lt;br /&gt;
f_ext = @(x) 1.*(x &amp;lt;= 1/4).*(x &amp;gt;= -1/4);&lt;br /&gt;
&lt;br /&gt;
% Pesos para la integración con la regla del trapecio&lt;br /&gt;
w=ones(N+1,1);              &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
&lt;br /&gt;
% Inicialización de los errores&lt;br /&gt;
error1 = zeros(1,300);&lt;br /&gt;
error2 = zeros(1,300);&lt;br /&gt;
&lt;br /&gt;
d_0=0;d0=(2.*f(u_1).*(1/2))';&lt;br /&gt;
d_0=h*w'*d0;&lt;br /&gt;
for n=1:300&lt;br /&gt;
    f_n=zeros(1,N+1); % Aproximación con n términos&lt;br /&gt;
    for k=1:n&lt;br /&gt;
        g=(f(u_1).*cos(k*pi*u_1))';&lt;br /&gt;
        d_k=2*h*w'*g; % Coeficiente de Fourier&lt;br /&gt;
        f_n=f_n+d_k*cos(k*pi*u_1); %Suma de términos&lt;br /&gt;
    end&lt;br /&gt;
f_n=f_n+d_0; %Función extendida&lt;br /&gt;
&lt;br /&gt;
    % Cálculo de errores&lt;br /&gt;
    g1=abs(f_ext(u_1)-f_n).^2;&lt;br /&gt;
    error1(n)=(h*w'*g1')^(1/2); % Norma L^2&lt;br /&gt;
    error2(n)=max(abs(f_ext(u_1)-f_n)); % Norma suprema&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Graficar errores con escala logarítmica en el eje y&lt;br /&gt;
nn=1:300;&lt;br /&gt;
hold on&lt;br /&gt;
plot(nn,error1,'b',LineWidth=1.5)&lt;br /&gt;
plot(nn,error2,'r',LineWidth=1.5)&lt;br /&gt;
xlabel('Valor de n')&lt;br /&gt;
ylabel('Error en escala logarítmica')&lt;br /&gt;
title('Errores en las normas L^2 y uniforme')&lt;br /&gt;
legend('Error en la norma $L^2$', 'Error en la norma uniforme')&lt;br /&gt;
grid on&lt;br /&gt;
set(gca, 'YScale', 'log') % Escala logarítmica en el eje y&lt;br /&gt;
ylim([1e-6 1]) % Límites del eje y&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo: imagen_error_sumas_cesaro_ACIRV.jpeg|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Definimos la función F y su extensión impar g&lt;br /&gt;
F = @(x) 1.*(x &amp;lt;= 1/4);&lt;br /&gt;
g = @(x) F(-x);&lt;br /&gt;
f_ext = @(x) 1.(x &amp;lt;= 1/4).(x &amp;gt;= -1/4);&lt;br /&gt;
&lt;br /&gt;
% Puntos para la evaluación&lt;br /&gt;
xx = linspace(-1,1, 10000);&lt;br /&gt;
&lt;br /&gt;
% Graficamos la función original&lt;br /&gt;
fplot(F, [0 1], 'b', 'linewidth', 1.5)&lt;br /&gt;
hold on&lt;br /&gt;
fplot(g, [-1 0], 'b', 'linewidth', 1.5)&lt;br /&gt;
&lt;br /&gt;
% Modificamos los colores de las gráficas para mejorar la visibilidad&lt;br /&gt;
newcolors = [0.83 0.14 0.14;&lt;br /&gt;
             1.00 0.54 0.00;&lt;br /&gt;
             0.47 0.25 0.80;&lt;br /&gt;
             0.25 0.80 0.54];         &lt;br /&gt;
colororder(newcolors)&lt;br /&gt;
&lt;br /&gt;
% Parámetros para la serie de Fourier&lt;br /&gt;
n = 1:1:300;    % Número de términos considerados&lt;br /&gt;
N = 1000;       % Número de puntos en la integración&lt;br /&gt;
a = 0; b = 1;   % Extremos del intervalo&lt;br /&gt;
h = (b-a)/N;    % Tamaño de los subintervalos&lt;br /&gt;
u = a:h:b;      % Puntos de la partición&lt;br /&gt;
w = ones(N+1,1); &lt;br /&gt;
w(1) = 1/2; &lt;br /&gt;
w(N+1) = 1/2;   % Pesos del método del trapecio&lt;br /&gt;
&lt;br /&gt;
% Cálculo de los coeficientes de Fourier&lt;br /&gt;
d_0 = 0; &lt;br /&gt;
d0 = (2.F(u).(1/2))';&lt;br /&gt;
d_0 = h*w'*d0;  % Coeficiente a_0&lt;br /&gt;
SF = zeros(length(n), length(xx)) + d_0;&lt;br /&gt;
&lt;br /&gt;
for i = 1:length(n)&lt;br /&gt;
    for k = 1:n(i)&lt;br /&gt;
        c = (2.*F(u).*cos(k.*pi.*u))';  % Función a integrar&lt;br /&gt;
        d_n(k) = h*w'*c;  % Coeficientes de la serie de Fourier&lt;br /&gt;
        SF(i,:) = SF(i,:) + d_n(k) * cos(k*pi*xx);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Aplicamos las sumas de Cesàro y guardamos en una matriz su valor para&lt;br /&gt;
% cada n&lt;br /&gt;
SN =  zeros(length(n), length(xx));&lt;br /&gt;
SNs = zeros(length(n), length(xx));&lt;br /&gt;
for j =1:length(n)&lt;br /&gt;
    for i = 1:j&lt;br /&gt;
        SNs(j,:) = SNs(j,:) + SF(i,:);&lt;br /&gt;
    end&lt;br /&gt;
    SN(j,:) = 1/(j+1) * SNs(j,:); % Suma de Cesàro&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Cálculo del error con normas L^∞ y L^2&lt;br /&gt;
error_uniforme = zeros(1, length(n));&lt;br /&gt;
error_L2 = zeros(1, length(n));&lt;br /&gt;
&lt;br /&gt;
w1 = ones(length(xx),1); &lt;br /&gt;
w1(1) = 1/2; &lt;br /&gt;
w1(length(xx)) = 1/2;   % Pesos del método del trapecio&lt;br /&gt;
h1=1/5000;&lt;br /&gt;
for i = 1:length(n)&lt;br /&gt;
    % Norma uniforme (máximo error absoluto)&lt;br /&gt;
    error_uniforme(i) = max(abs(f_ext(xx) - SN(i,:)));&lt;br /&gt;
&lt;br /&gt;
    % Norma L^2 usando la regla del trapecio&lt;br /&gt;
    integrando =2.*((f_ext(xx) - SN(i,:)).^2);&lt;br /&gt;
    error_L2(i) = sqrt(h1.*w1'*integrando');&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Graficamos los errores&lt;br /&gt;
figure&lt;br /&gt;
plot(n, error_uniforme, 'r', 'linewidth', 1.5)&lt;br /&gt;
hold on&lt;br /&gt;
plot(n, error_L2, 'b', 'linewidth', 1.5)&lt;br /&gt;
xlabel('Número de términos N')&lt;br /&gt;
ylabel('Error')&lt;br /&gt;
legend('Norma uniforme', 'Norma L^2')&lt;br /&gt;
title('Error de la Aproximación de Fourier')&lt;br /&gt;
grid on&lt;br /&gt;
}}&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Angelasotelo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_ACIRV)&amp;diff=84177</id>
		<title>Series de Fourier (Grupo ACIRV)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_ACIRV)&amp;diff=84177"/>
				<updated>2025-02-19T19:54:41Z</updated>
		
		<summary type="html">&lt;p&gt;Angelasotelo: /* Aproximación de una función discontinua */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Series de Fourier (Grupo ACIRV). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | Ángela Sotelo Fernández, Carmen Doñoro Molina, Inés Torres Gómez, Rubén Gutiérrez Hernández, Violeta Luján Barrios.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
Las series de Fourier constituyen una herramienta fundamental en el análisis matemático. Estas series, introducidas por Joseph Fourier en el siglo XIX, nos permiten representar funciones periódicas mediante una base de funciones trigonométricas.&lt;br /&gt;
&lt;br /&gt;
La idea es que cualquier función \( f(x) \) periódica con \( f\in L^2(-\pi,\pi) \) puede expresarse como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; f(x) = d_0 + \sum_{n=1}^{\infty} \left[ d_n \cos\left(\frac{2\pi n x}{T}\right) + c_n \sin\left(\frac{2\pi n x}{T}\right) \right] &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde los coeficientes \( d_n \) y \( c_n \) se obtienen mediante integrales que dependen de la función dada.&lt;br /&gt;
&lt;br /&gt;
=Base trigonométrica=&lt;br /&gt;
La &amp;lt;b&amp;gt;base trigonométrica&amp;lt;/b&amp;gt; es una base del espacio &amp;lt;math&amp;gt;L^2([-\pi,\pi])&amp;lt;/math&amp;gt;, por lo que las funciones pertenecientes a este espacio pueden escribirse como una combinación lineal de los elementos de la base. A estas expresiones se les llama &amp;lt;b&amp;gt;series de Fourier&amp;lt;/b&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
Dado que es una base ortonormal, sus coeficientes pueden calcularse mediante integración:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;d_0 = \int_{-\pi}^{\pi} f(x) \frac{1}{2} \, dx , \hspace{30px} d_n = \int_{-\pi}^{\pi} f(x) \cos(n\pi x) \, dx , \hspace{30px} c_n = \int_{-\pi}^{\pi} f(x) \sin(n\pi x) \, dx . &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Utilizando el siguiente código en MATLAB, se pueden representar los 10 primeros elementos de la base en una gráfica:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
% Definimos la malla para pintar funciones del [-1,1]&lt;br /&gt;
x = linspace(-1, 1, 1000);  &lt;br /&gt;
n_max = 5;                  % Número de funciones a pintar para seno y coseno&lt;br /&gt;
&lt;br /&gt;
% Pintamos la gráfica de f = 1/2&lt;br /&gt;
figure;&lt;br /&gt;
plot(x, 1/2 * ones(size(x)), 'k', 'LineWidth', 1, 'DisplayName', '1/2');&lt;br /&gt;
hold on;&lt;br /&gt;
&lt;br /&gt;
% Pintamos cos(n*pi*x) y sin(n*pi*x) para n = 1 hasta n_max&lt;br /&gt;
for n = 1:n_max&lt;br /&gt;
    % Definimos las funciones&lt;br /&gt;
    f_cos = cos(n * pi * x);&lt;br /&gt;
    f_sin = sin(n * pi * x);&lt;br /&gt;
    &lt;br /&gt;
    plot(x, f_cos, 'LineWidth', 1, 'DisplayName', sprintf('cos(%d\\pi x)', n));&lt;br /&gt;
    &lt;br /&gt;
    plot(x, f_sin,'--', 'LineWidth', 1, 'DisplayName', sprintf('sin(%d\\pi x)', n));&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Ponemos leyenda en la gráfica&lt;br /&gt;
title(sprintf('Base \\{1/2, cos(n\\pi x), sin(n\\pi x)\\} para n = 1 ... %d', n_max));&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('Valor de la función');&lt;br /&gt;
legend('show', 'Location', 'BestOutside'); &lt;br /&gt;
grid on;&lt;br /&gt;
axis([-1 1 -1.5 1.5]);&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center; margin-top: 10px;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;display: inline-block; margin-right: 10px;&amp;quot;&amp;gt;&lt;br /&gt;
    [[Archivo:EJ1_SENO_ACIRV.png|400px|none|Seno]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;&lt;br /&gt;
    [[Archivo:EJ1_COSENO_ACIRV.png|400px|none|Coseno]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;&lt;br /&gt;
    [[Archivo:EJ1_1_2_ACIRV.jpeg|400px|none|Coseno]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Aproximación de una función continua=&lt;br /&gt;
Vamos a aproximar la función \( f(x) = 1 - 2 \left| \frac{1}{2} - x \right| \). &lt;br /&gt;
&lt;br /&gt;
Primeramente, extendemos de forma impar la función al intervalo simétrico \([-1,1]\), obteniendo \( f_{\text{ext}}(x) = \operatorname{sign}(x) \cdot \left(1 - 2 \left| \frac{1}{2} - |x| \right| \right).  \) Es decir,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
f_{\text{ext}}(x) =&lt;br /&gt;
\begin{cases} &lt;br /&gt;
-(1 - 2 | \frac{1}{2} - |x| |), &amp;amp; \text{si } x \in [-1,0) \\ &lt;br /&gt;
1 - 2 \left| \frac{1}{2} - x \right|, &amp;amp; \text{si } x \in [0,1].&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La función es continua en \([-1,1]\), pues la extensión mantiene la continuidad en \(x=0\) y es continua en \( [-1,0) \cup (0,1] \).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora, calcularemos los coeficientes de Fourier con las fórmulas indicadas anteriormente numéricamente usando la fórmula del trapecio con una división bastante fina \( (10^{-3}) \). Como nuestra función es impar, su serie de Fourier también lo es; es decir, será una combinación lineal de los elementos &amp;lt;math&amp;gt;\{ \sin(n\pi x) \}_{n \in \mathbb{N}}&amp;lt;/math&amp;gt;. Verificamos que los coeficientes \( d_0 \) y \( d_n \) se anulan, pues son el resultado de integrales de una función impar sobre un intervalo simétrico.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; f_{\text{ext}}(x) \approx \sum_{n=1}^{\infty} c_n \sin(n\pi x). &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Definimos \( f_n(x) \) como la suma de los primeros \( n \) términos de la serie de Fourier:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; f_{n}(x) = \sum_{k=1}^{n} c_k \sin(k\pi x), \hspace{2mm} \text{con} \hspace{2mm} c_k = 2\int_{0}^{1} f(x)\sin{(k\pi x)} \,dx . &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt; &lt;br /&gt;
&lt;br /&gt;
A continuación, representamos gráficamente \( f(x) \) y \( f_n(x) \) para \( n=1,5,10 \).  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Untitled.png|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
%Escribimos la función original definida en el intervalo [0,1]:&lt;br /&gt;
f=@(x)1-2*abs(1/2-x);&lt;br /&gt;
%Modificamos la función para que sea impar en el intervalo [-1,1]&lt;br /&gt;
f_ext=@(x)sign(x).*(1-2*abs(1/2-abs(x)));&lt;br /&gt;
&lt;br /&gt;
%Graficamos la función estendida de forma impar&lt;br /&gt;
hold on&lt;br /&gt;
xx=linspace(-1,1,10000);&lt;br /&gt;
plot(xx,f_ext(xx))&lt;br /&gt;
%Modificamos los colores de las gráficas para que se vean mejor&lt;br /&gt;
newcolors = [0.83 0.14 0.14&lt;br /&gt;
             1.00 0.54 0.00&lt;br /&gt;
             0.47 0.25 0.80&lt;br /&gt;
             0.25 0.80 0.54];         &lt;br /&gt;
colororder(newcolors)&lt;br /&gt;
&lt;br /&gt;
%Ahora, vamos a calcular los coeficientes de la serie de Fourier empleando la fórmula del trapecio. &lt;br /&gt;
n=[1 5 10];&lt;br /&gt;
N=1000;                       %Número de puntos&lt;br /&gt;
a=0; b=1;                     %Extremos de los intervalos&lt;br /&gt;
h=(b-a)/N;                    %Tamaño de los intervalos&lt;br /&gt;
u=a:h:b;                      %Puntos de la partición&lt;br /&gt;
for i=1:length(n) &lt;br /&gt;
    SF=0&lt;br /&gt;
    for k=1:n(i)&lt;br /&gt;
        c_n=zeros(1,n(i));&lt;br /&gt;
        c=(2.*f(u).*sin(k.*pi.*u))';  %Función a integrar&lt;br /&gt;
        w=ones(N+1,1);                %Vector de pesos &lt;br /&gt;
        w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
        c_n(k)=h*w'*c;                %Coeficientes de la serie de Fourier&lt;br /&gt;
        SF=SF+c_n(k)*sin(k*pi*xx);    %Vamos calculando la propia serie&lt;br /&gt;
    end&lt;br /&gt;
    plot(xx,SF)                      %Graficamos la serie de Fourier para un n determinado&lt;br /&gt;
end&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Nótese que aumentar el número de términos de la serie de Fourier permite aproximar mejor la función original. &lt;br /&gt;
&lt;br /&gt;
Para hacer un estudio completo de las aproximaciones, vamos a representar el error de \( f_n(x) \) respecto a \( f(x) \) en función de \( n \) con normas \( L^2 \) y del supremo o uniforme.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:24_25_grupoACIRV_erroresej1.png|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
a=0; b=1;                    &lt;br /&gt;
u_1=a:10^(-3):b; &lt;br /&gt;
N=length(u_1)-1;&lt;br /&gt;
h=(b-a)/N;&lt;br /&gt;
&lt;br /&gt;
%Definir la función f(x)&lt;br /&gt;
f = @(x) 1 - 2*abs(1/2 - x);&lt;br /&gt;
&lt;br /&gt;
% Pesos para la integración con la regla del trapecio&lt;br /&gt;
w=ones(N+1,1);              &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
&lt;br /&gt;
% Inicialización de los errores&lt;br /&gt;
error1 = zeros(1,300);&lt;br /&gt;
error2 = zeros(1,300);&lt;br /&gt;
&lt;br /&gt;
for n=1:300&lt;br /&gt;
    f_n=zeros(1,N+1); % Aproximación con n términos&lt;br /&gt;
    for k=1:n&lt;br /&gt;
        g=(f(u_1).*sin(k*pi*u_1))'; &lt;br /&gt;
        a_k=2*h*w'*g; % Coeficiente de Fourier&lt;br /&gt;
        f_n=f_n+a_k*sin(k*pi*u_1); % Suma de términos&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    % Cálculo de errores&lt;br /&gt;
    g1=abs(f(u_1)-f_n).^2;&lt;br /&gt;
    error1(n)=(h*w'*g1')^(1/2); % Norma L^2&lt;br /&gt;
    error2(n)=max(abs(f(u_1)-f_n)); % Norma suprema&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Graficar errores con escala logarítmica en el eje y&lt;br /&gt;
nn=1:300;&lt;br /&gt;
hold on&lt;br /&gt;
plot(nn,error1,'b',LineWidth=1.5)&lt;br /&gt;
plot(nn,error2,'r',LineWidth=1.5)&lt;br /&gt;
xlabel('Valor de n')&lt;br /&gt;
ylabel('Error en escala logarítmica')&lt;br /&gt;
title('Errores en las normas L^2 y uniforme')&lt;br /&gt;
legend('Error en la norma $L^2$', 'Error en la norma uniforme')&lt;br /&gt;
grid on&lt;br /&gt;
set(gca, 'YScale', 'log') % Escala logarítmica en el eje y&lt;br /&gt;
ylim([1e-6 1]) % Límites del eje y&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Aproximación de una función discontinua=&lt;br /&gt;
&lt;br /&gt;
Ahora, vamos a aproximar la función \( f(x) = 1_{x \leq 1/4}(x) \).&lt;br /&gt;
&lt;br /&gt;
A diferencia del caso anterior, extendemos la función de forma par al intervalo \([-1,1]\), obteniendo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; f_{\text{ext}}(x) = \begin{cases} 1, &amp;amp; \text{si } x \in [-\frac{1}{4}, \frac{1}{4}] \\ 0, &amp;amp; \text{si } x \in [-1,-\frac{1}{4}) \cup (\frac{1}{4},1]. \end{cases} &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Observamos que la función posee dos discontinuidades, en \( x = -\frac{1}{4} \) y \( x = \frac{1}{4} \). Sin embargo, por la condición de Dirichlet, puesto que el número de discontinuidades es finito y la función es monótona a trozos, podemos hacer su transformada de Fourier.&lt;br /&gt;
&lt;br /&gt;
Como en este caso la función es par, su serie de Fourier es una combinación lineal de \( \{\frac{1}{2}, cos(n\pi x)\}_{n\in\mathbf{N}} \). Los coeficientes \( c_n \) se anulan al ser la integral de una función impar sobre un intervalo simétrico:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; f_{\text{ext}}(x) \approx d_0 +\sum^{\infty}_{n=1} d_ncos(n\pi x) &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Al representar \( f(x) \) y \( f_{n}(x) \) para \( n=\{1,...,10 \}\), observamos que aparecen unas oscilaciones conocidas como el fenómeno de Gibbs.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:24 25 grupoACIRV fourierej3.png|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
F=@(x) 1.*(x&amp;lt;=1/4);&lt;br /&gt;
g=@(x) F(-x);&lt;br /&gt;
xx=linspace(-1,1,10000);&lt;br /&gt;
fplot(F,[0 1],'b','linewidth',1.5)&lt;br /&gt;
hold on&lt;br /&gt;
fplot(g,[-1 0],'b','linewidth',1.5)&lt;br /&gt;
%Modificamos los colores de las gráficas para que se vean mejor&lt;br /&gt;
newcolors = [0.83 0.14 0.14&lt;br /&gt;
             1.00 0.54 0.00&lt;br /&gt;
             0.47 0.25 0.80&lt;br /&gt;
             0.25 0.80 0.54];         &lt;br /&gt;
colororder(newcolors)&lt;br /&gt;
&lt;br /&gt;
%Ahora, vamos a calcular los coeficientes de la serie de Fourier empleando la fórmula del trapecio. &lt;br /&gt;
n=1:1:10;&lt;br /&gt;
N=1000;                       %Número de puntos&lt;br /&gt;
a=0; b=1;                     %Extremos de los intervalos&lt;br /&gt;
h=(b-a)/N;                    %Tamaño de los intervalos&lt;br /&gt;
u=a:h:b;                      %Puntos de la partición&lt;br /&gt;
w=ones(N+1,1);                %Vector de pesos &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
d_0=0; d0=(2.*F(u).*(1/2))';&lt;br /&gt;
d_0=h*w'*d0;&lt;br /&gt;
SF=zeros(length(n),length(xx))+ones(length(n),length(xx))*d_0;&lt;br /&gt;
for i=1:length(n) &lt;br /&gt;
    for k=1:n(i)&lt;br /&gt;
        d_n=zeros(1,n(i));&lt;br /&gt;
        c=(2.*F(u).*cos(k.*pi.*u))';  %Función a integrar&lt;br /&gt;
        d_n(k)=h*w'*c;                %Coeficientes de la serie de Fourier&lt;br /&gt;
        SF(i,:)=SF(i,:)+d_n(k)*cos(k*pi*xx); %Vamos calculando la serie para cada n y la guardamos en la fila n de SF&lt;br /&gt;
    end&lt;br /&gt;
    plot(xx,SF(i,:))                  %Graficamos la serie de Fourier para un n determinado&lt;br /&gt;
end&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Para suavizar dichas oscilaciones utilizamos las sumas de Cesàro:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; S_N = \frac{1}{n+1} \sum^{N}_{n=0}f_n(x). &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podemos representarlas gráficamente para un n dado:&lt;br /&gt;
[[Archivo:24 25 grupoACIRV cesaroej3.png|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
F=@(x) 1.*(x&amp;lt;=1/4);&lt;br /&gt;
g=@(x) F(-x);&lt;br /&gt;
xx=linspace(-1,1,10000);&lt;br /&gt;
fplot(F,[0 1],'b','linewidth',1.5)&lt;br /&gt;
hold on&lt;br /&gt;
fplot(g,[-1 0],'b','linewidth',1.5)&lt;br /&gt;
%Modificamos los colores de las gráficas para que se vean mejor&lt;br /&gt;
newcolors = [0.83 0.14 0.14&lt;br /&gt;
             1.00 0.54 0.00&lt;br /&gt;
             0.47 0.25 0.80&lt;br /&gt;
             0.25 0.80 0.54];         &lt;br /&gt;
colororder(newcolors)&lt;br /&gt;
&lt;br /&gt;
%Ahora, vamos a calcular los coeficientes de la serie de Fourier empleando la fórmula del trapecio. &lt;br /&gt;
n=1:1:100;&lt;br /&gt;
N=1000;                       %Número de puntos&lt;br /&gt;
a=0; b=1;                     %Extremos de los intervalos&lt;br /&gt;
h=(b-a)/N;                    %Tamaño de los intervalos&lt;br /&gt;
u=a:h:b;                      %Puntos de la partición&lt;br /&gt;
w=ones(N+1,1);                %Vector de pesos &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
d_0=0; d0=(2.*F(u).*(1/2))';&lt;br /&gt;
d_0=h*w'*d0;&lt;br /&gt;
SF=zeros(length(n),length(xx))+ones(length(n),length(xx))*d_0;&lt;br /&gt;
for i=1:length(n) &lt;br /&gt;
    for k=1:n(i)&lt;br /&gt;
        d_n=zeros(1,n(i));&lt;br /&gt;
        c=(2.*F(u).*cos(k.*pi.*u))';  %Función a integrar&lt;br /&gt;
        d_n(k)=h*w'*c;                %Coeficientes de la serie de Fourier&lt;br /&gt;
        SF(i,:)=SF(i,:)+d_n(k)*cos(k*pi*xx); %Vamos calculando la serie para cada n y la guardamos en la fila n de SF&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
SNs=zeros(1,length(xx));              %Calculamos las sumas de Cesàro&lt;br /&gt;
for i=1:length(n)&lt;br /&gt;
    SNs=SNs+SF(i,:);&lt;br /&gt;
end&lt;br /&gt;
SN=1/(length(n)+1)*SNs;&lt;br /&gt;
plot(xx,SN)                           %Graficamos la aproximación obtenida.&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vamos a comparar el error de aproximación respecto valores de N. Lo vemos inicialmente para la aproximación por serie de Fourier y luego visualizamos el que resulta de usar las sumas de Cesàro&lt;br /&gt;
[[Archivo: EJ3_ERROR_FOURIER_ACIRV.jpeg|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a=0; b=1;                    &lt;br /&gt;
u_1=a:10^(-3):b;&lt;br /&gt;
N=length(u_1)-1;&lt;br /&gt;
h=(b-a)/N;&lt;br /&gt;
&lt;br /&gt;
% Definir la función f(x)&lt;br /&gt;
f = @(x) 1.*(x&amp;lt;=1/4);&lt;br /&gt;
f_ext = @(x) 1.*(x &amp;lt;= 1/4).*(x &amp;gt;= -1/4);&lt;br /&gt;
&lt;br /&gt;
% Pesos para la integración con la regla del trapecio&lt;br /&gt;
w=ones(N+1,1);              &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
&lt;br /&gt;
% Inicialización de los errores&lt;br /&gt;
error1 = zeros(1,300);&lt;br /&gt;
error2 = zeros(1,300);&lt;br /&gt;
&lt;br /&gt;
d_0=0;d0=(2.*f(u_1).*(1/2))';&lt;br /&gt;
d_0=h*w'*d0;&lt;br /&gt;
for n=1:300&lt;br /&gt;
    f_n=zeros(1,N+1); % Aproximación con n términos&lt;br /&gt;
    for k=1:n&lt;br /&gt;
        g=(f(u_1).*cos(k*pi*u_1))';&lt;br /&gt;
        d_k=2*h*w'*g; % Coeficiente de Fourier&lt;br /&gt;
        f_n=f_n+d_k*cos(k*pi*u_1); %Suma de términos&lt;br /&gt;
    end&lt;br /&gt;
f_n=f_n+d_0; %Función extendida&lt;br /&gt;
&lt;br /&gt;
    % Cálculo de errores&lt;br /&gt;
    g1=abs(f_ext(u_1)-f_n).^2;&lt;br /&gt;
    error1(n)=(h*w'*g1')^(1/2); % Norma L^2&lt;br /&gt;
    error2(n)=max(abs(f_ext(u_1)-f_n)); % Norma suprema&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Graficar errores con escala logarítmica en el eje y&lt;br /&gt;
nn=1:300;&lt;br /&gt;
hold on&lt;br /&gt;
plot(nn,error1,'b',LineWidth=1.5)&lt;br /&gt;
plot(nn,error2,'r',LineWidth=1.5)&lt;br /&gt;
xlabel('Valor de n')&lt;br /&gt;
ylabel('Error en escala logarítmica')&lt;br /&gt;
title('Errores en las normas L^2 y uniforme')&lt;br /&gt;
legend('Error en la norma $L^2$', 'Error en la norma uniforme')&lt;br /&gt;
grid on&lt;br /&gt;
set(gca, 'YScale', 'log') % Escala logarítmica en el eje y&lt;br /&gt;
ylim([1e-6 1]) % Límites del eje y&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo: imagen_error_sumas_cesaro_ACIRV.jpeg|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Definimos la función F y su extensión impar g&lt;br /&gt;
F = @(x) 1.*(x &amp;lt;= 1/4);&lt;br /&gt;
g = @(x) F(-x);&lt;br /&gt;
f_ext = @(x) 1.(x &amp;lt;= 1/4).(x &amp;gt;= -1/4);&lt;br /&gt;
&lt;br /&gt;
% Puntos para la evaluación&lt;br /&gt;
xx = linspace(-1,1, 10000);&lt;br /&gt;
&lt;br /&gt;
% Graficamos la función original&lt;br /&gt;
fplot(F, [0 1], 'b', 'linewidth', 1.5)&lt;br /&gt;
hold on&lt;br /&gt;
fplot(g, [-1 0], 'b', 'linewidth', 1.5)&lt;br /&gt;
&lt;br /&gt;
% Modificamos los colores de las gráficas para mejorar la visibilidad&lt;br /&gt;
newcolors = [0.83 0.14 0.14;&lt;br /&gt;
             1.00 0.54 0.00;&lt;br /&gt;
             0.47 0.25 0.80;&lt;br /&gt;
             0.25 0.80 0.54];         &lt;br /&gt;
colororder(newcolors)&lt;br /&gt;
&lt;br /&gt;
% Parámetros para la serie de Fourier&lt;br /&gt;
n = 1:1:300;    % Número de términos considerados&lt;br /&gt;
N = 1000;       % Número de puntos en la integración&lt;br /&gt;
a = 0; b = 1;   % Extremos del intervalo&lt;br /&gt;
h = (b-a)/N;    % Tamaño de los subintervalos&lt;br /&gt;
u = a:h:b;      % Puntos de la partición&lt;br /&gt;
w = ones(N+1,1); &lt;br /&gt;
w(1) = 1/2; &lt;br /&gt;
w(N+1) = 1/2;   % Pesos del método del trapecio&lt;br /&gt;
&lt;br /&gt;
% Cálculo de los coeficientes de Fourier&lt;br /&gt;
d_0 = 0; &lt;br /&gt;
d0 = (2.F(u).(1/2))';&lt;br /&gt;
d_0 = h*w'*d0;  % Coeficiente a_0&lt;br /&gt;
SF = zeros(length(n), length(xx)) + d_0;&lt;br /&gt;
&lt;br /&gt;
for i = 1:length(n)&lt;br /&gt;
    for k = 1:n(i)&lt;br /&gt;
        c = (2.*F(u).*cos(k.*pi.*u))';  % Función a integrar&lt;br /&gt;
        d_n(k) = h*w'*c;  % Coeficientes de la serie de Fourier&lt;br /&gt;
        SF(i,:) = SF(i,:) + d_n(k) * cos(k*pi*xx);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Aplicamos las sumas de Cesàro y guardamos en una matriz su valor para&lt;br /&gt;
% cada n&lt;br /&gt;
SN =  zeros(length(n), length(xx));&lt;br /&gt;
SNs = zeros(length(n), length(xx));&lt;br /&gt;
for j =1:length(n)&lt;br /&gt;
    for i = 1:j&lt;br /&gt;
        SNs(j,:) = SNs(j,:) + SF(i,:);&lt;br /&gt;
    end&lt;br /&gt;
    SN(j,:) = 1/(j+1) * SNs(j,:); % Suma de Cesàro&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Cálculo del error con normas L^∞ y L^2&lt;br /&gt;
error_uniforme = zeros(1, length(n));&lt;br /&gt;
error_L2 = zeros(1, length(n));&lt;br /&gt;
&lt;br /&gt;
w1 = ones(length(xx),1); &lt;br /&gt;
w1(1) = 1/2; &lt;br /&gt;
w1(length(xx)) = 1/2;   % Pesos del método del trapecio&lt;br /&gt;
h1=1/5000;&lt;br /&gt;
for i = 1:length(n)&lt;br /&gt;
    % Norma uniforme (máximo error absoluto)&lt;br /&gt;
    error_uniforme(i) = max(abs(f_ext(xx) - SN(i,:)));&lt;br /&gt;
&lt;br /&gt;
    % Norma L^2 usando la regla del trapecio&lt;br /&gt;
    integrando =2.*((f_ext(xx) - SN(i,:)).^2);&lt;br /&gt;
    error_L2(i) = sqrt(h1.*w1'*integrando');&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Graficamos los errores&lt;br /&gt;
figure&lt;br /&gt;
plot(n, error_uniforme, 'r', 'linewidth', 1.5)&lt;br /&gt;
hold on&lt;br /&gt;
plot(n, error_L2, 'b', 'linewidth', 1.5)&lt;br /&gt;
xlabel('Número de términos N')&lt;br /&gt;
ylabel('Error')&lt;br /&gt;
legend('Norma uniforme', 'Norma L^2')&lt;br /&gt;
title('Error de la Aproximación de Fourier')&lt;br /&gt;
grid on&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP24/25]]&lt;/div&gt;</summary>
		<author><name>Angelasotelo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_ACIRV)&amp;diff=84176</id>
		<title>Series de Fourier (Grupo ACIRV)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_ACIRV)&amp;diff=84176"/>
				<updated>2025-02-19T19:49:42Z</updated>
		
		<summary type="html">&lt;p&gt;Angelasotelo: /* Aproximación de una función discontinua */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Series de Fourier (Grupo ACIRV). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | Ángela Sotelo Fernández, Carmen Doñoro Molina, Inés Torres Gómez, Rubén Gutiérrez Hernández, Violeta Luján Barrios.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
Las series de Fourier constituyen una herramienta fundamental en el análisis matemático. Estas series, introducidas por Joseph Fourier en el siglo XIX, nos permiten representar funciones periódicas mediante una base de funciones trigonométricas.&lt;br /&gt;
&lt;br /&gt;
La idea es que cualquier función \( f(x) \) periódica con \( f\in L^2(-\pi,\pi) \) puede expresarse como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; f(x) = d_0 + \sum_{n=1}^{\infty} \left[ d_n \cos\left(\frac{2\pi n x}{T}\right) + c_n \sin\left(\frac{2\pi n x}{T}\right) \right] &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde los coeficientes \( d_n \) y \( c_n \) se obtienen mediante integrales que dependen de la función dada.&lt;br /&gt;
&lt;br /&gt;
=Base trigonométrica=&lt;br /&gt;
La &amp;lt;b&amp;gt;base trigonométrica&amp;lt;/b&amp;gt; es una base del espacio &amp;lt;math&amp;gt;L^2([-\pi,\pi])&amp;lt;/math&amp;gt;, por lo que las funciones pertenecientes a este espacio pueden escribirse como una combinación lineal de los elementos de la base. A estas expresiones se les llama &amp;lt;b&amp;gt;series de Fourier&amp;lt;/b&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
Dado que es una base ortonormal, sus coeficientes pueden calcularse mediante integración:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;d_0 = \int_{-\pi}^{\pi} f(x) \frac{1}{2} \, dx , \hspace{30px} d_n = \int_{-\pi}^{\pi} f(x) \cos(n\pi x) \, dx , \hspace{30px} c_n = \int_{-\pi}^{\pi} f(x) \sin(n\pi x) \, dx . &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Utilizando el siguiente código en MATLAB, se pueden representar los 10 primeros elementos de la base en una gráfica:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
% Definimos la malla para pintar funciones del [-1,1]&lt;br /&gt;
x = linspace(-1, 1, 1000);  &lt;br /&gt;
n_max = 5;                  % Número de funciones a pintar para seno y coseno&lt;br /&gt;
&lt;br /&gt;
% Pintamos la gráfica de f = 1/2&lt;br /&gt;
figure;&lt;br /&gt;
plot(x, 1/2 * ones(size(x)), 'k', 'LineWidth', 1, 'DisplayName', '1/2');&lt;br /&gt;
hold on;&lt;br /&gt;
&lt;br /&gt;
% Pintamos cos(n*pi*x) y sin(n*pi*x) para n = 1 hasta n_max&lt;br /&gt;
for n = 1:n_max&lt;br /&gt;
    % Definimos las funciones&lt;br /&gt;
    f_cos = cos(n * pi * x);&lt;br /&gt;
    f_sin = sin(n * pi * x);&lt;br /&gt;
    &lt;br /&gt;
    plot(x, f_cos, 'LineWidth', 1, 'DisplayName', sprintf('cos(%d\\pi x)', n));&lt;br /&gt;
    &lt;br /&gt;
    plot(x, f_sin,'--', 'LineWidth', 1, 'DisplayName', sprintf('sin(%d\\pi x)', n));&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Ponemos leyenda en la gráfica&lt;br /&gt;
title(sprintf('Base \\{1/2, cos(n\\pi x), sin(n\\pi x)\\} para n = 1 ... %d', n_max));&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('Valor de la función');&lt;br /&gt;
legend('show', 'Location', 'BestOutside'); &lt;br /&gt;
grid on;&lt;br /&gt;
axis([-1 1 -1.5 1.5]);&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center; margin-top: 10px;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;display: inline-block; margin-right: 10px;&amp;quot;&amp;gt;&lt;br /&gt;
    [[Archivo:EJ1_SENO_ACIRV.png|400px|none|Seno]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;&lt;br /&gt;
    [[Archivo:EJ1_COSENO_ACIRV.png|400px|none|Coseno]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;&lt;br /&gt;
    [[Archivo:EJ1_1_2_ACIRV.jpeg|400px|none|Coseno]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Aproximación de una función continua=&lt;br /&gt;
Vamos a aproximar la función \( f(x) = 1 - 2 \left| \frac{1}{2} - x \right| \). &lt;br /&gt;
&lt;br /&gt;
Primeramente, extendemos de forma impar la función al intervalo simétrico \([-1,1]\), obteniendo \( f_{\text{ext}}(x) = \operatorname{sign}(x) \cdot \left(1 - 2 \left| \frac{1}{2} - |x| \right| \right).  \) Es decir,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
f_{\text{ext}}(x) =&lt;br /&gt;
\begin{cases} &lt;br /&gt;
-(1 - 2 | \frac{1}{2} - |x| |), &amp;amp; \text{si } x \in [-1,0) \\ &lt;br /&gt;
1 - 2 \left| \frac{1}{2} - x \right|, &amp;amp; \text{si } x \in [0,1].&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La función es continua en \([-1,1]\), pues la extensión mantiene la continuidad en \(x=0\) y es continua en \( [-1,0) \cup (0,1] \).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora, calcularemos los coeficientes de Fourier con las fórmulas indicadas anteriormente numéricamente usando la fórmula del trapecio con una división bastante fina \( (10^{-3}) \). Como nuestra función es impar, su serie de Fourier también lo es; es decir, será una combinación lineal de los elementos &amp;lt;math&amp;gt;\{ \sin(n\pi x) \}_{n \in \mathbb{N}}&amp;lt;/math&amp;gt;. Verificamos que los coeficientes \( d_0 \) y \( d_n \) se anulan, pues son el resultado de integrales de una función impar sobre un intervalo simétrico.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; f_{\text{ext}}(x) \approx \sum_{n=1}^{\infty} c_n \sin(n\pi x). &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Definimos \( f_n(x) \) como la suma de los primeros \( n \) términos de la serie de Fourier:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; f_{n}(x) = \sum_{k=1}^{n} c_k \sin(k\pi x), \hspace{2mm} \text{con} \hspace{2mm} c_k = 2\int_{0}^{1} f(x)\sin{(k\pi x)} \,dx . &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt; &lt;br /&gt;
&lt;br /&gt;
A continuación, representamos gráficamente \( f(x) \) y \( f_n(x) \) para \( n=1,5,10 \).  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Untitled.png|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
%Escribimos la función original definida en el intervalo [0,1]:&lt;br /&gt;
f=@(x)1-2*abs(1/2-x);&lt;br /&gt;
%Modificamos la función para que sea impar en el intervalo [-1,1]&lt;br /&gt;
f_ext=@(x)sign(x).*(1-2*abs(1/2-abs(x)));&lt;br /&gt;
&lt;br /&gt;
%Graficamos la función estendida de forma impar&lt;br /&gt;
hold on&lt;br /&gt;
xx=linspace(-1,1,10000);&lt;br /&gt;
plot(xx,f_ext(xx))&lt;br /&gt;
%Modificamos los colores de las gráficas para que se vean mejor&lt;br /&gt;
newcolors = [0.83 0.14 0.14&lt;br /&gt;
             1.00 0.54 0.00&lt;br /&gt;
             0.47 0.25 0.80&lt;br /&gt;
             0.25 0.80 0.54];         &lt;br /&gt;
colororder(newcolors)&lt;br /&gt;
&lt;br /&gt;
%Ahora, vamos a calcular los coeficientes de la serie de Fourier empleando la fórmula del trapecio. &lt;br /&gt;
n=[1 5 10];&lt;br /&gt;
N=1000;                       %Número de puntos&lt;br /&gt;
a=0; b=1;                     %Extremos de los intervalos&lt;br /&gt;
h=(b-a)/N;                    %Tamaño de los intervalos&lt;br /&gt;
u=a:h:b;                      %Puntos de la partición&lt;br /&gt;
for i=1:length(n) &lt;br /&gt;
    SF=0&lt;br /&gt;
    for k=1:n(i)&lt;br /&gt;
        c_n=zeros(1,n(i));&lt;br /&gt;
        c=(2.*f(u).*sin(k.*pi.*u))';  %Función a integrar&lt;br /&gt;
        w=ones(N+1,1);                %Vector de pesos &lt;br /&gt;
        w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
        c_n(k)=h*w'*c;                %Coeficientes de la serie de Fourier&lt;br /&gt;
        SF=SF+c_n(k)*sin(k*pi*xx);    %Vamos calculando la propia serie&lt;br /&gt;
    end&lt;br /&gt;
    plot(xx,SF)                      %Graficamos la serie de Fourier para un n determinado&lt;br /&gt;
end&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Nótese que aumentar el número de términos de la serie de Fourier permite aproximar mejor la función original. &lt;br /&gt;
&lt;br /&gt;
Para hacer un estudio completo de las aproximaciones, vamos a representar el error de \( f_n(x) \) respecto a \( f(x) \) en función de \( n \) con normas \( L^2 \) y del supremo o uniforme.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:24_25_grupoACIRV_erroresej1.png|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
a=0; b=1;                    &lt;br /&gt;
u_1=a:10^(-3):b; &lt;br /&gt;
N=length(u_1)-1;&lt;br /&gt;
h=(b-a)/N;&lt;br /&gt;
&lt;br /&gt;
%Definir la función f(x)&lt;br /&gt;
f = @(x) 1 - 2*abs(1/2 - x);&lt;br /&gt;
&lt;br /&gt;
% Pesos para la integración con la regla del trapecio&lt;br /&gt;
w=ones(N+1,1);              &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
&lt;br /&gt;
% Inicialización de los errores&lt;br /&gt;
error1 = zeros(1,300);&lt;br /&gt;
error2 = zeros(1,300);&lt;br /&gt;
&lt;br /&gt;
for n=1:300&lt;br /&gt;
    f_n=zeros(1,N+1); % Aproximación con n términos&lt;br /&gt;
    for k=1:n&lt;br /&gt;
        g=(f(u_1).*sin(k*pi*u_1))'; &lt;br /&gt;
        a_k=2*h*w'*g; % Coeficiente de Fourier&lt;br /&gt;
        f_n=f_n+a_k*sin(k*pi*u_1); % Suma de términos&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    % Cálculo de errores&lt;br /&gt;
    g1=abs(f(u_1)-f_n).^2;&lt;br /&gt;
    error1(n)=(h*w'*g1')^(1/2); % Norma L^2&lt;br /&gt;
    error2(n)=max(abs(f(u_1)-f_n)); % Norma suprema&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Graficar errores con escala logarítmica en el eje y&lt;br /&gt;
nn=1:300;&lt;br /&gt;
hold on&lt;br /&gt;
plot(nn,error1,'b',LineWidth=1.5)&lt;br /&gt;
plot(nn,error2,'r',LineWidth=1.5)&lt;br /&gt;
xlabel('Valor de n')&lt;br /&gt;
ylabel('Error en escala logarítmica')&lt;br /&gt;
title('Errores en las normas L^2 y uniforme')&lt;br /&gt;
legend('Error en la norma $L^2$', 'Error en la norma uniforme')&lt;br /&gt;
grid on&lt;br /&gt;
set(gca, 'YScale', 'log') % Escala logarítmica en el eje y&lt;br /&gt;
ylim([1e-6 1]) % Límites del eje y&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Aproximación de una función discontinua=&lt;br /&gt;
&lt;br /&gt;
Ahora, vamos a aproximar la función \( f(x) = 1_{x \leq 1/4}(x) \).&lt;br /&gt;
&lt;br /&gt;
A diferencia del caso anterior, extendemos la función de forma par al intervalo \([-1,1]\), obteniendo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; f_{\text{ext}}(x) = \begin{cases} 1, &amp;amp; \text{si } x \in [-\frac{1}{4}, \frac{1}{4}] \\ 0, &amp;amp; \text{si } x \in [-1,-\frac{1}{4}) \cup (\frac{1}{4},1]. \end{cases} &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Observamos que la función posee dos discontinuidades, en \( x = -\frac{1}{4} \) y \( x = \frac{1}{4} \). Sin embargo, por la condición de Dirichlet, puesto que el número de discontinuidades es finito y la función es monótona a trozos, podemos hacer su transformada de Fourier.&lt;br /&gt;
&lt;br /&gt;
Como en este caso la función es par, su serie de Fourier es una combinación lineal de \( \{\frac{1}{2}, cos(n\pi x)\}_{n\in\mathbf{N}} \). Los coeficientes \( c_n \) se anulan al ser la integral de una función impar sobre un intervalo simétrico:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; f_{\text{ext}}(x) \approx d_0 +\sum^{\infty}_{n=1} d_ncos(n\pi x) &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Al representar \( f(x) \) y \( f_{n}(x) \) para \( n=\{1,...,10 \}\), observamos que aparecen unas oscilaciones conocidas como el fenómeno de Gibbs.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:24 25 grupoACIRV fourierej3.png|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
F=@(x) 1.*(x&amp;lt;=1/4);&lt;br /&gt;
g=@(x) F(-x);&lt;br /&gt;
xx=linspace(-1,1,10000);&lt;br /&gt;
fplot(F,[0 1],'b','linewidth',1.5)&lt;br /&gt;
hold on&lt;br /&gt;
fplot(g,[-1 0],'b','linewidth',1.5)&lt;br /&gt;
%Modificamos los colores de las gráficas para que se vean mejor&lt;br /&gt;
newcolors = [0.83 0.14 0.14&lt;br /&gt;
             1.00 0.54 0.00&lt;br /&gt;
             0.47 0.25 0.80&lt;br /&gt;
             0.25 0.80 0.54];         &lt;br /&gt;
colororder(newcolors)&lt;br /&gt;
&lt;br /&gt;
%Ahora, vamos a calcular los coeficientes de la serie de Fourier empleando la fórmula del trapecio. &lt;br /&gt;
n=1:1:10;&lt;br /&gt;
N=1000;                       %Número de puntos&lt;br /&gt;
a=0; b=1;                     %Extremos de los intervalos&lt;br /&gt;
h=(b-a)/N;                    %Tamaño de los intervalos&lt;br /&gt;
u=a:h:b;                      %Puntos de la partición&lt;br /&gt;
w=ones(N+1,1);                %Vector de pesos &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
d_0=0; d0=(2.*F(u).*(1/2))';&lt;br /&gt;
d_0=h*w'*d0;&lt;br /&gt;
SF=zeros(length(n),length(xx))+ones(length(n),length(xx))*d_0;&lt;br /&gt;
for i=1:length(n) &lt;br /&gt;
    for k=1:n(i)&lt;br /&gt;
        d_n=zeros(1,n(i));&lt;br /&gt;
        c=(2.*F(u).*cos(k.*pi.*u))';  %Función a integrar&lt;br /&gt;
        d_n(k)=h*w'*c;                %Coeficientes de la serie de Fourier&lt;br /&gt;
        SF(i,:)=SF(i,:)+d_n(k)*cos(k*pi*xx); %Vamos calculando la serie para cada n y la guardamos en la fila n de SF&lt;br /&gt;
    end&lt;br /&gt;
    plot(xx,SF(i,:))                  %Graficamos la serie de Fourier para un n determinado&lt;br /&gt;
end&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Para suavizar dichas oscilaciones utilizamos las sumas de Cesàro:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; S_N = \frac{1}{n+1} \sum^{N}_{n=0}f_n(x). &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podemos representarlas gráficamente para un n dado:&lt;br /&gt;
[[Archivo:24 25 grupoACIRV cesaroej3.png|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
F=@(x) 1.*(x&amp;lt;=1/4);&lt;br /&gt;
g=@(x) F(-x);&lt;br /&gt;
xx=linspace(-1,1,10000);&lt;br /&gt;
fplot(F,[0 1],'b','linewidth',1.5)&lt;br /&gt;
hold on&lt;br /&gt;
fplot(g,[-1 0],'b','linewidth',1.5)&lt;br /&gt;
%Modificamos los colores de las gráficas para que se vean mejor&lt;br /&gt;
newcolors = [0.83 0.14 0.14&lt;br /&gt;
             1.00 0.54 0.00&lt;br /&gt;
             0.47 0.25 0.80&lt;br /&gt;
             0.25 0.80 0.54];         &lt;br /&gt;
colororder(newcolors)&lt;br /&gt;
&lt;br /&gt;
%Ahora, vamos a calcular los coeficientes de la serie de Fourier empleando la fórmula del trapecio. &lt;br /&gt;
n=1:1:100;&lt;br /&gt;
N=1000;                       %Número de puntos&lt;br /&gt;
a=0; b=1;                     %Extremos de los intervalos&lt;br /&gt;
h=(b-a)/N;                    %Tamaño de los intervalos&lt;br /&gt;
u=a:h:b;                      %Puntos de la partición&lt;br /&gt;
w=ones(N+1,1);                %Vector de pesos &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
d_0=0; d0=(2.*F(u).*(1/2))';&lt;br /&gt;
d_0=h*w'*d0;&lt;br /&gt;
SF=zeros(length(n),length(xx))+ones(length(n),length(xx))*d_0;&lt;br /&gt;
for i=1:length(n) &lt;br /&gt;
    for k=1:n(i)&lt;br /&gt;
        d_n=zeros(1,n(i));&lt;br /&gt;
        c=(2.*F(u).*cos(k.*pi.*u))';  %Función a integrar&lt;br /&gt;
        d_n(k)=h*w'*c;                %Coeficientes de la serie de Fourier&lt;br /&gt;
        SF(i,:)=SF(i,:)+d_n(k)*cos(k*pi*xx); %Vamos calculando la serie para cada n y la guardamos en la fila n de SF&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
SNs=zeros(1,length(xx));              %Calculamos las sumas de Cesàro&lt;br /&gt;
for i=1:length(n)&lt;br /&gt;
    SNs=SNs+SF(i,:);&lt;br /&gt;
end&lt;br /&gt;
SN=1/(length(n)+1)*SNs;&lt;br /&gt;
plot(xx,SN)                           %Graficamos la aproximación obtenida.&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vamos a comparar el error de aproximación respecto valores de N. Lo haremos inicialmente para la aproximación por serie de Fourier y para la sumade Cèsaro.&lt;br /&gt;
[[Archivo: EJ3_ERROR_FOURIER_ACIRV.jpeg|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a=0; b=1;                    &lt;br /&gt;
u_1=a:10^(-3):b;&lt;br /&gt;
N=length(u_1)-1;&lt;br /&gt;
h=(b-a)/N;&lt;br /&gt;
&lt;br /&gt;
% Definir la función f(x)&lt;br /&gt;
f = @(x) 1.*(x&amp;lt;=1/4);&lt;br /&gt;
f_ext = @(x) 1.*(x &amp;lt;= 1/4).*(x &amp;gt;= -1/4);&lt;br /&gt;
&lt;br /&gt;
% Pesos para la integración con la regla del trapecio&lt;br /&gt;
w=ones(N+1,1);              &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
&lt;br /&gt;
% Inicialización de los errores&lt;br /&gt;
error1 = zeros(1,300);&lt;br /&gt;
error2 = zeros(1,300);&lt;br /&gt;
&lt;br /&gt;
d_0=0;d0=(2.*f(u_1).*(1/2))';&lt;br /&gt;
d_0=h*w'*d0;&lt;br /&gt;
for n=1:300&lt;br /&gt;
    f_n=zeros(1,N+1); % Aproximación con n términos&lt;br /&gt;
    for k=1:n&lt;br /&gt;
        g=(f(u_1).*cos(k*pi*u_1))';&lt;br /&gt;
        d_k=2*h*w'*g; % Coeficiente de Fourier&lt;br /&gt;
        f_n=f_n+d_k*cos(k*pi*u_1); %Suma de términos&lt;br /&gt;
    end&lt;br /&gt;
f_n=f_n+d_0; %Función extendida&lt;br /&gt;
&lt;br /&gt;
    % Cálculo de errores&lt;br /&gt;
    g1=abs(f_ext(u_1)-f_n).^2;&lt;br /&gt;
    error1(n)=(h*w'*g1')^(1/2); % Norma L^2&lt;br /&gt;
    error2(n)=max(abs(f_ext(u_1)-f_n)); % Norma suprema&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Graficar errores con escala logarítmica en el eje y&lt;br /&gt;
nn=1:300;&lt;br /&gt;
hold on&lt;br /&gt;
plot(nn,error1,'b',LineWidth=1.5)&lt;br /&gt;
plot(nn,error2,'r',LineWidth=1.5)&lt;br /&gt;
xlabel('Valor de n')&lt;br /&gt;
ylabel('Error en escala logarítmica')&lt;br /&gt;
title('Errores en las normas L^2 y uniforme')&lt;br /&gt;
legend('Error en la norma $L^2$', 'Error en la norma uniforme')&lt;br /&gt;
grid on&lt;br /&gt;
set(gca, 'YScale', 'log') % Escala logarítmica en el eje y&lt;br /&gt;
ylim([1e-6 1]) % Límites del eje y&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo: imagen_error_sumas_cesaro_ACIRV.jpeg|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Definimos la función F y su extensión impar g&lt;br /&gt;
F = @(x) 1.*(x &amp;lt;= 1/4);&lt;br /&gt;
g = @(x) F(-x);&lt;br /&gt;
f_ext = @(x) 1.*(x &amp;lt;= 1/4).*(x &amp;gt;= -1/4);&lt;br /&gt;
&lt;br /&gt;
% Puntos para la evaluación&lt;br /&gt;
xx = linspace(-1, 1, 10000);&lt;br /&gt;
&lt;br /&gt;
% Graficamos la función original&lt;br /&gt;
fplot(F, [0 1], 'b', 'linewidth', 1.5)&lt;br /&gt;
hold on&lt;br /&gt;
fplot(g, [-1 0], 'b', 'linewidth', 1.5)&lt;br /&gt;
&lt;br /&gt;
% Modificamos los colores de las gráficas para mejorar la visibilidad&lt;br /&gt;
newcolors = [0.83 0.14 0.14;&lt;br /&gt;
             1.00 0.54 0.00;&lt;br /&gt;
             0.47 0.25 0.80;&lt;br /&gt;
             0.25 0.80 0.54];         &lt;br /&gt;
colororder(newcolors)&lt;br /&gt;
&lt;br /&gt;
% Parámetros para la serie de Fourier&lt;br /&gt;
n = 1:1:300;    % Número de términos considerados&lt;br /&gt;
N = 1000;       % Número de puntos en la integración&lt;br /&gt;
a = 0; b = 1;   % Extremos del intervalo&lt;br /&gt;
h = (b-a)/N;    % Tamaño de los subintervalos&lt;br /&gt;
u = a:h:b;      % Puntos de la partición&lt;br /&gt;
w = ones(N+1,1); &lt;br /&gt;
w(1) = 1/2; &lt;br /&gt;
w(N+1) = 1/2;   % Pesos del método del trapecio&lt;br /&gt;
&lt;br /&gt;
% Cálculo de los coeficientes de Fourier&lt;br /&gt;
d_0 = 0; &lt;br /&gt;
d0 = (2.*F(u).*(1/2))';&lt;br /&gt;
d_0 = h*w'*d0;  % Coeficiente a_0&lt;br /&gt;
SF = zeros(length(n), length(xx)) + d_0;&lt;br /&gt;
&lt;br /&gt;
for i = 1:length(n)&lt;br /&gt;
    for k = 1:n(i)&lt;br /&gt;
        c = (2.*F(u).*cos(k.*pi.*u))';  % Función a integrar&lt;br /&gt;
        d_n(k) = h*w'*c;  % Coeficientes de la serie de Fourier&lt;br /&gt;
        SF(i,:) = SF(i,:) + d_n(k) * cos(k*pi*xx);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Aplicamos las sumas de Cesàro&lt;br /&gt;
SNs = zeros(1, length(xx));&lt;br /&gt;
for i = 1:length(n)&lt;br /&gt;
    SNs = SNs + SF(i,:);&lt;br /&gt;
end&lt;br /&gt;
SN = 1/(length(n)+1) * SNs; % Suma de Cesàro&lt;br /&gt;
&lt;br /&gt;
% Graficamos la aproximación final&lt;br /&gt;
plot(xx, SN)&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
% Cálculo del error con normas L^∞ y L^2&lt;br /&gt;
error_uniforme = zeros(1, length(n));&lt;br /&gt;
error_L2 = zeros(1, length(n));&lt;br /&gt;
&lt;br /&gt;
for i = 1:length(n)&lt;br /&gt;
    % Norma uniforme (máximo error absoluto)&lt;br /&gt;
    error_uniforme(i) = max(abs(F(xx) - SF(i,:)));&lt;br /&gt;
&lt;br /&gt;
    % Norma L^2 usando la regla del trapecio&lt;br /&gt;
    integrando = (F(u) - SF(i, round(linspace(1, length(xx), length(u)))).^2);&lt;br /&gt;
    error_L2(i) = sqrt(h * (w' * integrando'));&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Graficamos los errores&lt;br /&gt;
figure&lt;br /&gt;
semilogy(n, error_uniforme, 'r', 'linewidth', 1.5)&lt;br /&gt;
hold on&lt;br /&gt;
semilogy(n, error_L2, 'b', 'linewidth', 1.5)&lt;br /&gt;
xlabel('Valor de n')&lt;br /&gt;
ylabel('Error en escala logarítmica')&lt;br /&gt;
title('Errores en las normas L^2 y uniforme')&lt;br /&gt;
legend('Error en la norma $L^2$', 'Error en la norma uniforme')&lt;br /&gt;
grid on&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>Angelasotelo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:Imagen_error_sumas_cesaro_ACIRV.jpeg&amp;diff=84175</id>
		<title>Archivo:Imagen error sumas cesaro ACIRV.jpeg</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:Imagen_error_sumas_cesaro_ACIRV.jpeg&amp;diff=84175"/>
				<updated>2025-02-19T19:48:40Z</updated>
		
		<summary type="html">&lt;p&gt;Angelasotelo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Angelasotelo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_ACIRV)&amp;diff=84174</id>
		<title>Series de Fourier (Grupo ACIRV)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_ACIRV)&amp;diff=84174"/>
				<updated>2025-02-19T19:47:06Z</updated>
		
		<summary type="html">&lt;p&gt;Angelasotelo: /* Aproximación de una función continua */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Series de Fourier (Grupo ACIRV). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | Ángela Sotelo Fernández, Carmen Doñoro Molina, Inés Torres Gómez, Rubén Gutiérrez Hernández, Violeta Luján Barrios.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
Las series de Fourier constituyen una herramienta fundamental en el análisis matemático. Estas series, introducidas por Joseph Fourier en el siglo XIX, nos permiten representar funciones periódicas mediante una base de funciones trigonométricas.&lt;br /&gt;
&lt;br /&gt;
La idea es que cualquier función \( f(x) \) periódica con \( f\in L^2(-\pi,\pi) \) puede expresarse como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; f(x) = d_0 + \sum_{n=1}^{\infty} \left[ d_n \cos\left(\frac{2\pi n x}{T}\right) + c_n \sin\left(\frac{2\pi n x}{T}\right) \right] &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde los coeficientes \( d_n \) y \( c_n \) se obtienen mediante integrales que dependen de la función dada.&lt;br /&gt;
&lt;br /&gt;
=Base trigonométrica=&lt;br /&gt;
La &amp;lt;b&amp;gt;base trigonométrica&amp;lt;/b&amp;gt; es una base del espacio &amp;lt;math&amp;gt;L^2([-\pi,\pi])&amp;lt;/math&amp;gt;, por lo que las funciones pertenecientes a este espacio pueden escribirse como una combinación lineal de los elementos de la base. A estas expresiones se les llama &amp;lt;b&amp;gt;series de Fourier&amp;lt;/b&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
Dado que es una base ortonormal, sus coeficientes pueden calcularse mediante integración:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;d_0 = \int_{-\pi}^{\pi} f(x) \frac{1}{2} \, dx , \hspace{30px} d_n = \int_{-\pi}^{\pi} f(x) \cos(n\pi x) \, dx , \hspace{30px} c_n = \int_{-\pi}^{\pi} f(x) \sin(n\pi x) \, dx . &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Utilizando el siguiente código en MATLAB, se pueden representar los 10 primeros elementos de la base en una gráfica:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
% Definimos la malla para pintar funciones del [-1,1]&lt;br /&gt;
x = linspace(-1, 1, 1000);  &lt;br /&gt;
n_max = 5;                  % Número de funciones a pintar para seno y coseno&lt;br /&gt;
&lt;br /&gt;
% Pintamos la gráfica de f = 1/2&lt;br /&gt;
figure;&lt;br /&gt;
plot(x, 1/2 * ones(size(x)), 'k', 'LineWidth', 1, 'DisplayName', '1/2');&lt;br /&gt;
hold on;&lt;br /&gt;
&lt;br /&gt;
% Pintamos cos(n*pi*x) y sin(n*pi*x) para n = 1 hasta n_max&lt;br /&gt;
for n = 1:n_max&lt;br /&gt;
    % Definimos las funciones&lt;br /&gt;
    f_cos = cos(n * pi * x);&lt;br /&gt;
    f_sin = sin(n * pi * x);&lt;br /&gt;
    &lt;br /&gt;
    plot(x, f_cos, 'LineWidth', 1, 'DisplayName', sprintf('cos(%d\\pi x)', n));&lt;br /&gt;
    &lt;br /&gt;
    plot(x, f_sin,'--', 'LineWidth', 1, 'DisplayName', sprintf('sin(%d\\pi x)', n));&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Ponemos leyenda en la gráfica&lt;br /&gt;
title(sprintf('Base \\{1/2, cos(n\\pi x), sin(n\\pi x)\\} para n = 1 ... %d', n_max));&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('Valor de la función');&lt;br /&gt;
legend('show', 'Location', 'BestOutside'); &lt;br /&gt;
grid on;&lt;br /&gt;
axis([-1 1 -1.5 1.5]);&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center; margin-top: 10px;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;display: inline-block; margin-right: 10px;&amp;quot;&amp;gt;&lt;br /&gt;
    [[Archivo:EJ1_SENO_ACIRV.png|400px|none|Seno]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;&lt;br /&gt;
    [[Archivo:EJ1_COSENO_ACIRV.png|400px|none|Coseno]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;&lt;br /&gt;
    [[Archivo:EJ1_1_2_ACIRV.jpeg|400px|none|Coseno]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Aproximación de una función continua=&lt;br /&gt;
Vamos a aproximar la función \( f(x) = 1 - 2 \left| \frac{1}{2} - x \right| \). &lt;br /&gt;
&lt;br /&gt;
Primeramente, extendemos de forma impar la función al intervalo simétrico \([-1,1]\), obteniendo \( f_{\text{ext}}(x) = \operatorname{sign}(x) \cdot \left(1 - 2 \left| \frac{1}{2} - |x| \right| \right).  \) Es decir,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
f_{\text{ext}}(x) =&lt;br /&gt;
\begin{cases} &lt;br /&gt;
-(1 - 2 | \frac{1}{2} - |x| |), &amp;amp; \text{si } x \in [-1,0) \\ &lt;br /&gt;
1 - 2 \left| \frac{1}{2} - x \right|, &amp;amp; \text{si } x \in [0,1].&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La función es continua en \([-1,1]\), pues la extensión mantiene la continuidad en \(x=0\) y es continua en \( [-1,0) \cup (0,1] \).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora, calcularemos los coeficientes de Fourier con las fórmulas indicadas anteriormente numéricamente usando la fórmula del trapecio con una división bastante fina \( (10^{-3}) \). Como nuestra función es impar, su serie de Fourier también lo es; es decir, será una combinación lineal de los elementos &amp;lt;math&amp;gt;\{ \sin(n\pi x) \}_{n \in \mathbb{N}}&amp;lt;/math&amp;gt;. Verificamos que los coeficientes \( d_0 \) y \( d_n \) se anulan, pues son el resultado de integrales de una función impar sobre un intervalo simétrico.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; f_{\text{ext}}(x) \approx \sum_{n=1}^{\infty} c_n \sin(n\pi x). &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Definimos \( f_n(x) \) como la suma de los primeros \( n \) términos de la serie de Fourier:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; f_{n}(x) = \sum_{k=1}^{n} c_k \sin(k\pi x), \hspace{2mm} \text{con} \hspace{2mm} c_k = 2\int_{0}^{1} f(x)\sin{(k\pi x)} \,dx . &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt; &lt;br /&gt;
&lt;br /&gt;
A continuación, representamos gráficamente \( f(x) \) y \( f_n(x) \) para \( n=1,5,10 \).  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Untitled.png|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
%Escribimos la función original definida en el intervalo [0,1]:&lt;br /&gt;
f=@(x)1-2*abs(1/2-x);&lt;br /&gt;
%Modificamos la función para que sea impar en el intervalo [-1,1]&lt;br /&gt;
f_ext=@(x)sign(x).*(1-2*abs(1/2-abs(x)));&lt;br /&gt;
&lt;br /&gt;
%Graficamos la función estendida de forma impar&lt;br /&gt;
hold on&lt;br /&gt;
xx=linspace(-1,1,10000);&lt;br /&gt;
plot(xx,f_ext(xx))&lt;br /&gt;
%Modificamos los colores de las gráficas para que se vean mejor&lt;br /&gt;
newcolors = [0.83 0.14 0.14&lt;br /&gt;
             1.00 0.54 0.00&lt;br /&gt;
             0.47 0.25 0.80&lt;br /&gt;
             0.25 0.80 0.54];         &lt;br /&gt;
colororder(newcolors)&lt;br /&gt;
&lt;br /&gt;
%Ahora, vamos a calcular los coeficientes de la serie de Fourier empleando la fórmula del trapecio. &lt;br /&gt;
n=[1 5 10];&lt;br /&gt;
N=1000;                       %Número de puntos&lt;br /&gt;
a=0; b=1;                     %Extremos de los intervalos&lt;br /&gt;
h=(b-a)/N;                    %Tamaño de los intervalos&lt;br /&gt;
u=a:h:b;                      %Puntos de la partición&lt;br /&gt;
for i=1:length(n) &lt;br /&gt;
    SF=0&lt;br /&gt;
    for k=1:n(i)&lt;br /&gt;
        c_n=zeros(1,n(i));&lt;br /&gt;
        c=(2.*f(u).*sin(k.*pi.*u))';  %Función a integrar&lt;br /&gt;
        w=ones(N+1,1);                %Vector de pesos &lt;br /&gt;
        w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
        c_n(k)=h*w'*c;                %Coeficientes de la serie de Fourier&lt;br /&gt;
        SF=SF+c_n(k)*sin(k*pi*xx);    %Vamos calculando la propia serie&lt;br /&gt;
    end&lt;br /&gt;
    plot(xx,SF)                      %Graficamos la serie de Fourier para un n determinado&lt;br /&gt;
end&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Nótese que aumentar el número de términos de la serie de Fourier permite aproximar mejor la función original. &lt;br /&gt;
&lt;br /&gt;
Para hacer un estudio completo de las aproximaciones, vamos a representar el error de \( f_n(x) \) respecto a \( f(x) \) en función de \( n \) con normas \( L^2 \) y del supremo o uniforme.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:24_25_grupoACIRV_erroresej1.png|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
a=0; b=1;                    &lt;br /&gt;
u_1=a:10^(-3):b; &lt;br /&gt;
N=length(u_1)-1;&lt;br /&gt;
h=(b-a)/N;&lt;br /&gt;
&lt;br /&gt;
%Definir la función f(x)&lt;br /&gt;
f = @(x) 1 - 2*abs(1/2 - x);&lt;br /&gt;
&lt;br /&gt;
% Pesos para la integración con la regla del trapecio&lt;br /&gt;
w=ones(N+1,1);              &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
&lt;br /&gt;
% Inicialización de los errores&lt;br /&gt;
error1 = zeros(1,300);&lt;br /&gt;
error2 = zeros(1,300);&lt;br /&gt;
&lt;br /&gt;
for n=1:300&lt;br /&gt;
    f_n=zeros(1,N+1); % Aproximación con n términos&lt;br /&gt;
    for k=1:n&lt;br /&gt;
        g=(f(u_1).*sin(k*pi*u_1))'; &lt;br /&gt;
        a_k=2*h*w'*g; % Coeficiente de Fourier&lt;br /&gt;
        f_n=f_n+a_k*sin(k*pi*u_1); % Suma de términos&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    % Cálculo de errores&lt;br /&gt;
    g1=abs(f(u_1)-f_n).^2;&lt;br /&gt;
    error1(n)=(h*w'*g1')^(1/2); % Norma L^2&lt;br /&gt;
    error2(n)=max(abs(f(u_1)-f_n)); % Norma suprema&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Graficar errores con escala logarítmica en el eje y&lt;br /&gt;
nn=1:300;&lt;br /&gt;
hold on&lt;br /&gt;
plot(nn,error1,'b',LineWidth=1.5)&lt;br /&gt;
plot(nn,error2,'r',LineWidth=1.5)&lt;br /&gt;
xlabel('Valor de n')&lt;br /&gt;
ylabel('Error en escala logarítmica')&lt;br /&gt;
title('Errores en las normas L^2 y uniforme')&lt;br /&gt;
legend('Error en la norma $L^2$', 'Error en la norma uniforme')&lt;br /&gt;
grid on&lt;br /&gt;
set(gca, 'YScale', 'log') % Escala logarítmica en el eje y&lt;br /&gt;
ylim([1e-6 1]) % Límites del eje y&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Aproximación de una función discontinua=&lt;br /&gt;
&lt;br /&gt;
Ahora, vamos a aproximar la función \( f(x) = 1_{x \leq 1/4}(x) \).&lt;br /&gt;
&lt;br /&gt;
A diferencia del caso anterior, extendemos la función de forma par al intervalo \([-1,1]\), obteniendo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; f_{\text{ext}}(x) = \begin{cases} 1, &amp;amp; \text{si } x \in [-\frac{1}{4}, \frac{1}{4}] \\ 0, &amp;amp; \text{si } x \in [-1,-\frac{1}{4}) \cup (\frac{1}{4},1]. \end{cases} &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Observamos que la función posee dos discontinuidades, en \( x = -\frac{1}{4} \) y \( x = \frac{1}{4} \). Sin embargo, por la condición de Dirichlet, puesto que el número de discontinuidades es finito y la función es monótona a trozos, podemos hacer su transformada de Fourier.&lt;br /&gt;
&lt;br /&gt;
Como en este caso la función es par, su serie de Fourier es una combinación lineal de \( \{\frac{1}{2}, cos(n\pi x)\}_{n\in\mathbf{N}} \). Los coeficientes \( c_n \) se anulan al ser la integral de una función impar sobre un intervalo simétrico:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; f_{\text{ext}}(x) \approx d_0 +\sum^{\infty}_{n=1} d_ncos(n\pi x) &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Al representar \( f(x) \) y \( f_{n}(x) \) para \( n=\{1,...,10 \}\), observamos que aparecen unas oscilaciones conocidas como el fenómeno de Gibbs.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:24 25 grupoACIRV fourierej3.png|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
F=@(x) 1.*(x&amp;lt;=1/4);&lt;br /&gt;
g=@(x) F(-x);&lt;br /&gt;
xx=linspace(-1,1,10000);&lt;br /&gt;
fplot(F,[0 1],'b','linewidth',1.5)&lt;br /&gt;
hold on&lt;br /&gt;
fplot(g,[-1 0],'b','linewidth',1.5)&lt;br /&gt;
%Modificamos los colores de las gráficas para que se vean mejor&lt;br /&gt;
newcolors = [0.83 0.14 0.14&lt;br /&gt;
             1.00 0.54 0.00&lt;br /&gt;
             0.47 0.25 0.80&lt;br /&gt;
             0.25 0.80 0.54];         &lt;br /&gt;
colororder(newcolors)&lt;br /&gt;
&lt;br /&gt;
%Ahora, vamos a calcular los coeficientes de la serie de Fourier empleando la fórmula del trapecio. &lt;br /&gt;
n=1:1:10;&lt;br /&gt;
N=1000;                       %Número de puntos&lt;br /&gt;
a=0; b=1;                     %Extremos de los intervalos&lt;br /&gt;
h=(b-a)/N;                    %Tamaño de los intervalos&lt;br /&gt;
u=a:h:b;                      %Puntos de la partición&lt;br /&gt;
w=ones(N+1,1);                %Vector de pesos &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
d_0=0; d0=(2.*F(u).*(1/2))';&lt;br /&gt;
d_0=h*w'*d0;&lt;br /&gt;
SF=zeros(length(n),length(xx))+ones(length(n),length(xx))*d_0;&lt;br /&gt;
for i=1:length(n) &lt;br /&gt;
    for k=1:n(i)&lt;br /&gt;
        d_n=zeros(1,n(i));&lt;br /&gt;
        c=(2.*F(u).*cos(k.*pi.*u))';  %Función a integrar&lt;br /&gt;
        d_n(k)=h*w'*c;                %Coeficientes de la serie de Fourier&lt;br /&gt;
        SF(i,:)=SF(i,:)+d_n(k)*cos(k*pi*xx); %Vamos calculando la serie para cada n y la guardamos en la fila n de SF&lt;br /&gt;
    end&lt;br /&gt;
    plot(xx,SF(i,:))                  %Graficamos la serie de Fourier para un n determinado&lt;br /&gt;
end&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Para suavizar dichas oscilaciones utilizamos las sumas de Cesàro:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; S_N = \frac{1}{n+1} \sum^{N}_{n=0}f_n(x). &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podemos representarlas gráficamente para un n dado:&lt;br /&gt;
[[Archivo:24 25 grupoACIRV cesaroej3.png|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
F=@(x) 1.*(x&amp;lt;=1/4);&lt;br /&gt;
g=@(x) F(-x);&lt;br /&gt;
xx=linspace(-1,1,10000);&lt;br /&gt;
fplot(F,[0 1],'b','linewidth',1.5)&lt;br /&gt;
hold on&lt;br /&gt;
fplot(g,[-1 0],'b','linewidth',1.5)&lt;br /&gt;
%Modificamos los colores de las gráficas para que se vean mejor&lt;br /&gt;
newcolors = [0.83 0.14 0.14&lt;br /&gt;
             1.00 0.54 0.00&lt;br /&gt;
             0.47 0.25 0.80&lt;br /&gt;
             0.25 0.80 0.54];         &lt;br /&gt;
colororder(newcolors)&lt;br /&gt;
&lt;br /&gt;
%Ahora, vamos a calcular los coeficientes de la serie de Fourier empleando la fórmula del trapecio. &lt;br /&gt;
n=1:1:100;&lt;br /&gt;
N=1000;                       %Número de puntos&lt;br /&gt;
a=0; b=1;                     %Extremos de los intervalos&lt;br /&gt;
h=(b-a)/N;                    %Tamaño de los intervalos&lt;br /&gt;
u=a:h:b;                      %Puntos de la partición&lt;br /&gt;
w=ones(N+1,1);                %Vector de pesos &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
d_0=0; d0=(2.*F(u).*(1/2))';&lt;br /&gt;
d_0=h*w'*d0;&lt;br /&gt;
SF=zeros(length(n),length(xx))+ones(length(n),length(xx))*d_0;&lt;br /&gt;
for i=1:length(n) &lt;br /&gt;
    for k=1:n(i)&lt;br /&gt;
        d_n=zeros(1,n(i));&lt;br /&gt;
        c=(2.*F(u).*cos(k.*pi.*u))';  %Función a integrar&lt;br /&gt;
        d_n(k)=h*w'*c;                %Coeficientes de la serie de Fourier&lt;br /&gt;
        SF(i,:)=SF(i,:)+d_n(k)*cos(k*pi*xx); %Vamos calculando la serie para cada n y la guardamos en la fila n de SF&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
SNs=zeros(1,length(xx));              %Calculamos las sumas de Cesàro&lt;br /&gt;
for i=1:length(n)&lt;br /&gt;
    SNs=SNs+SF(i,:);&lt;br /&gt;
end&lt;br /&gt;
SN=1/(length(n)+1)*SNs;&lt;br /&gt;
plot(xx,SN)                           %Graficamos la aproximación obtenida.&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vamos a comparar el error de aproximación respecto valores de N. Lo haremos inicialmente para la aproximación por serie de Fourier y para la sumade Cèsaro.&lt;br /&gt;
[[Archivo: EJ3_ERROR_FOURIER_ACIRV.jpeg|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a=0; b=1;                    &lt;br /&gt;
u_1=a:10^(-3):b;&lt;br /&gt;
N=length(u_1)-1;&lt;br /&gt;
h=(b-a)/N;&lt;br /&gt;
&lt;br /&gt;
% Definir la función f(x)&lt;br /&gt;
f = @(x) 1.*(x&amp;lt;=1/4);&lt;br /&gt;
f_ext = @(x) 1.*(x &amp;lt;= 1/4).*(x &amp;gt;= -1/4);&lt;br /&gt;
&lt;br /&gt;
% Pesos para la integración con la regla del trapecio&lt;br /&gt;
w=ones(N+1,1);              &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
&lt;br /&gt;
% Inicialización de los errores&lt;br /&gt;
error1 = zeros(1,300);&lt;br /&gt;
error2 = zeros(1,300);&lt;br /&gt;
&lt;br /&gt;
d_0=0;d0=(2.*f(u_1).*(1/2))';&lt;br /&gt;
d_0=h*w'*d0;&lt;br /&gt;
for n=1:300&lt;br /&gt;
    f_n=zeros(1,N+1); % Aproximación con n términos&lt;br /&gt;
    for k=1:n&lt;br /&gt;
        g=(f(u_1).*cos(k*pi*u_1))';&lt;br /&gt;
        d_k=2*h*w'*g; % Coeficiente de Fourier&lt;br /&gt;
        f_n=f_n+d_k*cos(k*pi*u_1); %Suma de términos&lt;br /&gt;
    end&lt;br /&gt;
f_n=f_n+d_0; %Función extendida&lt;br /&gt;
&lt;br /&gt;
    % Cálculo de errores&lt;br /&gt;
    g1=abs(f_ext(u_1)-f_n).^2;&lt;br /&gt;
    error1(n)=(h*w'*g1')^(1/2); % Norma L^2&lt;br /&gt;
    error2(n)=max(abs(f_ext(u_1)-f_n)); % Norma suprema&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Graficar errores con escala logarítmica en el eje y&lt;br /&gt;
nn=1:300;&lt;br /&gt;
hold on&lt;br /&gt;
plot(nn,error1,'b',LineWidth=1.5)&lt;br /&gt;
plot(nn,error2,'r',LineWidth=1.5)&lt;br /&gt;
xlabel('Valor de n')&lt;br /&gt;
ylabel('Error en escala logarítmica')&lt;br /&gt;
title('Errores en las normas L^2 y uniforme')&lt;br /&gt;
legend('Error en la norma $L^2$', 'Error en la norma uniforme')&lt;br /&gt;
grid on&lt;br /&gt;
set(gca, 'YScale', 'log') % Escala logarítmica en el eje y&lt;br /&gt;
ylim([1e-6 1]) % Límites del eje y&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo: EJ3_ERROR_SUMAS_ACIRV.jpeg|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Definimos la función F y su extensión impar g&lt;br /&gt;
F = @(x) 1.*(x &amp;lt;= 1/4);&lt;br /&gt;
g = @(x) F(-x);&lt;br /&gt;
f_ext = @(x) 1.*(x &amp;lt;= 1/4).*(x &amp;gt;= -1/4);&lt;br /&gt;
&lt;br /&gt;
% Puntos para la evaluación&lt;br /&gt;
xx = linspace(-1, 1, 10000);&lt;br /&gt;
&lt;br /&gt;
% Graficamos la función original&lt;br /&gt;
fplot(F, [0 1], 'b', 'linewidth', 1.5)&lt;br /&gt;
hold on&lt;br /&gt;
fplot(g, [-1 0], 'b', 'linewidth', 1.5)&lt;br /&gt;
&lt;br /&gt;
% Modificamos los colores de las gráficas para mejorar la visibilidad&lt;br /&gt;
newcolors = [0.83 0.14 0.14;&lt;br /&gt;
             1.00 0.54 0.00;&lt;br /&gt;
             0.47 0.25 0.80;&lt;br /&gt;
             0.25 0.80 0.54];         &lt;br /&gt;
colororder(newcolors)&lt;br /&gt;
&lt;br /&gt;
% Parámetros para la serie de Fourier&lt;br /&gt;
n = 1:1:300;    % Número de términos considerados&lt;br /&gt;
N = 1000;       % Número de puntos en la integración&lt;br /&gt;
a = 0; b = 1;   % Extremos del intervalo&lt;br /&gt;
h = (b-a)/N;    % Tamaño de los subintervalos&lt;br /&gt;
u = a:h:b;      % Puntos de la partición&lt;br /&gt;
w = ones(N+1,1); &lt;br /&gt;
w(1) = 1/2; &lt;br /&gt;
w(N+1) = 1/2;   % Pesos del método del trapecio&lt;br /&gt;
&lt;br /&gt;
% Cálculo de los coeficientes de Fourier&lt;br /&gt;
d_0 = 0; &lt;br /&gt;
d0 = (2.*F(u).*(1/2))';&lt;br /&gt;
d_0 = h*w'*d0;  % Coeficiente a_0&lt;br /&gt;
SF = zeros(length(n), length(xx)) + d_0;&lt;br /&gt;
&lt;br /&gt;
for i = 1:length(n)&lt;br /&gt;
    for k = 1:n(i)&lt;br /&gt;
        c = (2.*F(u).*cos(k.*pi.*u))';  % Función a integrar&lt;br /&gt;
        d_n(k) = h*w'*c;  % Coeficientes de la serie de Fourier&lt;br /&gt;
        SF(i,:) = SF(i,:) + d_n(k) * cos(k*pi*xx);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Aplicamos las sumas de Cesàro&lt;br /&gt;
SNs = zeros(1, length(xx));&lt;br /&gt;
for i = 1:length(n)&lt;br /&gt;
    SNs = SNs + SF(i,:);&lt;br /&gt;
end&lt;br /&gt;
SN = 1/(length(n)+1) * SNs; % Suma de Cesàro&lt;br /&gt;
&lt;br /&gt;
% Graficamos la aproximación final&lt;br /&gt;
plot(xx, SN)&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
% Cálculo del error con normas L^∞ y L^2&lt;br /&gt;
error_uniforme = zeros(1, length(n));&lt;br /&gt;
error_L2 = zeros(1, length(n));&lt;br /&gt;
&lt;br /&gt;
for i = 1:length(n)&lt;br /&gt;
    % Norma uniforme (máximo error absoluto)&lt;br /&gt;
    error_uniforme(i) = max(abs(F(xx) - SF(i,:)));&lt;br /&gt;
&lt;br /&gt;
    % Norma L^2 usando la regla del trapecio&lt;br /&gt;
    integrando = (F(u) - SF(i, round(linspace(1, length(xx), length(u)))).^2);&lt;br /&gt;
    error_L2(i) = sqrt(h * (w' * integrando'));&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Graficamos los errores&lt;br /&gt;
figure&lt;br /&gt;
semilogy(n, error_uniforme, 'r', 'linewidth', 1.5)&lt;br /&gt;
hold on&lt;br /&gt;
semilogy(n, error_L2, 'b', 'linewidth', 1.5)&lt;br /&gt;
xlabel('Valor de n')&lt;br /&gt;
ylabel('Error en escala logarítmica')&lt;br /&gt;
title('Errores en las normas L^2 y uniforme')&lt;br /&gt;
legend('Error en la norma $L^2$', 'Error en la norma uniforme')&lt;br /&gt;
grid on&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>Angelasotelo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_ACIRV)&amp;diff=84173</id>
		<title>Series de Fourier (Grupo ACIRV)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_ACIRV)&amp;diff=84173"/>
				<updated>2025-02-19T19:46:15Z</updated>
		
		<summary type="html">&lt;p&gt;Angelasotelo: /* Aproximación de una función continua */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Series de Fourier (Grupo ACIRV). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | Ángela Sotelo Fernández, Carmen Doñoro Molina, Inés Torres Gómez, Rubén Gutiérrez Hernández, Violeta Luján Barrios.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
Las series de Fourier constituyen una herramienta fundamental en el análisis matemático. Estas series, introducidas por Joseph Fourier en el siglo XIX, nos permiten representar funciones periódicas mediante una base de funciones trigonométricas.&lt;br /&gt;
&lt;br /&gt;
La idea es que cualquier función \( f(x) \) periódica con \( f\in L^2(-\pi,\pi) \) puede expresarse como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; f(x) = d_0 + \sum_{n=1}^{\infty} \left[ d_n \cos\left(\frac{2\pi n x}{T}\right) + c_n \sin\left(\frac{2\pi n x}{T}\right) \right] &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde los coeficientes \( d_n \) y \( c_n \) se obtienen mediante integrales que dependen de la función dada.&lt;br /&gt;
&lt;br /&gt;
=Base trigonométrica=&lt;br /&gt;
La &amp;lt;b&amp;gt;base trigonométrica&amp;lt;/b&amp;gt; es una base del espacio &amp;lt;math&amp;gt;L^2([-\pi,\pi])&amp;lt;/math&amp;gt;, por lo que las funciones pertenecientes a este espacio pueden escribirse como una combinación lineal de los elementos de la base. A estas expresiones se les llama &amp;lt;b&amp;gt;series de Fourier&amp;lt;/b&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
Dado que es una base ortonormal, sus coeficientes pueden calcularse mediante integración:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;d_0 = \int_{-\pi}^{\pi} f(x) \frac{1}{2} \, dx , \hspace{30px} d_n = \int_{-\pi}^{\pi} f(x) \cos(n\pi x) \, dx , \hspace{30px} c_n = \int_{-\pi}^{\pi} f(x) \sin(n\pi x) \, dx . &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Utilizando el siguiente código en MATLAB, se pueden representar los 10 primeros elementos de la base en una gráfica:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
% Definimos la malla para pintar funciones del [-1,1]&lt;br /&gt;
x = linspace(-1, 1, 1000);  &lt;br /&gt;
n_max = 5;                  % Número de funciones a pintar para seno y coseno&lt;br /&gt;
&lt;br /&gt;
% Pintamos la gráfica de f = 1/2&lt;br /&gt;
figure;&lt;br /&gt;
plot(x, 1/2 * ones(size(x)), 'k', 'LineWidth', 1, 'DisplayName', '1/2');&lt;br /&gt;
hold on;&lt;br /&gt;
&lt;br /&gt;
% Pintamos cos(n*pi*x) y sin(n*pi*x) para n = 1 hasta n_max&lt;br /&gt;
for n = 1:n_max&lt;br /&gt;
    % Definimos las funciones&lt;br /&gt;
    f_cos = cos(n * pi * x);&lt;br /&gt;
    f_sin = sin(n * pi * x);&lt;br /&gt;
    &lt;br /&gt;
    plot(x, f_cos, 'LineWidth', 1, 'DisplayName', sprintf('cos(%d\\pi x)', n));&lt;br /&gt;
    &lt;br /&gt;
    plot(x, f_sin,'--', 'LineWidth', 1, 'DisplayName', sprintf('sin(%d\\pi x)', n));&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Ponemos leyenda en la gráfica&lt;br /&gt;
title(sprintf('Base \\{1/2, cos(n\\pi x), sin(n\\pi x)\\} para n = 1 ... %d', n_max));&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('Valor de la función');&lt;br /&gt;
legend('show', 'Location', 'BestOutside'); &lt;br /&gt;
grid on;&lt;br /&gt;
axis([-1 1 -1.5 1.5]);&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center; margin-top: 10px;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;display: inline-block; margin-right: 10px;&amp;quot;&amp;gt;&lt;br /&gt;
    [[Archivo:EJ1_SENO_ACIRV.png|400px|none|Seno]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;&lt;br /&gt;
    [[Archivo:EJ1_COSENO_ACIRV.png|400px|none|Coseno]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;&lt;br /&gt;
    [[Archivo:EJ1_1_2_ACIRV.jpeg|400px|none|Coseno]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Aproximación de una función continua=&lt;br /&gt;
Vamos a aproximar la función \( f(x) = 1 - 2 \left| \frac{1}{2} - x \right| \). &lt;br /&gt;
&lt;br /&gt;
Primeramente, extendemos de forma impar la función al intervalo simétrico \([-1,1]\), obteniendo \( f_{\text{ext}}(x) = \operatorname{sign}(x) \cdot \left(1 - 2 \left| \frac{1}{2} - |x| \right| \right).  \) Es decir,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
f_{\text{ext}}(x) =&lt;br /&gt;
\begin{cases} &lt;br /&gt;
-(1 - 2 | \frac{1}{2} - |x| |), &amp;amp; \text{si } x \in [-1,0) \\ &lt;br /&gt;
1 - 2 \left| \frac{1}{2} - x \right|, &amp;amp; \text{si } x \in [0,1].&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La función es continua en \([-1,1]\), pues la extensión mantiene la continuidad en \(x=0\) y es continua en \( [-1,0) \cup (0,1] \).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora, calcularemos los coeficientes de Fourier con las fórmulas indicadas anteriormente numéricamente usando la fórmula del trapecio con una división bastante fina \( (10^{-3}) \). Como nuestra función es impar, su serie de Fourier también lo es; es decir, será una combinación lineal de los elementos &amp;lt;math&amp;gt;\{ \sin(n\pi x) \}_{n \in \mathbb{N}}&amp;lt;/math&amp;gt;. Verificamos que los coeficientes \( d_0 \) y \( d_n \) se anulan, pues son el resultado de integrales de una función impar sobre un intervalo simétrico.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; f_{\text{ext}}(x) \approx \sum_{n=1}^{\infty} c_n \sin(n\pi x). &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Definimos \( f_n(x) \) como la suma de los primeros \( n \) términos de la serie de Fourier:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; f_{\text{ext}}(x) = \sum_{k=1}^{n} c_n \sin(k\pi x), \hspace{2mm} \text{con} \hspace{2mm} c_k = 2\int_{0}^{1} f(x)\sin{(k\pi x)} \,dx . &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt; &lt;br /&gt;
&lt;br /&gt;
A continuación, representamos gráficamente \( f(x) \) y \( f_n(x) \) para \( n=1,5,10 \).  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Untitled.png|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
%Escribimos la función original definida en el intervalo [0,1]:&lt;br /&gt;
f=@(x)1-2*abs(1/2-x);&lt;br /&gt;
%Modificamos la función para que sea impar en el intervalo [-1,1]&lt;br /&gt;
f_ext=@(x)sign(x).*(1-2*abs(1/2-abs(x)));&lt;br /&gt;
&lt;br /&gt;
%Graficamos la función estendida de forma impar&lt;br /&gt;
hold on&lt;br /&gt;
xx=linspace(-1,1,10000);&lt;br /&gt;
plot(xx,f_ext(xx))&lt;br /&gt;
%Modificamos los colores de las gráficas para que se vean mejor&lt;br /&gt;
newcolors = [0.83 0.14 0.14&lt;br /&gt;
             1.00 0.54 0.00&lt;br /&gt;
             0.47 0.25 0.80&lt;br /&gt;
             0.25 0.80 0.54];         &lt;br /&gt;
colororder(newcolors)&lt;br /&gt;
&lt;br /&gt;
%Ahora, vamos a calcular los coeficientes de la serie de Fourier empleando la fórmula del trapecio. &lt;br /&gt;
n=[1 5 10];&lt;br /&gt;
N=1000;                       %Número de puntos&lt;br /&gt;
a=0; b=1;                     %Extremos de los intervalos&lt;br /&gt;
h=(b-a)/N;                    %Tamaño de los intervalos&lt;br /&gt;
u=a:h:b;                      %Puntos de la partición&lt;br /&gt;
for i=1:length(n) &lt;br /&gt;
    SF=0&lt;br /&gt;
    for k=1:n(i)&lt;br /&gt;
        c_n=zeros(1,n(i));&lt;br /&gt;
        c=(2.*f(u).*sin(k.*pi.*u))';  %Función a integrar&lt;br /&gt;
        w=ones(N+1,1);                %Vector de pesos &lt;br /&gt;
        w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
        c_n(k)=h*w'*c;                %Coeficientes de la serie de Fourier&lt;br /&gt;
        SF=SF+c_n(k)*sin(k*pi*xx);    %Vamos calculando la propia serie&lt;br /&gt;
    end&lt;br /&gt;
    plot(xx,SF)                      %Graficamos la serie de Fourier para un n determinado&lt;br /&gt;
end&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Nótese que aumentar el número de términos de la serie de Fourier permite aproximar mejor la función original. &lt;br /&gt;
&lt;br /&gt;
Para hacer un estudio completo de las aproximaciones, vamos a representar el error de \( f_n(x) \) respecto a \( f(x) \) en función de \( n \) con normas \( L^2 \) y del supremo o uniforme.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:24_25_grupoACIRV_erroresej1.png|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
a=0; b=1;                    &lt;br /&gt;
u_1=a:10^(-3):b; &lt;br /&gt;
N=length(u_1)-1;&lt;br /&gt;
h=(b-a)/N;&lt;br /&gt;
&lt;br /&gt;
%Definir la función f(x)&lt;br /&gt;
f = @(x) 1 - 2*abs(1/2 - x);&lt;br /&gt;
&lt;br /&gt;
% Pesos para la integración con la regla del trapecio&lt;br /&gt;
w=ones(N+1,1);              &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
&lt;br /&gt;
% Inicialización de los errores&lt;br /&gt;
error1 = zeros(1,300);&lt;br /&gt;
error2 = zeros(1,300);&lt;br /&gt;
&lt;br /&gt;
for n=1:300&lt;br /&gt;
    f_n=zeros(1,N+1); % Aproximación con n términos&lt;br /&gt;
    for k=1:n&lt;br /&gt;
        g=(f(u_1).*sin(k*pi*u_1))'; &lt;br /&gt;
        a_k=2*h*w'*g; % Coeficiente de Fourier&lt;br /&gt;
        f_n=f_n+a_k*sin(k*pi*u_1); % Suma de términos&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    % Cálculo de errores&lt;br /&gt;
    g1=abs(f(u_1)-f_n).^2;&lt;br /&gt;
    error1(n)=(h*w'*g1')^(1/2); % Norma L^2&lt;br /&gt;
    error2(n)=max(abs(f(u_1)-f_n)); % Norma suprema&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Graficar errores con escala logarítmica en el eje y&lt;br /&gt;
nn=1:300;&lt;br /&gt;
hold on&lt;br /&gt;
plot(nn,error1,'b',LineWidth=1.5)&lt;br /&gt;
plot(nn,error2,'r',LineWidth=1.5)&lt;br /&gt;
xlabel('Valor de n')&lt;br /&gt;
ylabel('Error en escala logarítmica')&lt;br /&gt;
title('Errores en las normas L^2 y uniforme')&lt;br /&gt;
legend('Error en la norma $L^2$', 'Error en la norma uniforme')&lt;br /&gt;
grid on&lt;br /&gt;
set(gca, 'YScale', 'log') % Escala logarítmica en el eje y&lt;br /&gt;
ylim([1e-6 1]) % Límites del eje y&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Aproximación de una función discontinua=&lt;br /&gt;
&lt;br /&gt;
Ahora, vamos a aproximar la función \( f(x) = 1_{x \leq 1/4}(x) \).&lt;br /&gt;
&lt;br /&gt;
A diferencia del caso anterior, extendemos la función de forma par al intervalo \([-1,1]\), obteniendo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; f_{\text{ext}}(x) = \begin{cases} 1, &amp;amp; \text{si } x \in [-\frac{1}{4}, \frac{1}{4}] \\ 0, &amp;amp; \text{si } x \in [-1,-\frac{1}{4}) \cup (\frac{1}{4},1]. \end{cases} &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Observamos que la función posee dos discontinuidades, en \( x = -\frac{1}{4} \) y \( x = \frac{1}{4} \). Sin embargo, por la condición de Dirichlet, puesto que el número de discontinuidades es finito y la función es monótona a trozos, podemos hacer su transformada de Fourier.&lt;br /&gt;
&lt;br /&gt;
Como en este caso la función es par, su serie de Fourier es una combinación lineal de \( \{\frac{1}{2}, cos(n\pi x)\}_{n\in\mathbf{N}} \). Los coeficientes \( c_n \) se anulan al ser la integral de una función impar sobre un intervalo simétrico:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; f_{\text{ext}}(x) \approx d_0 +\sum^{\infty}_{n=1} d_ncos(n\pi x) &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Al representar \( f(x) \) y \( f_{n}(x) \) para \( n=\{1,...,10 \}\), observamos que aparecen unas oscilaciones conocidas como el fenómeno de Gibbs.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:24 25 grupoACIRV fourierej3.png|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
F=@(x) 1.*(x&amp;lt;=1/4);&lt;br /&gt;
g=@(x) F(-x);&lt;br /&gt;
xx=linspace(-1,1,10000);&lt;br /&gt;
fplot(F,[0 1],'b','linewidth',1.5)&lt;br /&gt;
hold on&lt;br /&gt;
fplot(g,[-1 0],'b','linewidth',1.5)&lt;br /&gt;
%Modificamos los colores de las gráficas para que se vean mejor&lt;br /&gt;
newcolors = [0.83 0.14 0.14&lt;br /&gt;
             1.00 0.54 0.00&lt;br /&gt;
             0.47 0.25 0.80&lt;br /&gt;
             0.25 0.80 0.54];         &lt;br /&gt;
colororder(newcolors)&lt;br /&gt;
&lt;br /&gt;
%Ahora, vamos a calcular los coeficientes de la serie de Fourier empleando la fórmula del trapecio. &lt;br /&gt;
n=1:1:10;&lt;br /&gt;
N=1000;                       %Número de puntos&lt;br /&gt;
a=0; b=1;                     %Extremos de los intervalos&lt;br /&gt;
h=(b-a)/N;                    %Tamaño de los intervalos&lt;br /&gt;
u=a:h:b;                      %Puntos de la partición&lt;br /&gt;
w=ones(N+1,1);                %Vector de pesos &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
d_0=0; d0=(2.*F(u).*(1/2))';&lt;br /&gt;
d_0=h*w'*d0;&lt;br /&gt;
SF=zeros(length(n),length(xx))+ones(length(n),length(xx))*d_0;&lt;br /&gt;
for i=1:length(n) &lt;br /&gt;
    for k=1:n(i)&lt;br /&gt;
        d_n=zeros(1,n(i));&lt;br /&gt;
        c=(2.*F(u).*cos(k.*pi.*u))';  %Función a integrar&lt;br /&gt;
        d_n(k)=h*w'*c;                %Coeficientes de la serie de Fourier&lt;br /&gt;
        SF(i,:)=SF(i,:)+d_n(k)*cos(k*pi*xx); %Vamos calculando la serie para cada n y la guardamos en la fila n de SF&lt;br /&gt;
    end&lt;br /&gt;
    plot(xx,SF(i,:))                  %Graficamos la serie de Fourier para un n determinado&lt;br /&gt;
end&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Para suavizar dichas oscilaciones utilizamos las sumas de Cesàro:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; S_N = \frac{1}{n+1} \sum^{N}_{n=0}f_n(x). &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podemos representarlas gráficamente para un n dado:&lt;br /&gt;
[[Archivo:24 25 grupoACIRV cesaroej3.png|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
F=@(x) 1.*(x&amp;lt;=1/4);&lt;br /&gt;
g=@(x) F(-x);&lt;br /&gt;
xx=linspace(-1,1,10000);&lt;br /&gt;
fplot(F,[0 1],'b','linewidth',1.5)&lt;br /&gt;
hold on&lt;br /&gt;
fplot(g,[-1 0],'b','linewidth',1.5)&lt;br /&gt;
%Modificamos los colores de las gráficas para que se vean mejor&lt;br /&gt;
newcolors = [0.83 0.14 0.14&lt;br /&gt;
             1.00 0.54 0.00&lt;br /&gt;
             0.47 0.25 0.80&lt;br /&gt;
             0.25 0.80 0.54];         &lt;br /&gt;
colororder(newcolors)&lt;br /&gt;
&lt;br /&gt;
%Ahora, vamos a calcular los coeficientes de la serie de Fourier empleando la fórmula del trapecio. &lt;br /&gt;
n=1:1:100;&lt;br /&gt;
N=1000;                       %Número de puntos&lt;br /&gt;
a=0; b=1;                     %Extremos de los intervalos&lt;br /&gt;
h=(b-a)/N;                    %Tamaño de los intervalos&lt;br /&gt;
u=a:h:b;                      %Puntos de la partición&lt;br /&gt;
w=ones(N+1,1);                %Vector de pesos &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
d_0=0; d0=(2.*F(u).*(1/2))';&lt;br /&gt;
d_0=h*w'*d0;&lt;br /&gt;
SF=zeros(length(n),length(xx))+ones(length(n),length(xx))*d_0;&lt;br /&gt;
for i=1:length(n) &lt;br /&gt;
    for k=1:n(i)&lt;br /&gt;
        d_n=zeros(1,n(i));&lt;br /&gt;
        c=(2.*F(u).*cos(k.*pi.*u))';  %Función a integrar&lt;br /&gt;
        d_n(k)=h*w'*c;                %Coeficientes de la serie de Fourier&lt;br /&gt;
        SF(i,:)=SF(i,:)+d_n(k)*cos(k*pi*xx); %Vamos calculando la serie para cada n y la guardamos en la fila n de SF&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
SNs=zeros(1,length(xx));              %Calculamos las sumas de Cesàro&lt;br /&gt;
for i=1:length(n)&lt;br /&gt;
    SNs=SNs+SF(i,:);&lt;br /&gt;
end&lt;br /&gt;
SN=1/(length(n)+1)*SNs;&lt;br /&gt;
plot(xx,SN)                           %Graficamos la aproximación obtenida.&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vamos a comparar el error de aproximación respecto valores de N. Lo haremos inicialmente para la aproximación por serie de Fourier y para la sumade Cèsaro.&lt;br /&gt;
[[Archivo: EJ3_ERROR_FOURIER_ACIRV.jpeg|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a=0; b=1;                    &lt;br /&gt;
u_1=a:10^(-3):b;&lt;br /&gt;
N=length(u_1)-1;&lt;br /&gt;
h=(b-a)/N;&lt;br /&gt;
&lt;br /&gt;
% Definir la función f(x)&lt;br /&gt;
f = @(x) 1.*(x&amp;lt;=1/4);&lt;br /&gt;
f_ext = @(x) 1.*(x &amp;lt;= 1/4).*(x &amp;gt;= -1/4);&lt;br /&gt;
&lt;br /&gt;
% Pesos para la integración con la regla del trapecio&lt;br /&gt;
w=ones(N+1,1);              &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
&lt;br /&gt;
% Inicialización de los errores&lt;br /&gt;
error1 = zeros(1,300);&lt;br /&gt;
error2 = zeros(1,300);&lt;br /&gt;
&lt;br /&gt;
d_0=0;d0=(2.*f(u_1).*(1/2))';&lt;br /&gt;
d_0=h*w'*d0;&lt;br /&gt;
for n=1:300&lt;br /&gt;
    f_n=zeros(1,N+1); % Aproximación con n términos&lt;br /&gt;
    for k=1:n&lt;br /&gt;
        g=(f(u_1).*cos(k*pi*u_1))';&lt;br /&gt;
        d_k=2*h*w'*g; % Coeficiente de Fourier&lt;br /&gt;
        f_n=f_n+d_k*cos(k*pi*u_1); %Suma de términos&lt;br /&gt;
    end&lt;br /&gt;
f_n=f_n+d_0; %Función extendida&lt;br /&gt;
&lt;br /&gt;
    % Cálculo de errores&lt;br /&gt;
    g1=abs(f_ext(u_1)-f_n).^2;&lt;br /&gt;
    error1(n)=(h*w'*g1')^(1/2); % Norma L^2&lt;br /&gt;
    error2(n)=max(abs(f_ext(u_1)-f_n)); % Norma suprema&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Graficar errores con escala logarítmica en el eje y&lt;br /&gt;
nn=1:300;&lt;br /&gt;
hold on&lt;br /&gt;
plot(nn,error1,'b',LineWidth=1.5)&lt;br /&gt;
plot(nn,error2,'r',LineWidth=1.5)&lt;br /&gt;
xlabel('Valor de n')&lt;br /&gt;
ylabel('Error en escala logarítmica')&lt;br /&gt;
title('Errores en las normas L^2 y uniforme')&lt;br /&gt;
legend('Error en la norma $L^2$', 'Error en la norma uniforme')&lt;br /&gt;
grid on&lt;br /&gt;
set(gca, 'YScale', 'log') % Escala logarítmica en el eje y&lt;br /&gt;
ylim([1e-6 1]) % Límites del eje y&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo: EJ3_ERROR_SUMAS_ACIRV.jpeg|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Definimos la función F y su extensión impar g&lt;br /&gt;
F = @(x) 1.*(x &amp;lt;= 1/4);&lt;br /&gt;
g = @(x) F(-x);&lt;br /&gt;
f_ext = @(x) 1.*(x &amp;lt;= 1/4).*(x &amp;gt;= -1/4);&lt;br /&gt;
&lt;br /&gt;
% Puntos para la evaluación&lt;br /&gt;
xx = linspace(-1, 1, 10000);&lt;br /&gt;
&lt;br /&gt;
% Graficamos la función original&lt;br /&gt;
fplot(F, [0 1], 'b', 'linewidth', 1.5)&lt;br /&gt;
hold on&lt;br /&gt;
fplot(g, [-1 0], 'b', 'linewidth', 1.5)&lt;br /&gt;
&lt;br /&gt;
% Modificamos los colores de las gráficas para mejorar la visibilidad&lt;br /&gt;
newcolors = [0.83 0.14 0.14;&lt;br /&gt;
             1.00 0.54 0.00;&lt;br /&gt;
             0.47 0.25 0.80;&lt;br /&gt;
             0.25 0.80 0.54];         &lt;br /&gt;
colororder(newcolors)&lt;br /&gt;
&lt;br /&gt;
% Parámetros para la serie de Fourier&lt;br /&gt;
n = 1:1:300;    % Número de términos considerados&lt;br /&gt;
N = 1000;       % Número de puntos en la integración&lt;br /&gt;
a = 0; b = 1;   % Extremos del intervalo&lt;br /&gt;
h = (b-a)/N;    % Tamaño de los subintervalos&lt;br /&gt;
u = a:h:b;      % Puntos de la partición&lt;br /&gt;
w = ones(N+1,1); &lt;br /&gt;
w(1) = 1/2; &lt;br /&gt;
w(N+1) = 1/2;   % Pesos del método del trapecio&lt;br /&gt;
&lt;br /&gt;
% Cálculo de los coeficientes de Fourier&lt;br /&gt;
d_0 = 0; &lt;br /&gt;
d0 = (2.*F(u).*(1/2))';&lt;br /&gt;
d_0 = h*w'*d0;  % Coeficiente a_0&lt;br /&gt;
SF = zeros(length(n), length(xx)) + d_0;&lt;br /&gt;
&lt;br /&gt;
for i = 1:length(n)&lt;br /&gt;
    for k = 1:n(i)&lt;br /&gt;
        c = (2.*F(u).*cos(k.*pi.*u))';  % Función a integrar&lt;br /&gt;
        d_n(k) = h*w'*c;  % Coeficientes de la serie de Fourier&lt;br /&gt;
        SF(i,:) = SF(i,:) + d_n(k) * cos(k*pi*xx);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Aplicamos las sumas de Cesàro&lt;br /&gt;
SNs = zeros(1, length(xx));&lt;br /&gt;
for i = 1:length(n)&lt;br /&gt;
    SNs = SNs + SF(i,:);&lt;br /&gt;
end&lt;br /&gt;
SN = 1/(length(n)+1) * SNs; % Suma de Cesàro&lt;br /&gt;
&lt;br /&gt;
% Graficamos la aproximación final&lt;br /&gt;
plot(xx, SN)&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
% Cálculo del error con normas L^∞ y L^2&lt;br /&gt;
error_uniforme = zeros(1, length(n));&lt;br /&gt;
error_L2 = zeros(1, length(n));&lt;br /&gt;
&lt;br /&gt;
for i = 1:length(n)&lt;br /&gt;
    % Norma uniforme (máximo error absoluto)&lt;br /&gt;
    error_uniforme(i) = max(abs(F(xx) - SF(i,:)));&lt;br /&gt;
&lt;br /&gt;
    % Norma L^2 usando la regla del trapecio&lt;br /&gt;
    integrando = (F(u) - SF(i, round(linspace(1, length(xx), length(u)))).^2);&lt;br /&gt;
    error_L2(i) = sqrt(h * (w' * integrando'));&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Graficamos los errores&lt;br /&gt;
figure&lt;br /&gt;
semilogy(n, error_uniforme, 'r', 'linewidth', 1.5)&lt;br /&gt;
hold on&lt;br /&gt;
semilogy(n, error_L2, 'b', 'linewidth', 1.5)&lt;br /&gt;
xlabel('Valor de n')&lt;br /&gt;
ylabel('Error en escala logarítmica')&lt;br /&gt;
title('Errores en las normas L^2 y uniforme')&lt;br /&gt;
legend('Error en la norma $L^2$', 'Error en la norma uniforme')&lt;br /&gt;
grid on&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>Angelasotelo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_ACIRV)&amp;diff=84161</id>
		<title>Series de Fourier (Grupo ACIRV)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_ACIRV)&amp;diff=84161"/>
				<updated>2025-02-15T15:49:17Z</updated>
		
		<summary type="html">&lt;p&gt;Angelasotelo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Series de Fourier (Grupo ACIRV). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | Ángela Sotelo Fernández, Carmen Doñoro Molina, Inés Torres Gómez, Rubén Gutiérrez Hernández, Violeta Luján Barrios.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
Las series de Fourier constituyen una herramienta fundamental en el análisis matemático. Estas series, introducidas por Joseph Fourier en el siglo XIX, nos permiten representar funciones periódicas mediante una base de funciones trigonométricas.&lt;br /&gt;
&lt;br /&gt;
La idea es que cualquier función \( f(x) \) periódica con \( f\in L^2(-\pi,\pi) \) puede expresarse como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; f(x) = d_0 + \sum_{n=1}^{\infty} \left[ d_n \cos\left(\frac{2\pi n x}{T}\right) + c_n \sin\left(\frac{2\pi n x}{T}\right) \right] &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde los coeficientes \( d_n \) y \( c_n \) se obtienen mediante integrales que dependen de la función dada.&lt;br /&gt;
&lt;br /&gt;
=Base trigonométrica compleja=&lt;br /&gt;
La &amp;lt;b&amp;gt;base trigonométrica&amp;lt;/b&amp;gt; es una base del espacio &amp;lt;math&amp;gt;L^2([-\pi,\pi])&amp;lt;/math&amp;gt;, por lo que las funciones pertenecientes a este espacio pueden escribirse como una combinación lineal de los elementos de la base. A estas expresiones se les llama &amp;lt;b&amp;gt;series de Fourier&amp;lt;/b&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
Dado que es una base ortonormal, sus coeficientes pueden calcularse mediante integración:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;d_0 = \int_{-\pi}^{\pi} f(x) \frac{1}{2} \, dx , \hspace{30px} d_n = \int_{-\pi}^{\pi} f(x) \cos(n\pi x) \, dx , \hspace{30px} c_n = \int_{-\pi}^{\pi} f(x) \sin(n\pi x) \, dx . &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Utilizando el siguiente código en MATLAB, se pueden representar los 10 primeros elementos de la base en una gráfica:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
% Definimos la malla para pintar funciones del [-1,1]&lt;br /&gt;
x = linspace(-1, 1, 1000);  &lt;br /&gt;
n_max = 5;                  % Número de funciones a pintar para seno y coseno&lt;br /&gt;
&lt;br /&gt;
% Pintamos la gráfica de f = 1/2&lt;br /&gt;
figure;&lt;br /&gt;
plot(x, 1/2 * ones(size(x)), 'k', 'LineWidth', 1, 'DisplayName', '1/2');&lt;br /&gt;
hold on;&lt;br /&gt;
&lt;br /&gt;
% Pintamos cos(n*pi*x) y sin(n*pi*x) para n = 1 hasta n_max&lt;br /&gt;
for n = 1:n_max&lt;br /&gt;
    % Definimos las funciones&lt;br /&gt;
    f_cos = cos(n * pi * x);&lt;br /&gt;
    f_sin = sin(n * pi * x);&lt;br /&gt;
    &lt;br /&gt;
    plot(x, f_cos, 'LineWidth', 1, 'DisplayName', sprintf('cos(%d\\pi x)', n));&lt;br /&gt;
    &lt;br /&gt;
    plot(x, f_sin,'--', 'LineWidth', 1, 'DisplayName', sprintf('sin(%d\\pi x)', n));&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Ponemos leyenda en la gráfica&lt;br /&gt;
title(sprintf('Base \\{1/2, cos(n\\pi x), sin(n\\pi x)\\} para n = 1 ... %d', n_max));&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('Valor de la función');&lt;br /&gt;
legend('show', 'Location', 'BestOutside'); &lt;br /&gt;
grid on;&lt;br /&gt;
axis([-1 1 -1.5 1.5]);&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center; margin-top: 10px;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;display: inline-block; margin-right: 10px;&amp;quot;&amp;gt;&lt;br /&gt;
    [[Archivo:EJ1_SENO_ACIRV.png|400px|none|Seno]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;&lt;br /&gt;
    [[Archivo:EJ1_COSENO_ACIRV.png|400px|none|Coseno]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;&lt;br /&gt;
    [[Archivo:EJ1_1_2_ACIRV.jpeg|400px|none|Coseno]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Aproximación de una función continua=&lt;br /&gt;
Vamos a aproximar la función \( f(x) = 1 - 2 \left| \frac{1}{2} - x \right| \). &lt;br /&gt;
&lt;br /&gt;
Primeramente, extendemos de forma impar la función al intervalo simétrico \([-1,1]\), obteniendo \( f_{\text{ext}}(x) = \operatorname{sign}(x) \cdot \left(1 - 2 \left| \frac{1}{2} - |x| \right| \right).  \) Es decir,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
f_{\text{ext}}(x) =&lt;br /&gt;
\begin{cases} &lt;br /&gt;
-(1 - 2 | \frac{1}{2} - |x| |), &amp;amp; \text{si } x \in [-1,0) \\ &lt;br /&gt;
1 - 2 \left| \frac{1}{2} - x \right|, &amp;amp; \text{si } x \in [0,1].&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La función es continua en \([-1,1]\), pues la extensión mantiene la continuidad en \(x=0\) y es continua en \( [-1,0) \cup (0,1] \).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora, calcularemos los coeficientes de Fourier con las fórmulas indicadas anteriormente numéricamente usando la fórmula del trapecio con una división bastante fina \( (10^{-3}) \). Como nuestra función es impar, su serie de Fourier también lo es; es decir, será una combinación lineal de los elementos &amp;lt;math&amp;gt;\{ \sin(n\pi x) \}_{n \in \mathbb{N}}&amp;lt;/math&amp;gt;. Verificamos que los coeficientes \( d_0 \) y \( d_n \) se anulan, pues son el resultado de integrales de una función impar sobre un intervalo simétrico.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; f_{\text{ext}}(x) \approx \sum_{n=1}^{\infty} c_n \sin(n\pi x). &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Definimos \( f_n(x) \) como la suma de los primeros \( n \) términos de la serie de Fourier:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; f_{\text{ext}}(x) = \sum_{n=1}^{n} c_n \sin(n\pi x), \hspace{2mm} \text{con} \hspace{2mm} c_k = 2\int_{0}^{1} f(x)\sin{(k\pi x)} \,dx . &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt; &lt;br /&gt;
&lt;br /&gt;
A continuación, representamos gráficamente \( f(x) \) y \( f_n(x) \) para \( n=1,5,10 \).  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Untitled.png|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
%Escribimos la función original definida en el intervalo [0,1]:&lt;br /&gt;
f=@(x)1-2*abs(1/2-x);&lt;br /&gt;
%Modificamos la función para que sea impar en el intervalo [-1,1]&lt;br /&gt;
f_ext=@(x)sign(x).*(1-2*abs(1/2-abs(x)));&lt;br /&gt;
&lt;br /&gt;
%Graficamos la función estendida de forma impar&lt;br /&gt;
hold on&lt;br /&gt;
xx=linspace(-1,1,10000);&lt;br /&gt;
plot(xx,f_ext(xx))&lt;br /&gt;
%Modificamos los colores de las gráficas para que se vean mejor&lt;br /&gt;
newcolors = [0.83 0.14 0.14&lt;br /&gt;
             1.00 0.54 0.00&lt;br /&gt;
             0.47 0.25 0.80&lt;br /&gt;
             0.25 0.80 0.54];         &lt;br /&gt;
colororder(newcolors)&lt;br /&gt;
&lt;br /&gt;
%Ahora, vamos a calcular los coeficientes de la serie de Fourier empleando la fórmula del trapecio. &lt;br /&gt;
n=[1 5 10];&lt;br /&gt;
N=1000;                       %Número de puntos&lt;br /&gt;
a=0; b=1;                     %Extremos de los intervalos&lt;br /&gt;
h=(b-a)/N;                    %Tamaño de los intervalos&lt;br /&gt;
u=a:h:b;                      %Puntos de la partición&lt;br /&gt;
for i=1:length(n) &lt;br /&gt;
    SF=0&lt;br /&gt;
    for k=1:n(i)&lt;br /&gt;
        c_n=zeros(1,n(i));&lt;br /&gt;
        c=(2.*f(u).*sin(k.*pi.*u))';  %Función a integrar&lt;br /&gt;
        w=ones(N+1,1);                %Vector de pesos &lt;br /&gt;
        w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
        c_n(k)=h*w'*c;                %Coeficientes de la serie de Fourier&lt;br /&gt;
        SF=SF+c_n(k)*sin(k*pi*xx);    %Vamos calculando la propia serie&lt;br /&gt;
    end&lt;br /&gt;
    plot(xx,SF)                      %Graficamos la serie de Fourier para un n determinado&lt;br /&gt;
end&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Nótese que aumentar el número de términos de la serie de Fourier permite aproximar mejor la función original. &lt;br /&gt;
&lt;br /&gt;
Para hacer un estudio completo de las aproximaciones, vamos a representar el error de \( f_n(x) \) respecto a \( f(x) \) en función de \( n \) con normas \( L^2 \) y del supremo o uniforme.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:24_25_grupoACIRV_erroresej1.png|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
a=0; b=1;                    &lt;br /&gt;
u_1=a:10^(-3):b; &lt;br /&gt;
N=length(u_1)-1;&lt;br /&gt;
h=(b-a)/N;&lt;br /&gt;
&lt;br /&gt;
%Definir la función f(x)&lt;br /&gt;
f = @(x) 1 - 2*abs(1/2 - x);&lt;br /&gt;
&lt;br /&gt;
% Pesos para la integración con la regla del trapecio&lt;br /&gt;
w=ones(N+1,1);              &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
&lt;br /&gt;
% Inicialización de los errores&lt;br /&gt;
error1 = zeros(1,300);&lt;br /&gt;
error2 = zeros(1,300);&lt;br /&gt;
&lt;br /&gt;
for n=1:300&lt;br /&gt;
    f_n=zeros(1,N+1); % Aproximación con n términos&lt;br /&gt;
    for k=1:n&lt;br /&gt;
        g=(f(u_1).*sin(k*pi*u_1))'; &lt;br /&gt;
        a_k=2*h*w'*g; % Coeficiente de Fourier&lt;br /&gt;
        f_n=f_n+a_k*sin(k*pi*u_1); % Suma de términos&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    % Cálculo de errores&lt;br /&gt;
    g1=abs(f(u_1)-f_n).^2;&lt;br /&gt;
    error1(n)=(h*w'*g1')^(1/2); % Norma L^2&lt;br /&gt;
    error2(n)=max(abs(f(u_1)-f_n)); % Norma suprema&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Graficar errores con escala logarítmica en el eje y&lt;br /&gt;
nn=1:300;&lt;br /&gt;
hold on&lt;br /&gt;
plot(nn,error1,'b',LineWidth=1.5)&lt;br /&gt;
plot(nn,error2,'r',LineWidth=1.5)&lt;br /&gt;
xlabel('Valor de n')&lt;br /&gt;
ylabel('Error en escala logarítmica')&lt;br /&gt;
title('Errores en las normas L^2 y uniforme')&lt;br /&gt;
legend('Error en la norma $L^2$', 'Error en la norma uniforme')&lt;br /&gt;
grid on&lt;br /&gt;
set(gca, 'YScale', 'log') % Escala logarítmica en el eje y&lt;br /&gt;
ylim([1e-6 1]) % Límites del eje y&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Aproximación de una función discontinua=&lt;br /&gt;
&lt;br /&gt;
Ahora, vamos a aproximar la función \( f(x) = 1_{x \leq 1/4}(x) \).&lt;br /&gt;
&lt;br /&gt;
A diferencia del caso anterior, extendemos la función de forma par al intervalo \([-1,1]\), obteniendo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; f_{\text{ext}}(x) = \begin{cases} 1, &amp;amp; \text{si } x \in [-\frac{1}{4}, \frac{1}{4}] \\ 0, &amp;amp; \text{si } x \in [-1,-\frac{1}{4}) \cup (\frac{1}{4},1]. \end{cases} &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Observamos que la función posee dos discontinuidades, en \( x = -\frac{1}{4} \) y \( x = \frac{1}{4} \). Sin embargo, por la condición de Dirichlet, puesto que el número de discontinuidades es finito y la función es monótona a trozos, podemos hacer su transformada de Fourier.&lt;br /&gt;
&lt;br /&gt;
Como en este caso la función es par, su serie de Fourier es una combinación lineal de \( \{\frac{1}{2}, cos(n\pi x)\}_{n\in\mathbf{N}} \). Los coeficientes \( c_n \) se anulan al ser la integral de una función impar sobre un intervalo simétrico:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; f_{\text{ext}}(x) \approx d_0 +\sum^{\infty}_{n=1} d_ncos(n\pi x) &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Al representar \( f(x) \) y \( f_{n}(x) \) para \( n=\{1,...,10 \}\), observamos que aparecen unas oscilaciones conocidas como el fenómeno de Gibbs.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:24 25 grupoACIRV fourierej3.png|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
F=@(x) 1.*(x&amp;lt;=1/4);&lt;br /&gt;
g=@(x) F(-x);&lt;br /&gt;
xx=linspace(-1,1,10000);&lt;br /&gt;
fplot(F,[0 1],'b','linewidth',1.5)&lt;br /&gt;
hold on&lt;br /&gt;
fplot(g,[-1 0],'b','linewidth',1.5)&lt;br /&gt;
%Modificamos los colores de las gráficas para que se vean mejor&lt;br /&gt;
newcolors = [0.83 0.14 0.14&lt;br /&gt;
             1.00 0.54 0.00&lt;br /&gt;
             0.47 0.25 0.80&lt;br /&gt;
             0.25 0.80 0.54];         &lt;br /&gt;
colororder(newcolors)&lt;br /&gt;
&lt;br /&gt;
%Ahora, vamos a calcular los coeficientes de la serie de Fourier empleando la fórmula del trapecio. &lt;br /&gt;
n=1:1:10;&lt;br /&gt;
N=1000;                       %Número de puntos&lt;br /&gt;
a=0; b=1;                     %Extremos de los intervalos&lt;br /&gt;
h=(b-a)/N;                    %Tamaño de los intervalos&lt;br /&gt;
u=a:h:b;                      %Puntos de la partición&lt;br /&gt;
w=ones(N+1,1);                %Vector de pesos &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
d_0=0; d0=(2.*F(u).*(1/2))';&lt;br /&gt;
d_0=h*w'*d0;&lt;br /&gt;
SF=zeros(length(n),length(xx))+ones(length(n),length(xx))*d_0;&lt;br /&gt;
for i=1:length(n) &lt;br /&gt;
    for k=1:n(i)&lt;br /&gt;
        d_n=zeros(1,n(i));&lt;br /&gt;
        c=(2.*F(u).*cos(k.*pi.*u))';  %Función a integrar&lt;br /&gt;
        d_n(k)=h*w'*c;                %Coeficientes de la serie de Fourier&lt;br /&gt;
        SF(i,:)=SF(i,:)+d_n(k)*cos(k*pi*xx); %Vamos calculando la serie para cada n y la guardamos en la fila n de SF&lt;br /&gt;
    end&lt;br /&gt;
    plot(xx,SF(i,:))                  %Graficamos la serie de Fourier para un n determinado&lt;br /&gt;
end&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Para suavizar dichas oscilaciones utilizamos las sumas de Cesàro:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &amp;lt;math&amp;gt; S_N = \frac{1}{n+1} \sum^{N}_{n=0}f_n(x). &amp;lt;/math&amp;gt; &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podemos representarlas gráficamente para un n dado:&lt;br /&gt;
[[Archivo:24 25 grupoACIRV cesaroej3.png|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
F=@(x) 1.*(x&amp;lt;=1/4);&lt;br /&gt;
g=@(x) F(-x);&lt;br /&gt;
xx=linspace(-1,1,10000);&lt;br /&gt;
fplot(F,[0 1],'b','linewidth',1.5)&lt;br /&gt;
hold on&lt;br /&gt;
fplot(g,[-1 0],'b','linewidth',1.5)&lt;br /&gt;
%Modificamos los colores de las gráficas para que se vean mejor&lt;br /&gt;
newcolors = [0.83 0.14 0.14&lt;br /&gt;
             1.00 0.54 0.00&lt;br /&gt;
             0.47 0.25 0.80&lt;br /&gt;
             0.25 0.80 0.54];         &lt;br /&gt;
colororder(newcolors)&lt;br /&gt;
&lt;br /&gt;
%Ahora, vamos a calcular los coeficientes de la serie de Fourier empleando la fórmula del trapecio. &lt;br /&gt;
n=1:1:100;&lt;br /&gt;
N=1000;                       %Número de puntos&lt;br /&gt;
a=0; b=1;                     %Extremos de los intervalos&lt;br /&gt;
h=(b-a)/N;                    %Tamaño de los intervalos&lt;br /&gt;
u=a:h:b;                      %Puntos de la partición&lt;br /&gt;
w=ones(N+1,1);                %Vector de pesos &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
d_0=0; d0=(2.*F(u).*(1/2))';&lt;br /&gt;
d_0=h*w'*d0;&lt;br /&gt;
SF=zeros(length(n),length(xx))+ones(length(n),length(xx))*d_0;&lt;br /&gt;
for i=1:length(n) &lt;br /&gt;
    for k=1:n(i)&lt;br /&gt;
        d_n=zeros(1,n(i));&lt;br /&gt;
        c=(2.*F(u).*cos(k.*pi.*u))';  %Función a integrar&lt;br /&gt;
        d_n(k)=h*w'*c;                %Coeficientes de la serie de Fourier&lt;br /&gt;
        SF(i,:)=SF(i,:)+d_n(k)*cos(k*pi*xx); %Vamos calculando la serie para cada n y la guardamos en la fila n de SF&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
SNs=zeros(1,length(xx));              %Calculamos las sumas de Cesàro&lt;br /&gt;
for i=1:length(n)&lt;br /&gt;
    SNs=SNs+SF(i,:);&lt;br /&gt;
end&lt;br /&gt;
SN=1/(length(n)+1)*SNs;&lt;br /&gt;
plot(xx,SN)                           %Graficamos la aproximación obtenida.&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vamos a comparar el error de aproximación respecto valores de N. Lo haremos inicialmente para la aproximación por serie de Fourier y para la sumade Cèsaro.&lt;br /&gt;
[[Archivo: EJ3_ERROR_FOURIER_ACIRV.jpeg|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
a=0; b=1;                    &lt;br /&gt;
u_1=a:10^(-3):b;&lt;br /&gt;
N=length(u_1)-1;&lt;br /&gt;
h=(b-a)/N;&lt;br /&gt;
&lt;br /&gt;
% Definir la función f(x)&lt;br /&gt;
f = @(x) 1.*(x&amp;lt;=1/4);&lt;br /&gt;
f_ext = @(x) 1.*(x &amp;lt;= 1/4).*(x &amp;gt;= -1/4);&lt;br /&gt;
&lt;br /&gt;
% Pesos para la integración con la regla del trapecio&lt;br /&gt;
w=ones(N+1,1);              &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
&lt;br /&gt;
% Inicialización de los errores&lt;br /&gt;
error1 = zeros(1,300);&lt;br /&gt;
error2 = zeros(1,300);&lt;br /&gt;
&lt;br /&gt;
d_0=0;d0=(2.*f(u_1).*(1/2))';&lt;br /&gt;
d_0=h*w'*d0;&lt;br /&gt;
for n=1:300&lt;br /&gt;
    f_n=zeros(1,N+1); % Aproximación con n términos&lt;br /&gt;
    for k=1:n&lt;br /&gt;
        g=(f(u_1).*cos(k*pi*u_1))';&lt;br /&gt;
        d_k=2*h*w'*g; % Coeficiente de Fourier&lt;br /&gt;
        f_n=f_n+d_k*cos(k*pi*u_1); %Suma de términos&lt;br /&gt;
    end&lt;br /&gt;
f_n=f_n+d_0; %Función extendida&lt;br /&gt;
&lt;br /&gt;
    % Cálculo de errores&lt;br /&gt;
    g1=abs(f_ext(u_1)-f_n).^2;&lt;br /&gt;
    error1(n)=(h*w'*g1')^(1/2); % Norma L^2&lt;br /&gt;
    error2(n)=max(abs(f_ext(u_1)-f_n)); % Norma suprema&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Graficar errores con escala logarítmica en el eje y&lt;br /&gt;
nn=1:300;&lt;br /&gt;
hold on&lt;br /&gt;
plot(nn,error1,'b',LineWidth=1.5)&lt;br /&gt;
plot(nn,error2,'r',LineWidth=1.5)&lt;br /&gt;
xlabel('Valor de n')&lt;br /&gt;
ylabel('Error en escala logarítmica')&lt;br /&gt;
title('Errores en las normas L^2 y uniforme')&lt;br /&gt;
legend('Error en la norma $L^2$', 'Error en la norma uniforme')&lt;br /&gt;
grid on&lt;br /&gt;
set(gca, 'YScale', 'log') % Escala logarítmica en el eje y&lt;br /&gt;
ylim([1e-6 1]) % Límites del eje y&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo: EJ3_ERROR_SUMAS_ACIRV.jpeg|450px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
&lt;br /&gt;
% Definimos la función F y su extensión impar g&lt;br /&gt;
F = @(x) 1.*(x &amp;lt;= 1/4);&lt;br /&gt;
g = @(x) F(-x);&lt;br /&gt;
f_ext = @(x) 1.*(x &amp;lt;= 1/4).*(x &amp;gt;= -1/4);&lt;br /&gt;
&lt;br /&gt;
% Puntos para la evaluación&lt;br /&gt;
xx = linspace(-1, 1, 10000);&lt;br /&gt;
&lt;br /&gt;
% Graficamos la función original&lt;br /&gt;
fplot(F, [0 1], 'b', 'linewidth', 1.5)&lt;br /&gt;
hold on&lt;br /&gt;
fplot(g, [-1 0], 'b', 'linewidth', 1.5)&lt;br /&gt;
&lt;br /&gt;
% Modificamos los colores de las gráficas para mejorar la visibilidad&lt;br /&gt;
newcolors = [0.83 0.14 0.14;&lt;br /&gt;
             1.00 0.54 0.00;&lt;br /&gt;
             0.47 0.25 0.80;&lt;br /&gt;
             0.25 0.80 0.54];         &lt;br /&gt;
colororder(newcolors)&lt;br /&gt;
&lt;br /&gt;
% Parámetros para la serie de Fourier&lt;br /&gt;
n = 1:1:300;    % Número de términos considerados&lt;br /&gt;
N = 1000;       % Número de puntos en la integración&lt;br /&gt;
a = 0; b = 1;   % Extremos del intervalo&lt;br /&gt;
h = (b-a)/N;    % Tamaño de los subintervalos&lt;br /&gt;
u = a:h:b;      % Puntos de la partición&lt;br /&gt;
w = ones(N+1,1); &lt;br /&gt;
w(1) = 1/2; &lt;br /&gt;
w(N+1) = 1/2;   % Pesos del método del trapecio&lt;br /&gt;
&lt;br /&gt;
% Cálculo de los coeficientes de Fourier&lt;br /&gt;
d_0 = 0; &lt;br /&gt;
d0 = (2.*F(u).*(1/2))';&lt;br /&gt;
d_0 = h*w'*d0;  % Coeficiente a_0&lt;br /&gt;
SF = zeros(length(n), length(xx)) + d_0;&lt;br /&gt;
&lt;br /&gt;
for i = 1:length(n)&lt;br /&gt;
    for k = 1:n(i)&lt;br /&gt;
        c = (2.*F(u).*cos(k.*pi.*u))';  % Función a integrar&lt;br /&gt;
        d_n(k) = h*w'*c;  % Coeficientes de la serie de Fourier&lt;br /&gt;
        SF(i,:) = SF(i,:) + d_n(k) * cos(k*pi*xx);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Aplicamos las sumas de Cesàro&lt;br /&gt;
SNs = zeros(1, length(xx));&lt;br /&gt;
for i = 1:length(n)&lt;br /&gt;
    SNs = SNs + SF(i,:);&lt;br /&gt;
end&lt;br /&gt;
SN = 1/(length(n)+1) * SNs; % Suma de Cesàro&lt;br /&gt;
&lt;br /&gt;
% Graficamos la aproximación final&lt;br /&gt;
plot(xx, SN)&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
% Cálculo del error con normas L^∞ y L^2&lt;br /&gt;
error_uniforme = zeros(1, length(n));&lt;br /&gt;
error_L2 = zeros(1, length(n));&lt;br /&gt;
&lt;br /&gt;
for i = 1:length(n)&lt;br /&gt;
    % Norma uniforme (máximo error absoluto)&lt;br /&gt;
    error_uniforme(i) = max(abs(F(xx) - SF(i,:)));&lt;br /&gt;
&lt;br /&gt;
    % Norma L^2 usando la regla del trapecio&lt;br /&gt;
    integrando = (F(u) - SF(i, round(linspace(1, length(xx), length(u)))).^2);&lt;br /&gt;
    error_L2(i) = sqrt(h * (w' * integrando'));&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Graficamos los errores&lt;br /&gt;
figure&lt;br /&gt;
semilogy(n, error_uniforme, 'r', 'linewidth', 1.5)&lt;br /&gt;
hold on&lt;br /&gt;
semilogy(n, error_L2, 'b', 'linewidth', 1.5)&lt;br /&gt;
xlabel('Valor de n')&lt;br /&gt;
ylabel('Error en escala logarítmica')&lt;br /&gt;
title('Errores en las normas L^2 y uniforme')&lt;br /&gt;
legend('Error en la norma $L^2$', 'Error en la norma uniforme')&lt;br /&gt;
grid on&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>Angelasotelo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:EJ3_ERROR_SUMAS_ACIRV.jpeg&amp;diff=84160</id>
		<title>Archivo:EJ3 ERROR SUMAS ACIRV.jpeg</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:EJ3_ERROR_SUMAS_ACIRV.jpeg&amp;diff=84160"/>
				<updated>2025-02-15T15:45:21Z</updated>
		
		<summary type="html">&lt;p&gt;Angelasotelo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Angelasotelo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:EJ3_ERROR_FOURIER_ACIRV.jpeg&amp;diff=84159</id>
		<title>Archivo:EJ3 ERROR FOURIER ACIRV.jpeg</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:EJ3_ERROR_FOURIER_ACIRV.jpeg&amp;diff=84159"/>
				<updated>2025-02-15T15:44:55Z</updated>
		
		<summary type="html">&lt;p&gt;Angelasotelo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Angelasotelo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_ACIRV)&amp;diff=84041</id>
		<title>Series de Fourier (Grupo ACIRV)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_ACIRV)&amp;diff=84041"/>
				<updated>2025-02-14T10:49:30Z</updated>
		
		<summary type="html">&lt;p&gt;Angelasotelo: /* Aproximación de una función continua */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Series de Fourier (Grupo ACIRV). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | Ángela Sotelo Fernández, Carmen Doñoro Molina, Inés Torres Gómez, Rubén Gutiérrez Hernández, Violeta Luján Barrios.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Base trigonométrica compleja=&lt;br /&gt;
La &amp;lt;b&amp;gt;base trigonométrica&amp;lt;/b&amp;gt; es una base del espacio &amp;lt;math&amp;gt;L^2([-\pi,\pi])&amp;lt;/math&amp;gt;, por lo que las funciones pertenecientes a este espacio pueden escribirse como una combinación lineal de los elementos de la base. A estas expresiones se les llama &amp;lt;b&amp;gt;series de Fourier&amp;lt;/b&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
Dado que es una base ortonormal, sus coeficientes pueden calcularse mediante integración, obteniendo las siguientes fórmulas:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;d_0 = \int_{-\pi}^{\pi} f(x) \frac{1}{2} \, dx&amp;lt;/math&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;d_n = \int_{-\pi}^{\pi} f(x) \cos(n\pi x) \, dx&amp;lt;/math&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;c_n = \int_{-\pi}^{\pi} f(x) \sin(n\pi x) \, dx&amp;lt;/math&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Utilizando el siguiente código en MATLAB, se pueden representar los 10 primeros elementos de la base en una gráfica:&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
% Definimos la malla para pintar funciones del [-1,1]&lt;br /&gt;
x = linspace(-1, 1, 1000);  &lt;br /&gt;
n_max = 5;                  % Número de funciones a pintar para seno y coseno&lt;br /&gt;
&lt;br /&gt;
% Pintamos la gráfica de f = 1/2&lt;br /&gt;
figure;&lt;br /&gt;
plot(x, 1/2 * ones(size(x)), 'k', 'LineWidth', 1, 'DisplayName', '1/2');&lt;br /&gt;
hold on;&lt;br /&gt;
&lt;br /&gt;
% Pintamos cos(n*pi*x) y sin(n*pi*x) para n = 1 hasta n_max&lt;br /&gt;
for n = 1:n_max&lt;br /&gt;
    % Definimos las funciones&lt;br /&gt;
    f_cos = cos(n * pi * x);&lt;br /&gt;
    f_sin = sin(n * pi * x);&lt;br /&gt;
    &lt;br /&gt;
    plot(x, f_cos, 'LineWidth', 1, 'DisplayName', sprintf('cos(%d\\pi x)', n));&lt;br /&gt;
    &lt;br /&gt;
    plot(x, f_sin,'--', 'LineWidth', 1, 'DisplayName', sprintf('sin(%d\\pi x)', n));&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Ponemos leyenda en la gráfica&lt;br /&gt;
title(sprintf('Base \\{1/2, cos(n\\pi x), sin(n\\pi x)\\} para n = 1 ... %d', n_max));&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('Valor de la función');&lt;br /&gt;
legend('show', 'Location', 'BestOutside'); &lt;br /&gt;
grid on;&lt;br /&gt;
axis([-1 1 -1.5 1.5]);&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center; margin-top: 10px;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;display: inline-block; margin-right: 10px;&amp;quot;&amp;gt;&lt;br /&gt;
    [[Archivo:EJ1_SENO_ACIRV.png|400px|none|Seno]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;&lt;br /&gt;
    [[Archivo:EJ1_COSENO_ACIRV.png|400px|none|Coseno]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;&lt;br /&gt;
    [[Archivo:EJ1_1_2_ACIRV.jpeg|400px|none|Coseno]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Aproximación de una función continua=&lt;br /&gt;
Vamos a aproximar la función \( f(x) = 1 - 2 \left| \frac{1}{2} - x \right| \). &lt;br /&gt;
&lt;br /&gt;
En primer lugar, extendemos de forma impar la función al intervalo simétrico \([-1,1]\). Obtenemos entonces:&lt;br /&gt;
&lt;br /&gt;
\[ f_{\text{ext}}(x) = \operatorname{sign}(x) \cdot \left(1 - 2 \left| \frac{1}{2} - |x| \right| \right). \]&lt;br /&gt;
&lt;br /&gt;
Es decir,&lt;br /&gt;
&lt;br /&gt;
\[&lt;br /&gt;
f_{\text{ext}}(x) =&lt;br /&gt;
\begin{cases} &lt;br /&gt;
-(1 - 2 | \frac{1}{2} - |x| |), &amp;amp; \text{si } x \in [-1,0) \\ &lt;br /&gt;
1 - 2 \left| \frac{1}{2} - x \right|, &amp;amp; \text{si } x \in [0,1].&lt;br /&gt;
\end{cases}&lt;br /&gt;
\]&lt;br /&gt;
&lt;br /&gt;
Ahora debemos comprobar que la función es continua. &lt;br /&gt;
&lt;br /&gt;
En el dominio \( [-1,0) \cup (0,1] \), es continua por estar definida como una función continua.  &lt;br /&gt;
Falta por ver que es continua en \( x = 0 \):&lt;br /&gt;
&lt;br /&gt;
\[ f_{\text{ext}}(0) = 0. \]&lt;br /&gt;
&lt;br /&gt;
Ahora calculamos los límites laterales:&lt;br /&gt;
&lt;br /&gt;
\[ \lim_{x \to 0^-} f_{\text{ext}}(x) = -1 + 1 = 0, \]&lt;br /&gt;
&lt;br /&gt;
\[ \lim_{x \to 0^+} f_{\text{ext}}(x) = 1 - 1 = 0. \]&lt;br /&gt;
&lt;br /&gt;
Dado que los límites laterales coinciden con \( f_{\text{ext}}(0) \), concluimos que la función es continua en todos los puntos.  &lt;br /&gt;
&lt;br /&gt;
Ahora para la representación, con las fórmulas que hemos calculado arriba, calculamos los coeficientes de Fourier:  &lt;br /&gt;
&lt;br /&gt;
\[ d_0 = \int_{-1}^{1} f_{\text{ext}}(x) \frac{1}{2} \, dx \]  &lt;br /&gt;
&lt;br /&gt;
\[ d_n = \int_{-1}^{1} f_{\text{ext}}(x) \cos(n\pi x) \, dx \]  &lt;br /&gt;
&lt;br /&gt;
\[ c_n = \int_{-1}^{1} f_{\text{ext}}(x) \sin(n\pi x) \, dx \]  &lt;br /&gt;
&lt;br /&gt;
Como los coeficientes \( d_0 \) y \( d_n \) son integrales de una función impar sobre un intervalo simétrico, sabemos que se anulan.  &lt;br /&gt;
&lt;br /&gt;
Por tanto, la función nos va a quedar como una combinación lineal de los coeficientes \( c_n \), es decir:  &lt;br /&gt;
&lt;br /&gt;
\[ f_{\text{ext}}(x) \approx \sum_{n=1}^{\infty} c_n \sin(n\pi x). \]  &lt;br /&gt;
&lt;br /&gt;
Definimos \( f_n(x) \) como la suma de los primeros \( n \) términos de la serie de Fourier:  &lt;br /&gt;
&lt;br /&gt;
\[ f_{\text{ext}}(x) = \sum_{n=1}^{n} b_n \sin(n\pi x), \hspace{2mm} \text{con} \hspace{2mm} b_k = 2\int_{0}^{1} f(x)\sin{(k\pi x)} \,dx . \]  &lt;br /&gt;
&lt;br /&gt;
A continuación, representamos gráficamente \( f(x) \) y \( f_n(x) \) para \( n=1,5,10 \).  &lt;br /&gt;
Nótese que aumentar el número de términos de la serie de Fourier permite aproximar mejor la función original.  &lt;br /&gt;
&lt;br /&gt;
Los coeficientes de Fourier se obtienen numéricamente resolviendo las integrales usando la fórmula del trapecio con una división bastante fina \( (10^{-3}) \) con la función **trapz** que proporciona MatLab.  &lt;br /&gt;
&lt;br /&gt;
Para hacer un estudio completo de las aproximaciones, vamos a representar el error de \( f_n(x) \) respecto a \( f(x) \) en función de \( n \).  &lt;br /&gt;
Para calcular este error, vamos a emplear tanto la norma \( L^2 \) como la del supremo o uniforme.&lt;br /&gt;
&lt;br /&gt;
=Aproximación de una función discontinua=&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>Angelasotelo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_ACIRV)&amp;diff=84040</id>
		<title>Series de Fourier (Grupo ACIRV)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_ACIRV)&amp;diff=84040"/>
				<updated>2025-02-14T10:40:02Z</updated>
		
		<summary type="html">&lt;p&gt;Angelasotelo: /* Base trigonométrica compleja */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Series de Fourier (Grupo ACIRV). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | Ángela Sotelo Fernández, Carmen Doñoro Molina, Inés Torres Gómez, Rubén Gutiérrez Hernández, Violeta Luján Barrios.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Base trigonométrica compleja=&lt;br /&gt;
La &amp;lt;b&amp;gt;base trigonométrica&amp;lt;/b&amp;gt; es una base del espacio &amp;lt;math&amp;gt;L^2([-\pi,\pi])&amp;lt;/math&amp;gt;, por lo que las funciones pertenecientes a este espacio pueden escribirse como una combinación lineal de los elementos de la base. A estas expresiones se les llama &amp;lt;b&amp;gt;series de Fourier&amp;lt;/b&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
Dado que es una base ortonormal, sus coeficientes pueden calcularse mediante integración, obteniendo las siguientes fórmulas:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;d_0 = \int_{-\pi}^{\pi} f(x) \frac{1}{2} \, dx&amp;lt;/math&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;d_n = \int_{-\pi}^{\pi} f(x) \cos(n\pi x) \, dx&amp;lt;/math&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;c_n = \int_{-\pi}^{\pi} f(x) \sin(n\pi x) \, dx&amp;lt;/math&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Utilizando el siguiente código en MATLAB, se pueden representar los 10 primeros elementos de la base en una gráfica:&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
% Definimos la malla para pintar funciones del [-1,1]&lt;br /&gt;
x = linspace(-1, 1, 1000);  &lt;br /&gt;
n_max = 5;                  % Número de funciones a pintar para seno y coseno&lt;br /&gt;
&lt;br /&gt;
% Pintamos la gráfica de f = 1/2&lt;br /&gt;
figure;&lt;br /&gt;
plot(x, 1/2 * ones(size(x)), 'k', 'LineWidth', 1, 'DisplayName', '1/2');&lt;br /&gt;
hold on;&lt;br /&gt;
&lt;br /&gt;
% Pintamos cos(n*pi*x) y sin(n*pi*x) para n = 1 hasta n_max&lt;br /&gt;
for n = 1:n_max&lt;br /&gt;
    % Definimos las funciones&lt;br /&gt;
    f_cos = cos(n * pi * x);&lt;br /&gt;
    f_sin = sin(n * pi * x);&lt;br /&gt;
    &lt;br /&gt;
    plot(x, f_cos, 'LineWidth', 1, 'DisplayName', sprintf('cos(%d\\pi x)', n));&lt;br /&gt;
    &lt;br /&gt;
    plot(x, f_sin,'--', 'LineWidth', 1, 'DisplayName', sprintf('sin(%d\\pi x)', n));&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Ponemos leyenda en la gráfica&lt;br /&gt;
title(sprintf('Base \\{1/2, cos(n\\pi x), sin(n\\pi x)\\} para n = 1 ... %d', n_max));&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('Valor de la función');&lt;br /&gt;
legend('show', 'Location', 'BestOutside'); &lt;br /&gt;
grid on;&lt;br /&gt;
axis([-1 1 -1.5 1.5]);&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center; margin-top: 10px;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;display: inline-block; margin-right: 10px;&amp;quot;&amp;gt;&lt;br /&gt;
    [[Archivo:EJ1_SENO_ACIRV.png|400px|none|Seno]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;&lt;br /&gt;
    [[Archivo:EJ1_COSENO_ACIRV.png|400px|none|Coseno]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;&lt;br /&gt;
    [[Archivo:EJ1_1_2_ACIRV.jpeg|400px|none|Coseno]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Aproximación de una función continua=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Aproximación de una función discontinua=&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>Angelasotelo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:EJ1_TOTAL_ACIRV.JPG&amp;diff=84039</id>
		<title>Archivo:EJ1 TOTAL ACIRV.JPG</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:EJ1_TOTAL_ACIRV.JPG&amp;diff=84039"/>
				<updated>2025-02-14T10:35:00Z</updated>
		
		<summary type="html">&lt;p&gt;Angelasotelo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Angelasotelo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_ACIRV)&amp;diff=84038</id>
		<title>Series de Fourier (Grupo ACIRV)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_ACIRV)&amp;diff=84038"/>
				<updated>2025-02-14T10:34:09Z</updated>
		
		<summary type="html">&lt;p&gt;Angelasotelo: /* Base trigonométrica compleja */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Series de Fourier (Grupo ACIRV). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | Ángela Sotelo Fernández, Carmen Doñoro Molina, Inés Torres Gómez, Rubén Gutiérrez Hernández, Violeta Luján Barrios.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Base trigonométrica compleja=&lt;br /&gt;
La &amp;lt;b&amp;gt;base trigonométrica&amp;lt;/b&amp;gt; es una base del espacio &amp;lt;math&amp;gt;L^2([-\pi,\pi])&amp;lt;/math&amp;gt;, por lo que las funciones pertenecientes a este espacio pueden escribirse como una combinación lineal de los elementos de la base. A estas expresiones se les llama &amp;lt;b&amp;gt;series de Fourier&amp;lt;/b&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
Dado que es una base ortonormal, sus coeficientes pueden calcularse mediante integración, obteniendo las siguientes fórmulas:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;d_0 = \int_{-\pi}^{\pi} f(x) \frac{1}{2} \, dx&amp;lt;/math&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;d_n = \int_{-\pi}^{\pi} f(x) \cos(n\pi x) \, dx&amp;lt;/math&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;c_n = \int_{-\pi}^{\pi} f(x) \sin(n\pi x) \, dx&amp;lt;/math&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Utilizando el siguiente código en MATLAB, se pueden representar los 10 primeros elementos de la base en una gráfica:&lt;br /&gt;
[[Archivo:EJ1_1_2_ACIRV.jpeg|225px|thumb|right|upright=0.6]]&lt;br /&gt;
[[Archivo:EJ1_SENO_ACIRV.png|225px|thumb|right|upright=0.1]]&lt;br /&gt;
[[Archivo:EJ1_COSENO_ACIRV.png|225px|thumb|right|upright=0.1]]&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Definimos la malla para pintar funciones del [-1,1]&lt;br /&gt;
x = linspace(-1, 1, 1000);  &lt;br /&gt;
n_max = 5;                  %Número de funciones a pintar para seno y coseni&lt;br /&gt;
&lt;br /&gt;
% Pintamos la gráfica de f = 1/2&lt;br /&gt;
figure;&lt;br /&gt;
plot(x, 1/2 * ones(size(x)), 'k', 'LineWidth', 1, 'DisplayName', '1/2');&lt;br /&gt;
hold on;&lt;br /&gt;
&lt;br /&gt;
% Pintamos cos(n*pi*x) y sin(n*pi*x) para n = 1 hasta n_max&lt;br /&gt;
for n = 1:n_max&lt;br /&gt;
    % Definimos las funciones funciones&lt;br /&gt;
    f_cos = cos(n * pi * x);&lt;br /&gt;
    f_sin = sin(n * pi * x);&lt;br /&gt;
   &lt;br /&gt;
    plot(x, f_cos, 'LineWidth', 1, 'DisplayName', sprintf('cos(%d\\pi x)', n));&lt;br /&gt;
   &lt;br /&gt;
    plot(x, f_sin,'--', 'LineWidth', 1, 'DisplayName', sprintf('sin(%d\\pi x)', n));&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Ponemos leyenda en la gráfica&lt;br /&gt;
title(sprintf('Base \\{1/2, cos(n\\pi x), sin(n\\pi x)\\} para n = 1 ... %d', n_max));&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('Valor de la función');&lt;br /&gt;
legend('show', 'Location', 'BestOutside');&lt;br /&gt;
grid on;&lt;br /&gt;
axis([-1 1 -1.5 1.5]);&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Aproximación de una función continua=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Aproximación de una función discontinua=&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>Angelasotelo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:EJ1_1_2_ACIRV.jpeg&amp;diff=84036</id>
		<title>Archivo:EJ1 1 2 ACIRV.jpeg</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:EJ1_1_2_ACIRV.jpeg&amp;diff=84036"/>
				<updated>2025-02-14T10:19:49Z</updated>
		
		<summary type="html">&lt;p&gt;Angelasotelo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Angelasotelo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_ACIRV)&amp;diff=84035</id>
		<title>Series de Fourier (Grupo ACIRV)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_ACIRV)&amp;diff=84035"/>
				<updated>2025-02-14T10:19:29Z</updated>
		
		<summary type="html">&lt;p&gt;Angelasotelo: /* Base trigonométrica compleja */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Series de Fourier (Grupo ACIRV). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | Ángela Sotelo Fernández, Carmen Doñoro Molina, Inés Torres Gómez, Rubén Gutiérrez Hernández, Violeta Luján Barrios.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Base trigonométrica compleja=&lt;br /&gt;
La &amp;lt;b&amp;gt;base trigonométrica&amp;lt;/b&amp;gt; es una base del espacio &amp;lt;math&amp;gt;L^2([-\pi,\pi])&amp;lt;/math&amp;gt;, por lo que las funciones pertenecientes a este espacio pueden escribirse como una combinación lineal de los elementos de la base. A estas expresiones se les llama &amp;lt;b&amp;gt;series de Fourier&amp;lt;/b&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
Dado que es una base ortonormal, sus coeficientes pueden calcularse mediante integración, obteniendo las siguientes fórmulas:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;d_0 = \int_{-\pi}^{\pi} f(x) \frac{1}{2} \, dx&amp;lt;/math&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;d_n = \int_{-\pi}^{\pi} f(x) \cos(n\pi x) \, dx&amp;lt;/math&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;c_n = \int_{-\pi}^{\pi} f(x) \sin(n\pi x) \, dx&amp;lt;/math&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Utilizando el siguiente código en MATLAB, se pueden representar los 10 primeros elementos de la base en una gráfica:&lt;br /&gt;
[[Archivo:EJ1_SENO_ACIRV.png|200px|thumb|right|style=margin-top:40px;]]&lt;br /&gt;
[[Archivo:EJ1_COSENO_ACIRV.png|200px|thumb|right|style=&amp;quot;margin-top:40px;&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Definimos la malla para pintar funciones del [-1,1]&lt;br /&gt;
x = linspace(-1, 1, 1000);  &lt;br /&gt;
n_max = 5;                  %Número de funciones a pintar para seno y coseni&lt;br /&gt;
&lt;br /&gt;
% Pintamos la gráfica de f = 1/2&lt;br /&gt;
figure;&lt;br /&gt;
plot(x, 1/2 * ones(size(x)), 'k', 'LineWidth', 1, 'DisplayName', '1/2');&lt;br /&gt;
hold on;&lt;br /&gt;
&lt;br /&gt;
% Pintamos cos(n*pi*x) y sin(n*pi*x) para n = 1 hasta n_max&lt;br /&gt;
for n = 1:n_max&lt;br /&gt;
    % Definimos las funciones funciones&lt;br /&gt;
    f_cos = cos(n * pi * x);&lt;br /&gt;
    f_sin = sin(n * pi * x);&lt;br /&gt;
   &lt;br /&gt;
    plot(x, f_cos, 'LineWidth', 1, 'DisplayName', sprintf('cos(%d\\pi x)', n));&lt;br /&gt;
   &lt;br /&gt;
    plot(x, f_sin,'--', 'LineWidth', 1, 'DisplayName', sprintf('sin(%d\\pi x)', n));&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Ponemos leyenda en la gráfica&lt;br /&gt;
title(sprintf('Base \\{1/2, cos(n\\pi x), sin(n\\pi x)\\} para n = 1 ... %d', n_max));&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('Valor de la función');&lt;br /&gt;
legend('show', 'Location', 'BestOutside');&lt;br /&gt;
grid on;&lt;br /&gt;
axis([-1 1 -1.5 1.5]);&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Aproximación de una función continua=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Aproximación de una función discontinua=&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>Angelasotelo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:EJ2_ERRORES_ACIRV.png&amp;diff=84034</id>
		<title>Archivo:EJ2 ERRORES ACIRV.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:EJ2_ERRORES_ACIRV.png&amp;diff=84034"/>
				<updated>2025-02-14T09:52:16Z</updated>
		
		<summary type="html">&lt;p&gt;Angelasotelo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Angelasotelo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:EJ2_REPRE_ACIRV.png&amp;diff=84033</id>
		<title>Archivo:EJ2 REPRE ACIRV.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:EJ2_REPRE_ACIRV.png&amp;diff=84033"/>
				<updated>2025-02-14T09:52:01Z</updated>
		
		<summary type="html">&lt;p&gt;Angelasotelo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Angelasotelo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:EJ1_COSENO_ACIRV.png&amp;diff=84032</id>
		<title>Archivo:EJ1 COSENO ACIRV.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:EJ1_COSENO_ACIRV.png&amp;diff=84032"/>
				<updated>2025-02-14T09:51:45Z</updated>
		
		<summary type="html">&lt;p&gt;Angelasotelo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Angelasotelo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:EJ1_UNMEDIO_ACIRV.png&amp;diff=84031</id>
		<title>Archivo:EJ1 UNMEDIO ACIRV.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:EJ1_UNMEDIO_ACIRV.png&amp;diff=84031"/>
				<updated>2025-02-14T09:51:32Z</updated>
		
		<summary type="html">&lt;p&gt;Angelasotelo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Angelasotelo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:EJ1_SENO_ACIRV.png&amp;diff=84030</id>
		<title>Archivo:EJ1 SENO ACIRV.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:EJ1_SENO_ACIRV.png&amp;diff=84030"/>
				<updated>2025-02-14T09:51:19Z</updated>
		
		<summary type="html">&lt;p&gt;Angelasotelo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Angelasotelo</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_ACIRV)&amp;diff=84029</id>
		<title>Series de Fourier (Grupo ACIRV)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_(Grupo_ACIRV)&amp;diff=84029"/>
				<updated>2025-02-14T09:46:36Z</updated>
		
		<summary type="html">&lt;p&gt;Angelasotelo: /* Base trigonométrica compleja */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Series de Fourier (Grupo ACIRV). | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP24/25|2024-25]] | Ángela Sotelo Fernández, Carmen Doñoro Molina, Inés Torres Gómez, Rubén Gutiérrez Hernández, Violeta Luján Barrios.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Introducción=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Base trigonométrica compleja=&lt;br /&gt;
La &amp;lt;b&amp;gt;base trigonométrica&amp;lt;/b&amp;gt; es una base del espacio &amp;lt;math&amp;gt;L^2([-\pi,\pi])&amp;lt;/math&amp;gt;, por lo que las funciones pertenecientes a este espacio pueden escribirse como una combinación lineal de los elementos de la base. A estas expresiones se les llama &amp;lt;b&amp;gt;series de Fourier&amp;lt;/b&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
Dado que es una base ortonormal, sus coeficientes pueden calcularse mediante integración, obteniendo las siguientes fórmulas:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;d_0 = \int_{-\pi}^{\pi} f(x) \frac{1}{2} \, dx&amp;lt;/math&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;d_n = \int_{-\pi}^{\pi} f(x) \cos(n\pi x) \, dx&amp;lt;/math&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;c_n = \int_{-\pi}^{\pi} f(x) \sin(n\pi x) \, dx&amp;lt;/math&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Utilizando el siguiente código en MATLAB, se pueden representar los 10 primeros elementos de la base en una gráfica:&lt;br /&gt;
&lt;br /&gt;
=Aproximación de una función continua=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Aproximación de una función discontinua=&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>Angelasotelo</name></author>	</entry>

	</feed>