Diferencia entre revisiones de «Series de Fourier (Grupo GIXP)»
(→Base trigonométrica compleja) |
(→Base trigonométrica compleja) |
||
| Línea 168: | Línea 168: | ||
El conjunto de funciones que toman valores complejos y cuyo modulo al cuadrado es integrable, | El conjunto de funciones que toman valores complejos y cuyo modulo al cuadrado es integrable, | ||
| − | * <math> L^2( \Omega ) = \ | + | * <math> L^2( \Omega ) = \int_{\Omega} \left| f(x) \right| \, dx </math> |
Revisión del 20:26 11 feb 2025
| Trabajo realizado por estudiantes | |
|---|---|
| Título | Series de Fourier. Grupo GIXP |
| Asignatura | EDP |
| Curso | 2024-25 |
| Autores | Gonzalo Garelly
Israel López Francisco Lavao Paula León |
| Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura | |
Una serie de Fourier (en honor al matemático Jean-Baptiste Joseph Fourier) consta de una suma infinita de funciones sinusoidales definidas en un dominio [math] \Omega \subseteq \mathbb{R}^n [/math] que convergen en mínimos cuadrados a una cierta función [math] f(x) [/math]. En el ámbito del análisis funcional, las series de Fourier son una poderosa herramienta capaz de descomponer cualquier función periódica definida sobre un cierto dominio como una combinación lineal de infinitas funciones sinusoidales. Poseen numerosas aplicaciones en física e ingeniería, relacionadas con el procesamiento de señales acústicas, análisis vibratorio y compresión de datos, entre otras.
En el espacio de Hilbert [math] L^2([-T,T]) = \{f : [-T,T] \rightarrow \mathbb{R} : \int_{-T}^{T} |f(x)|^2 \, dx \lt \infty\} [/math] se define un producto escalar [math] \langle f_1, f_2 \rangle = \int_{-T}^{T} f(x) \cdot g(x) \, dx[/math] y las funciones sinusoidales forman una base ortonormal
[math] B = \Biggl\{ \dfrac{1}{\sqrt{2T}}\Biggr\} \cup \Biggl\{ \dfrac{1}{\sqrt{T}} \cdot \cos{\left( \dfrac{n \pi x}{T}\right)} \Biggr\}_{n \in \mathbb{N}} \cup \Biggl\{ \dfrac{1}{\sqrt{T}} \cdot \sin{\left( \dfrac{n \pi x}{T}\right)} \Biggr\}_{n \in \mathbb{N}} [/math],
y una función [math] f(x) [/math] se descompone como
[math] f(x) \sim \dfrac{d_0}{\sqrt{2T}} + \sum^{\infty}_{n=1} d_n \cdot \cos{\left( \dfrac{n \pi x}{T}\right)} + \sum^{\infty}_{n=1} c_n \cdot \sin{\left( \dfrac{n \pi x}{T}\right)} [/math],
donde
- [math] d_0 = \bigl \langle f, \dfrac{1}{\sqrt{2T}} \bigr \rangle = \int_{-T}^{T} f(x) \cdot \dfrac{1}{\sqrt{2T}} \, dx [/math]
- [math] d_n = \bigl \langle f, \cos{\left( \dfrac{n \pi x}{T}\right)} \bigr \rangle = \int_{-T}^{T} f(x) \cdot \cos{\left( \dfrac{n \pi x}{T}\right)} \, dx [/math]
- [math] c_n = \bigl \langle f, \sin{\left( \dfrac{n \pi x}{T}\right)} \bigr \rangle = \int_{-T}^{T} f(x) \cdot \sin{\left( \dfrac{n \pi x}{T}\right)} \, dx [/math].
Para hacerlo más ilustrativo, mostremos en una gráfica los 10 primeros términos de la base trigonométrica mencionada para el intervalo [-1,1]:
% Definir el intervalo x en [-1,1]
x = np.linspace(-1, 1, 500)
% Colores pastel
colors = sns.color_palette("pastel", 10)
% ---- 1. Función constante ----
plt.figure(figsize=(6, 4))
plt.plot(x, np.full_like(x, 0.5), color=colors[0], linewidth=2, label=r"$\frac{1}{2}$")
plt.xlabel("$x$")
plt.ylabel("$f(x)$")
plt.title("Función constante de la base de Fourier")
plt.legend()
plt.show()
% ---- 2. Gráfica de los primeros 10 términos de cos(nπx) ----
plt.figure(figsize=(8, 5))
for n in range(1, 11):
plt.plot(x, np.cos(n * np.pi * x), color=colors[n-1], linewidth=2, label=rf"$\cos({n}\pi x)$")
plt.xlabel("$x$")
plt.ylabel("$\cos(n\pi x)$")
plt.title("Primeros 10 términos de $\cos(n\pi x)$")
plt.legend(loc="upper right", fontsize=8)
plt.show()
% ---- 3. Gráfica de los primeros 10 términos de sin(nπx) ----
plt.figure(figsize=(8, 5))
for n in range(1, 11):
plt.plot(x, np.sin(n * np.pi * x), color=colors[n-1], linewidth=2, label=rf"$\sin({n}\pi x)$")
plt.xlabel("$x$")
plt.ylabel("$\sin(n\pi x)$")
plt.title("Primeros 10 términos de $\sin(n\pi x)$")
plt.legend(loc="upper right", fontsize=8)
plt.show()
1 Aproximación de una función continua
Aproximaremos la función [math] f(x) = 1 - 2\left| \frac{1}{2} - x \right| [/math] en el intervalo [math] [0,1] [/math].
En este apartado vamos a mostrar con este ejemplo cómo actúan las bases de Fourier aplicadas a funciones definidas en un intervalo no simétrico, como es el caso de [math] [0,1] [/math]. Para ello, la extenderemos de manera impar al intervalo [math] [-1,1] [/math], definiendo la función [math] f'(x) [/math] como:
[math] f'(x) = \begin{cases} f(x), & x \in [0,1] \\ - f(-x), & x \in [-1,0) \end{cases} [/math]
manteniendo la continuidad de la función, ya que [math] f(0) = 1 - 1 = 0 [/math], por lo que [math] f'(0^+) = f'(0^-) = f'(0) [/math] según la definición de [math] f' [/math].
Los coeficientes de la serie de Fourier se calculan de la siguiente manera:
- [math] d_0 = \bigl \langle f', \dfrac{1}{\sqrt{2}} \bigr \rangle = \int_{-1}^{1} f'(x) \cdot \dfrac{1}{\sqrt{2}} \, dx [/math]
- [math] d_n = \bigl \langle f', \cos{\left( n \pi x \right)} \bigr \rangle = \int_{-1}^{1} f'(x) \cdot \cos{\left( n \pi x \right)} \, dx [/math]
- [math] c_n = \bigl \langle f', \sin{\left( n \pi x \right)} \bigr \rangle = \int_{-1}^{1} f'(x) \cdot \sin{\left( n \pi x \right)} \, dx [/math]
Dado que los coeficientes [math] d_0 [/math] y [math] d_n [/math] son el resultado de la integral de una función impar [math] f'(x) [/math] multiplicada por funciones pares (como la función constante o las funciones asociadas a los cosenos) en un intervalo simétrico, obtenemos que estas integrales se anulan, es decir:
[math] d_0 = 0, \quad d_n = 0, \quad \forall n \in \mathbb{N} [/math]
Por lo tanto, la serie de Fourier queda expresada únicamente en términos de senos:
[math] f´(x) \sim \sum^{\infty}_{n=1} c_n \cdot \sin{\left( n \pi x \right)} [/math]
A continuación procedemos a mostrar la aproximación de la extensión de la función original, f´(x), por medio de las series de Fourier para distintos números de términos de esta (como era de esperar, a mayor número de términos mejor es la aproximación). Para ello nos indican que calculemos los coeficientes de la serie aproximándolos por la fórmula del trapecio con una división lo bastante fina (10^{-3}).
% Definición de la función f(x)
f = @(x) 1 - 2*abs(1/2 - x); % Función f(x) en [0,1]
fext = @(x) sign(x).*(1 - 2*abs(1/2 - abs(x))); % Extensión impar de f(x) en [-1,1]
% Intervalo y parámetros
a = -1; b = 1; % Extremos del intervalo [-1,1]
h = 1e-3; % Discretización
XX = linspace(a, b, (b - a) / h); % Linspace de 2000 puntos en [-1,1]
% Términos de la serie de Fourier (n = 1, 5, 10)
nn = [1, 5, 10];
% Colores para cada valor de n
colors = ['b', 'g', 'r'];
% Crear una sola figura con 3 subgráficas (una debajo de la otra)
figure('Position', [100, 100, 800, 900]) % Aumenta el tamaño de la figura
% Para cada valor de n (1, 5, 10)
for j = 1:length(nn)
n = nn(j); % Número de términos de la serie
s = zeros(1, length(XX)); % Inicializar la serie de Fourier
% Cálculo de los coeficientes de Fourier
for k = 1:n
% Definimos los puntos en [0,1] para la regla del trapecio
u = linspace(0, 1, 1000); % Malla de puntos para la integral
w = ones(size(u)); % Pesos para el trapecio
w(1) = 1/2; w(end) = 1/2; % Pesos de los extremos
% Aproximación de la integral usando trapecio
integrand = f(u) .* sin(k * pi * u); % Producto f(x) * sin(k*pi*x)
ak = 2 * trapz(u, integrand .* w); % Coeficiente de Fourier a_k
% Sumar el término de la serie
s = s + ak * sin(k * pi * XX); % Sumar el término k-ésimo
end
% Crear subgráficas para cada n, una debajo de la otra
subplot(3, 1, j)
hold on; grid on;
plot(XX, fext(XX), 'k', 'LineWidth', 2) % Función extendida en negro
plot(XX, s, colors(j), 'LineWidth', 2) % Serie de Fourier aproximada con color distinto
title(['Aproximación de Fourier con n = ', num2str(n)], 'FontSize', 16)
% Leyenda con texto más pequeño
legend('Extensión impar de f(x)', 'Serie de Fourier de f(x)', 'Location', 'southeast', 'FontSize', 10)
xlabel('x', 'FontSize', 14)
ylabel('f(x) y Serie de Fourier', 'FontSize', 14)
endAhora calculemos el error de esta aproximación en norma L^2 y en uniforme para cada valor de n que hemos tomado y trataremos de estimar la función que sigue cada tipo de error
2 Base trigonométrica compleja
El conjunto de funciones que toman valores complejos y cuyo modulo al cuadrado es integrable,
- [math] L^2( \Omega ) = \int_{\Omega} \left| f(x) \right| \, dx [/math]
tienen estructura de espacio vectorial. Adicionalmente, es un espacio de Hilbert con el producto escalar "tal".
El objetivo de esta sección es aproximar una función que toma valores complejos a través de la serie de Fourier. La función que se aproximara es "tal" definida sobre el intervalo [0,1].
La base trigonométrica de L^2([0,1]) es "tal". Se calculan los coeficientes de Fourier.
Aproximaremos la función
[math] f(x) = 4x \left( \frac{1}{2} - x \right)^2 + ix [/math]
en el intervalo [math] [0,1] [/math].
En este apartado vamos a mostrar con este ejemplo cómo actúan las bases de Fourier aplicadas a funciones definidas en un intervalo no simétrico, como es el caso de [math] [0,1] [/math]. Para ello, la extenderemos de manera impar al intervalo [math] [-1,1] [/math], definiendo la función [math] f'(x) [/math] como:
[math] f'(x) = \begin{cases} f(x), & x \in [0,1] \\ - f(-x), & x \in [-1,0) \end{cases} [/math]
manteniendo la continuidad de la función, ya que [math] f(0) = 1 - 1 = 0 [/math], por lo que [math] f'(0^+) = f'(0^-) = f'(0) [/math] según la definición de [math] f' [/math].
Los coeficientes de la serie de Fourier se calculan de la siguiente manera:
- [math] d_0 = \bigl \langle f', \dfrac{1}{\sqrt{2}} \bigr \rangle = \int_{-1}^{1} f'(x) \cdot \dfrac{1}{\sqrt{2}} \, dx [/math]
- [math] d_n = \bigl \langle f', \cos{\left( n \pi x \right)} \bigr \rangle = \int_{-1}^{1} f'(x) \cdot \cos{\left( n \pi x \right)} \, dx [/math]
- [math] c_n = \bigl \langle f', \sin{\left( n \pi x \right)} \bigr \rangle = \int_{-1}^{1} f'(x) \cdot \sin{\left( n \pi x \right)} \, dx [/math]
Dado que los coeficientes [math] d_0 [/math] y [math] d_n [/math] son el resultado de la integral de una función impar [math] f'(x) [/math] multiplicada por funciones pares (como la función constante o las funciones asociadas a los cosenos) en un intervalo simétrico, obtenemos que estas integrales se anulan, es decir:
[math] d_0 = 0, \quad d_n = 0, \quad \forall n \in \mathbb{N} [/math]
Por lo tanto, la serie de Fourier queda expresada únicamente en términos de senos:
[math] f´(x) \sim \sum^{\infty}_{n=1} c_n \cdot \sin{\left( n \pi x \right)} [/math]
A continuación procedemos a mostrar la aproximación de la extensión de la función original, f´(x), por medio de las series de Fourier para distintos números de términos de esta (como era de esperar, a mayor número de términos mejor es la aproximación). Para ello nos indican que calculemos los coeficientes de la serie aproximándolos por la fórmula del trapecio con una división lo bastante fina (10^{-3}).