Series de Fourier (Grupo CJMAS)

De MateWiki
Saltar a: navegación, buscar
Trabajo realizado por estudiantes
Título

Series de Fourier. Grupo CJMAS

Asignatura EDP
Curso 2024-25
Autores Claudia Domínguez Sánchez, Javier Martínez Saiz, Marta De Miguel Prieto, Analía Olivero Betancor, Sofía De Benito Valdueza
Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura


1 Introducción

Las series de Fourier, introducidas por Jean-Baptiste Joseph Fourier, permiten descomponer funciones periódicas como series infinitas de términos senoidales y cosenoidales, facilitando su análisis y manipulación en diversas aplicaciones de la física, ingeniería y matemáticas.

Antes de profundizar en las series de Fourier, es importante conocer el espacio de las funciones \( L^2 \) sobre un conjunto \( \Omega\), el cual se define como \( L^2 = \{f: \Omega \rightarrow \mathbb{R} | \int_{\Omega} |f(x)|^2 dx < \infty \} \). Este es un espacio de Hilbert, lo que nos permite definir el producto escalar como

[math] \langle f,g \rangle _{L^2(\Omega)} = \int_{\Omega} f(x) g(x) \,dx [/math] para \( f,g \in L^2(\Omega) \), y gracias a este podemos definir el módulo en \(L^2\) como \( \| \cdot \|_{L^2(\Omega)} = \sqrt{\langle \cdot, \cdot \rangle_{L^2(\Omega)}} \).


De esta forma, en el espacio de Hilbert \( L^2([-T,T], \langle , \rangle_{L^2}) \), cualquier función puede representarse en términos de una base ortonormal de funciones trigonométricas, dada por:

[math] B=\left\{\frac{1}{\sqrt{b-a}}\right\}\cup\left\{\sqrt{\frac{2}{b-a}}\cos(n h(x)), \sqrt{\frac{2}{b-a}}\sin(n h(x)) \right\}_{n\in\mathbb{N} } [/math],

donde [math] h(x)=\frac{2\pi}{b-a}(x-a)-T, [/math] con \(T=\frac{b-a}{2}\).

Usando esta base, la serie de Fourier de una función \( f(x) \) se expresa como:

[math] f(x) \sim \frac{d_0}{\sqrt{b-a}} + \sum_{n=1}^{\infty} \left( d_n \cos(n h(x)) + c_n \sin(n h(x)) \right) [/math],

donde los coeficientes \(d_0\), \(d_n\) y \(c_n\) son los llamados coeficientes de Fourier y están definidos por las siguientes integrales:

[math] d_0 = \langle f, \frac{1}{\sqrt{b-a}}\rangle=\frac{1}{\sqrt{b-a}}\int_{-T}^{T} f(x) dx , [/math]
[math] d_n = \langle f, \cos (n h(x))\rangle=\sqrt{\frac{2}{b-a}}\int_{-T}^{T} f(x) \cos(nh(x)) dx ,[/math]
[math] c_n = \langle f, \sin(n h(x))\rangle=\sqrt{\frac{2}{b-a}}\int_{-T}^{T} f(x) \sin(n h(x)) dx . [/math]

2 Base trigonométrica

En particular, en el espacio \(L^2([-\pi,\pi])\) la base trigonométrica ortonormal es

[math] B=\left\{\frac{1}{\sqrt{2\pi}}\right\}\cup\left\{\sqrt{\frac{1}{\pi}}\cos(nx), \sqrt{\frac{1}{\pi}}\sin(nx) \right\}_{n\in\mathbb{N} } [/math],

con función aproximada

[math] f(x) \sim \frac{d_0}{\sqrt{2\pi}} + \sum_{n=1}^{\infty} \left( d_n \cos(n x) + c_n \sin(n x) \right) [/math].

Este es el intervalo más común para expresar la base, pero para analizar su comportamiento en otro intervalo, como [math][-1,1][/math], representamos gráficamente sus primeros 10 términos. Para [math]a=-1,b=1[/math] la base ortonormalizada es:

