Diferencia entre revisiones de «Series de Fourier (Grupo CCE)»

De MateWiki
Saltar a: navegación, buscar
(Introducción)
(Aproximación de una función continua)
Línea 53: Línea 53:
  
 
En este apartado, aproximamos la función continua <math>f(x) = 1 - 2|1/2 - x|</math> en el intervalo <math>[0, 1]</math>.  
 
En este apartado, aproximamos la función continua <math>f(x) = 1 - 2|1/2 - x|</math> en el intervalo <math>[0, 1]</math>.  
 
=== Extensión Impar y Base de Senos ===
 
Para trabajar en el intervalo <math>[-1, 1]</math>, extendemos la función de forma '''impar'''. Definimos la extensión <math>g(x)</math> como:
 
<center>
 
<math> g(x) = \begin{cases} f(x), & x \in [0, 1] \\ -f(-x), & x \in [-1, 0) \end{cases} </math>
 
</center>
 
Sustituyendo la expresión de <math>f(x)</math>, obtenemos la función definida a trozos que es continua en todo el intervalo <math>[-1, 1]</math>:
 
<center>
 
<math> g(x) = \begin{cases} -2 - 2x, & -1 \le x < -\frac{1}{2} \\ 2x, & -\frac{1}{2} \le x < \frac{1}{2} \\ 2 - 2x, & \frac{1}{2} \le x \le 1 \end{cases} </math>
 
</center>
 
Al haber extendido la función de forma impar podemos observar que los coeficientes de los términos asociados a loss términos pares de la base trigonométrica son nulos:
 
<center><math>d_n = \int_{-1}^{1} g(x) \cos(n\pi x) dx = 0</math></center>
 
<center><math>d_0 = \frac{1}{\sqrt{2}} \int_{-1}^{1} g(x) dx = 0</math></center>
 
 
Por tanto, la serie de Fourier se reduce a una suma de senos:
 
<center><math>f_n(x) = \sum_{k=1}^{n} a_k \sin(k\pi x), \quad a_k = 2 \int_{0}^{1} f(x) \sin(k\pi x) dx</math></center>.
 
  
 
=== Estudio de Convergencia según el número de términos===
 
=== Estudio de Convergencia según el número de términos===
Línea 134: Línea 118:
 
| style="text-align: center;" | [[Archivo:Errores_grupoCCE.png|400px|thumb|center|Errores graficados en norma L2 y uniforme.]]
 
| style="text-align: center;" | [[Archivo:Errores_grupoCCE.png|400px|thumb|center|Errores graficados en norma L2 y uniforme.]]
 
|}
 
|}
Con esto podemos estudiar la convergencia a partir del número de términos de la serie de Fourier. A medida que aumentamos n, la suma parcial <math>f_n(x)</math> se ajusta con mayor precisión a la forma de la función original.
+
 
 
=== Estudio de la Convergencia según la regularidad===
 
=== Estudio de la Convergencia según la regularidad===
Un objetivo fundamental de este trabajo es entender cómo la '''regularidad''' de una función afecta a la velocidad de convergencia de su serie de Fourier. Según la teoría, si una función tiene <math>k</math> derivadas continuas, sus coeficientes de Fourier <math>a_n, b_n</math> decaen más rápido.  Para ello vamos a comparar la función del apartado anterior <math>f(x)</math> en el intervalo <math>[0,1]</math> ,que es una función continua con derivada continua salvo en el pico <math>x= \frac{1}{2}</math>, con otras dos <math> h(x)= x^2-x</math> , función de clase <math>C^\infty</math>, y con <math>t(x)</math> la función salto definida como
 
<center>
 
<math> g(x) = \begin{cases} 1, & x \in [0, 0.5) \\ 0, & x \in [0.5, 1] \end{cases} </math>
 
</center>
 
Implementamos un código de Matlab que las representa junto con sus desarrollos de Fourier.
 
 
{| class="wikitable" style="width: 100%; border: none; background: transparent;"
 
{| class="wikitable" style="width: 100%; border: none; background: transparent;"
 
|-
 
|-
Línea 195: Línea 174:
 
[[Archivo:Salto_grupoCCE.png|300px|thumb|center|]]
 
[[Archivo:Salto_grupoCCE.png|300px|thumb|center|]]
 
|}
 
|}
Podemos ver que en el caso de la parábola la Serie de Fourier la aproxima practicamente a la perfección, mientras que en nuestra función en el pico en <math>x=0.5</math> (se aprecia mejor en la gráfica anterior que esta más ampliada) falla, y en cambio en la función salto hay oscilaciones persistentes en la discontinuidad, el llamado fenómeno de Gibbs. Para poder compararlo bien vamos a representar el error de cada función en norma
+
 
