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 en una combinación de ondas senoidales y cosenoidales. En esencia, permiten descomponer una función en una serie infinita de términos trigonométricos, lo que facilita 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 el módulo como \( \| f \|_{L^2(\Omega)} = \sqrt{\langle f, f \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 ortnormal 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}{b-a}\rangle=\frac{1}{T}\int_{-T}^{T} f(x) \frac{1}{b-a} dx [/math]

[math] d_n = \langle f, \cos (n h(x))\rangle=\frac{1}{T}\int_{-T}^{T} f(x) \cos(nh(x)) dx [/math]

[math] c_n = \langle f, \sin(n h(x))\rangle=\frac{1}{T}\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 la que sigue:

[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{b-a}} + \sum_{n=1}^{\infty} \left( d_n \cos(n h(x)) + c_n \sin(n h(x)) \right) [/math]

Para entender mejor esta base, representamos gráficamente en el intervalo [math][-1,1][/math] los 10 primeros términos tomando [math]a=-1,b=1[/math]. En este caso, la base se expresa como:

[math] \left\{\frac{1}{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

Podemos ver como a medida que el valor de n aumenta las funciones seno y coseno toman un comportamiento más oscilante, lo que reduce 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 dado, 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 poder expresarla mediante una serie de Fourier, necesitamos encontrar una base trigonométrica adecuada para este nuevo intervalo. Para ello, 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, hemos conseguido trasladar el intervalo no simétrico \([-2,3]\) al intervalo simétrico \( [-T, T] \), donde \(T=\frac{b-a}{2}\). Luego 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}])\) como se muestra a continuación:

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;