[math] \left\{\frac{1}{\sqrt{2}}\right\}\cup\{\cos(n \pi x), \sin(n \pi x)\}_{n\in\mathbb{N} } [/math].

A continuación, presentamos las gráficas correspondientes para ilustrar cómo estos términos permiten aproximar funciones en el intervalo dado, junto con el código empleado para obtener su representación.

Código MATLAB Representación gráfica
% --- Representar gráficamente los 10 primeros términos de la base trigonométrica ---

% Definir el intervalo y los puntos
x = linspace(-1, 1, 500);
N = 10;

% Definir colores para las gráficas
color_cosenos = [0, 0.447, 0.741];  % Azul
color_senos   = [0.85, 0.325, 0.098];  % Rojo
colors_individuales = lines(N);  

%% Gráfica 1: Todos los términos juntos 
figure;
hold on; grid on;
title('Primeros 10 términos de la base trigonométrica');
xlabel('x'); ylabel('Función');

% Término 1/2
plot(x, 1/2 * ones(size(x)), 'k', 'LineWidth', 2, 'DisplayName', '1/2'); % Negro para el término constante

% Cosenos y senos
for n = 1:N
    plot(x, cos(n * pi * x), 'Color', color_cosenos, 'LineWidth', 1.5, 'DisplayName', sprintf('cos(%dπx)', n));
    plot(x, sin(n * pi * x), 'Color', color_senos, 'LineWidth', 1.5, 'DisplayName', sprintf('sin(%dπx)', n));
end

legend show;
hold off;

%% Gráfica 2: representación única de cosenos 
figure;
hold on; grid on;
title('Funciones cos(nπx)');
xlabel('x'); ylabel('cos(nπx)');

for n = 1:N
    plot(x, cos(n * pi * x), 'Color', colors_individuales(n,:), 'LineWidth', 1.5, 'DisplayName', sprintf('cos(%dπx)', n));
end

legend show;
hold off;

%% Gráfica 3: representación única de senos 
figure;
hold on; grid on;
title('Funciones sin(nπx)');
xlabel('x'); ylabel('sin(nπx)');

for n = 1:N
    plot(x, sin(n * pi * x), 'Color', colors_individuales(n,:), 'LineWidth', 1.5, 'DisplayName', sprintf('sin(%dπx)', n));
end

legend show;
hold off;
Primeros 10 términos de la base trigonométrica
Primeros 10 términos del seno
Primeros 10 términos del coseno

A medida que [math]n[/math] aumenta, las funciones seno y coseno toman un comportamiento más oscilante, reduciendo su periodo. Esta característica es fundamental, ya que permite que la aproximación de funciones sea cada vez más precisa.

Esta visualización permite apreciar cómo las funciones trigonométricas construyen una base ortogonal en el intervalo, facilitando su aplicación en la expansión en series de Fourier.

3 Cambio de intervalo

Consideremos la función \(f(x)= x e^{-x}\) definida en el intervalo \([-2,3]\). Para expresarla mediante una serie de Fourier, necesitamos encontrar una base trigonométrica adecuada para este nuevo intervalo. Sustituyendo con \( a=-2, b =3 \), se tiene la base trigonométrica

[math] B = \left\{ \frac{1}{\sqrt{5}} \right\} \cup \left\{ \sqrt{\frac{2}{5}} \cos\left(n\left(\frac{2\pi (x+2)}{5}- \frac{5}{2}\right)\right), \quad \sqrt{\frac{2}{5}} \sin\left(n\left(\frac{2\pi (x+2)}{5}-\frac{5}{2}\right)\right)\right\}_{n\in \mathbb{N}}. [/math]