<math>L^2</math> y en escala logarítmica (ya que hemos visto antes que siguen una exponencial negativa).
+
  
 
{| class="wikitable" style="width: 100%; border: none; background: transparent;"
 
{| class="wikitable" style="width: 100%; border: none; background: transparent;"
Línea 244: Línea 222:
 
[[Archivo:Erroresfunciones_grupoCCE.png|450px|thumb|center|Error de cada función.]]
 
[[Archivo:Erroresfunciones_grupoCCE.png|450px|thumb|center|Error de cada función.]]
 
|}
 
|}
Como podemos ver en el caso de la función salto añadir términos no hace que disminuya el error de forma significativa, ya que su error es el que menos pendiente tiene. En la triangular el error va decreciendo mucho más rápido, y en la parábola se consigue el menor error con la menor cantidad de términos, presentando la pendiente más inclinada lo que indica que el error disminuye más rápido.
+
Obtenemos los coeficientes de los términos impares mediante MatLab:
 
+
Por último, ver que los coecientes de Fourier son un indicador de la regularidad. Cuanto más rápido caen a cero, más regular es la función. Si obtenemos los coeficientes de cada función anterior veremos que los de la parábola son los más cercanos a 0. Obteenemos los coeficientes de los términos impares mediante MatLab:
+
 
{| class="wikitable" style="text-align: center; width: 100%;"
 
{| class="wikitable" style="text-align: center; width: 100%;"
 
|+ Coeficientes de Fourier bn
 
|+ Coeficientes de Fourier bn
Línea 269: Línea 245:
 
! Decaimiento !! '''1/n'''  !! '''1/n²'''  !! '''1/n³'''  
 
! Decaimiento !! '''1/n'''  !! '''1/n²'''  !! '''1/n³'''  
 
|}
 
|}
Y observamos que los coeficientes de la función salto decaen de manera <math>\frac{1}{n}</math> , más lentos que los de la triangular que lo hacen de manera <math>\frac{1}{n^2}</math> y los de la parábola lo hacen al menos a <math>\frac{1}{n^3}</math>.
+
 
 
[[Categoría:EDP]]
 
[[Categoría:EDP]]
 
[[Categoría:EDP25/26]]
 
[[Categoría:EDP25/26]]

Revisión del 08:08 19 feb 2026

Trabajo realizado por estudiantes
Título Series de Fourier. Grupo CCE
Asignatura EDP
Curso 2025-26
Autores Coloma de Lara

Carlos de Miguel

Elena Rodríguez

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


1 Visualizar la base trigométrica

Vamos a dibujar en una gráfica, con Matlab, los 7 primeros términos de la serie trigonométrica en [math] x\in [-1,1] [/math], para que sea más fácil visualizarla.

Implementación en MATLAB Resultado Gráfico
% definimos intervalo [-T, T]
T = 1;                  
x = linspace(-T, T, 1000); 
n_max = 7;    %numero de terminos          

% normalizamos
phi_0_factor = 1/sqrt(2*T);
phi_n_factor = 1/sqrt(T);

figure('Color', 'w');

%  d0 y dn (Cosenos - Pares)
subplot(2,1,1); hold on;
plot(x, ones(size(x)) * phi_0_factor, 'k', 'LineWidth', 2.5, 'DisplayName', 'd_0');
colors_d = lines(n_max);
for n = 1:n_max
    y_cos = phi_n_factor * cos(n * pi * x / T);
    plot(x, y_cos, 'Color', [colors_d(n,:), 0.5]);
end
title('Funciones de la base para d_0 y d_n (Pares)');
grid on; ylabel('Amplitud');

%  cn (Senos - Impares)
subplot(2,1,2); hold on;
colors_c = jet(n_max);
for n = 1:n_max
    y_sin = phi_n_factor * sin(n * pi * x / T);
    plot(x, y_sin, 'Color', [colors_c(n,:), 0.5]);
end
title('Funciones de la base para c_n (Impares)');
grid on; xlabel('x'); ylabel('Amplitud');
Visualización de la base ortonormal en [-1, 1].

2 Aproximación de una función continua

En este apartado, aproximamos la función continua [math]f(x) = 1 - 2|1/2 - x|[/math] en el intervalo [math][0, 1][/math].

2.1 Estudio de Convergencia según el número de términos

Calculamos los coeficientes [math]a_k[/math] mediante la fórmula del trapecio con una división de [math]10^{-3}[/math]. Evaluamos el error en las normas [math]L^2[/math] y uniforme ([math]L^\infty[/math]) para observar la calidad de la aproximación en función del número de términos de la serie. Luego hemos dibujado en una gráfica el error en ambas normas en función de n, donde podemos ver que las gráficas obtenidas son del tipo exponencial negativa.

Implementación en MATLAB
% Parámetros iniciales
dx = 1e-3; % división sugerida
x = 0:dx:1;
f = 1 - 2*abs(0.5 - x);
% Configuración de términos para visualización 
valores_n = [1, 5, 10]; 
figure(1);
plot(x, f, 'k--', 'LineWidth', 2); hold on;
% Bucle para calcular aproximaciones y errores 
N_max = 50; 
err_L2 = zeros(1, N_max);
err_inf = zeros(1, N_max);

for n = 1:N_max
    fn = zeros(size(x));
    for k = 1:n
        % Cálculo de ak mediante trapecio
        integrando = 2 * f .* sin(k * pi * x);
        ak = trapz(x, integrando);
        
        % suma de los términos impares
        fn = fn + ak * sin(k * pi * x);
    end
    % guardar errores en normas L2 y uniforme 
    err_L2(n) = sqrt(trapz(x, (f - fn).^2));
    err_inf(n) = max(abs(f - fn));
    
    if ismember(n, valores_n)
        plot(x, fn, 'DisplayName', ['n = ' num2str(n)]);
    end
end

title('Aproximación de f(x) por Serie de Fourier (Senos)');
xlabel('x'); ylabel('f(x)');
legend('Original', 'n=1', 'n=5', 'n=10');
grid on;

% gráfica de Errores 
figure(2);
subplot(2,1,1);
plot(1:N_max, err_L2, 'bo-', 'LineWidth', 1.5);
title('Evolución del Error en Norma L^2');
xlabel('n (términos)'); ylabel('Error'); grid on;

subplot(2,1,2);
plot(1:N_max, err_inf, 'ro-', 'LineWidth', 1.5);
title('Evolución del Error en Norma Uniforme');
xlabel('n (términos)'); ylabel('Error'); grid on;
Resultado de la Aproximación Estudio de Convergencia
Visualización de aproximación de f(x) en [0,1].
Errores graficados en norma L2 y uniforme.

2.2 Estudio de la Convergencia según la regularidad

Implementación en MATLAB: Comparativa de Regularidad
% Parámetros iniciales
dx = 1e-3;
x = 0:dx:1;
N = 20; % Número de armónicos para la comparativa

% Definición de las tres funciones
f1 = double(x < 0.5);          % 1. Función Salto (C^-1)
f2 = 1 - 2*abs(0.5 - x);       % 2. Función Triangular (C^0)
f3 = x.^2 - x;                 % 3. Parábola (C^inf)

funciones = {f1, f2, f3};
titulos = {'Aproximación Función Salto', 'Aproximación Función f(x)', 'Aproximación Parábola'};

for i = 1:3
    f_actual = funciones{i};
    figure(i);
    plot(x, f_actual, 'k--', 'LineWidth', 2); hold on;
    
    % Reconstrucción mediante Serie de Fourier (Base completa)
    L = 1;
    a0 = (2/L) * trapz(x, f_actual);
    fn = (a0/2) * ones(size(x));
    
    for k = 1:N
        ak = (2/L) * trapz(x, f_actual .* cos(2*pi*k*x/L));
        bk = (2/L) * trapz(x, f_actual .* sin(2*pi*k*x/L));
        fn = fn + ak*cos(2*pi*k*x/L) + bk*sin(2*pi*k*x/L);
    end
    
    plot(x, fn, 'r', 'LineWidth', 1.5);
    title(titulos{i});
    xlabel('x'); ylabel('f(x)');
    legend('Original', ['Serie Fourier (N=' num2str(N) ')']);
    grid on;
end
1. Función f(x) (Continua) 2. Parábola (Suave) 3. Función Salto (Discontinua)
Convergencia moderada sobre todo en el pico.
Convergencia rápida.
Salto grupoCCE.png


Implementación en MATLAB Resultado Gráfico
dx = 1e-3;
x = 0:dx:1;
N_max = 50;
f1 = double(x < 0.5);         
f2 = 1 - 2*abs(0.5 - x);      
f3 = x.^2 - x;                
funciones = {f1, f2, f3};
colores = {'b', 'r', 'g'};
nombres = {'Salto', 'Triangular f(x)', 'Parábola'};

figure(1); 
hold on;

for i = 1:3
    f_target = funciones{i};
    err_L2 = zeros(1, N_max);
    for n = 1:N_max
        a0 = 2 * trapz(x, f_target);
        fn = (a0/2) * ones(size(x));
        for k = 1:n
            ak = 2 * trapz(x, f_target .* cos(2*pi*k*x));
            bk = 2 * trapz(x, f_target .* sin(2*pi*k*x));
            fn = fn + ak*cos(2*pi*k*x) + bk*sin(2*pi*k*x);
        end
        % cálculo del error 
        err_L2(n) = sqrt(trapz(x, (f_target - fn).^2));
    end
    
    plot(1:N_max, err_L2, 'Color', colores{i}, 'LineWidth', 2, 'DisplayName', nombres{i});
end

set(gca, 'YScale', 'log'); % escala logarítmica para ver mejor las diferencias
title('Evolución del Error Residual (Norma L^2)');
xlabel('Número de terminos (N)'); ylabel('Error (log)');
legend('show'); grid on;
Error de cada función.
Obtenemos los coeficientes de los términos impares mediante MatLab:
Coeficientes de Fourier bn
n Función Salto Función Triangular Parábola x^2-x
1 1.2732 0.8106 -0.2580
3 0.4244 -0.0901 -0.0096
5 0.2546 0.0324 -0.0021
7 0.1819 -0.0165 -0.0008
9 0.1415 0.0100 -0.0004
11 0.1157 -0.0067 -0.0002
13 0.0979 0.0048 -0.0001
15 0.0849 -0.0036 -0.0001
Decaimiento 1/n 1/n² 1/n³