De esta forma, trasladamos el intervalo no simétrico \([-2,3]\) al intervalo simétrico \( [-T, T] \), donde \(T=\frac{b-a}{2}\). Por periodicidad y por tener la misma longitud de intervalo, la base trigonométrica del espacio \(L^2([-2,3])\) será la misma que la base de \(L^2([-\frac{5}{2},\frac{5}{2}])\), para nuestros valores específicos de \(a\) y \(b\).

Luego podemos aproximar nuestra función \(f(x)\) por la combinación lineal de los elementos de la base de \(L^2([-\frac{5}{2},\frac{5}{2}])\):

Aproximación de \( f(x) = x e^{-x} \) usando cambio de variable
% Definición de la función f(x) = x * exp(-x)
f = @(x) x .* exp(-x);

% Parámetros del problema
a = -2;                  % Extremo inferior del intervalo original
b = 3;                   % Extremo superior del intervalo original
L = 5/2;                 % Nueva semilongitud del intervalo centrado en 0
N = 5000;                % Número de puntos para la integral
m = 20;                  % Número de términos en la serie

% Cambio de variable h(x) para transformar [a, b] -> [-L, L]
h = @(x) (5*(x - a)) / (b - a) - (5/2);

% Vectores para almacenar los coeficientes
coeficientes1 = zeros(1, m);
coeficientes2 = zeros(1, m);

% Discretización del intervalo y pesos para regla del trapecio
h_val = (b - a) / N;     
u = a:h_val:b;          
h_u = h(u);  % Aplicar cambio de variable a los puntos del intervalo

w = ones(N + 1, 1);
w(1) = 1/2; w(N + 1) = 1/2; % Pesos de extremos

% Cálculo del coeficiente a_0
coef0 = (h_val * w' * f(u)') / L;

% Cálculo de los coeficientes a_k y b_k usando la base trigonométrica ajustada
for k = 1:m
    f1 = (f(u) .* sin(k * pi * h_u / L))';
    f2 = (f(u) .* cos(k * pi * h_u / L))';
    coeficientes1(k) = (h_val * w' * f1) / L;
    coeficientes2(k) = (h_val * w' * f2) / L;
end

% Construcción de las aproximaciones parciales de la serie
y = zeros(m, N + 1);
y(1, :) = coef0 / 2 + coeficientes1(1) * sin(pi * h_u / L) + ...
          coeficientes2(1) * cos(pi * h_u / L);

for k = 2:m
    y(k, :) = y(k - 1, :) + coeficientes1(k) * sin(k * pi * h_u / L) + ...
              coeficientes2(k) * cos(k * pi * h_u / L);
end

% Gráficas de la función original y las aproximaciones
figure;
hold on;
plot(u, f(u), 'black', 'LineWidth', 1.5);            % Función original
plot(u, y(5, :), 'blue', 'LineWidth', 1.2);          % Aproximación con n=5
plot(u, y(10, :), 'red', 'LineWidth', 1.2);          % Aproximación con n=10
plot(u, y(20, :), 'yellow', 'LineWidth', 1.2);       % Aproximación con n=20
xlabel('x');
ylabel('f(x), f_{5}(x), f_{10}(x), f_{20}(x)');
title('Aproximación de f(x) = x e^{-x} con cambio de variable');
legend("f(x)", "f_{5}(x)", "f_{10}(x)", "f_{20}(x)");
grid on;
hold off;

La gráfica muestra la aproximación de \(f(x)= x e^{-x}\) mediante series de Fourier con cambio de variable. La precisión mejora a medida que aumenta el número de términos de la serie, ajustándose mejor en los puntos interiores del intervalo que en los extremos, donde notamos una mayor discrepancia.

Este efecto, conocido como el fenómeno de Gibbs, surge al aproximar la función mediante una serie de Fourier periódica. Como la serie debe ajustarse a una versión periódica de la función, surgen discontinuidades en los bordes, lo que provoca oscilaciones cerca de estos puntos. Aunque al aumentar el número de términos en la serie las oscilaciones se vuelven más localizadas, no desaparecen por completo, mostrando el carácter persistente del fenómeno de Gibbs.