Series de Fourier (Grupo Eau De Parfum (EDP))
| Trabajo realizado por estudiantes | |
|---|---|
| Título | Series de Fourier. Grupo Eau De Parfum (EDP) |
| Asignatura | EDP |
| Curso | 2023-24 |
| Autores |
|
| Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura | |
Contenido
1 Introducción
Para hablar de series de Fourier nos debemos remontar al "problema de la cuerda vibrante". Un problema que fue estudiado por matemáticos del siglo XVIII como d'Alambert, Euler y Daniel Bernouilli entre otros. Este último propuso una solución a este problema mediante la superposición infinita de ondas simples y fue Fourier quien aplicó y perfeccionó estas ideas en 1822 en su libro "Théorie analytique de la Chaleur"; donde sus razonamientos generaron numerosas controversias. En este trabajo abordaremos algunas de ellas y mostraremos la evolución de las conocidas series de Fourier, así como su representación actual empleando el espacio de funciones de cuadrado integrable y espacios de Hilbert.
(Comenzamos abordando la formulación moderna. Pues permite tanto comprender mejor los métodos de Fourier, así como una gran generalidad.)
2 Formulación moderna. Bases.
El desarrollo en "serie de Fourier" se realiza sobre funciones de cuadrado integrable, es decir, sobre las funciones que pertenecen al conjunto [math]L^2(Ω;\mathbb{C})[/math], siendo este:
- [math]L^2(Ω;\mathbb{C}) = \{ f : Ω \to \mathbb{C} : \int_{Ω} |f(x)|^2 dx \lt \infty \}[/math]
Este conjunto tiene definido el siguiente producto escalar:
- [math]\langle f, g \rangle \ \stackrel{\mathrm{def}}{=} \ \frac{1}{2\pi}\int_{-\pi}^{\pi} f(x)\overline{g(x)}\,dx,[/math]
que lo dota de estructura de espacio de Hilbert [math](L^2(Ω,\mathbb{C});\langle , \rangle_{L^2((Ω,\mathbb{C})})[/math].Además, cumple ser separable, por tanto, admite una base hilbertiana, es decir, ortonormal. En el contexto de un intervalo de la forma \[ [-\pi,\pi] \] una base trigonométrica típica es:
- [math] \mathcal{B} =\left\{ \frac{1}{\sqrt{2\pi}} \right\} \cup \left\{ \frac{1}{\sqrt{\pi}} \cos(nx),\frac{1}{\sqrt{\pi}} \sin(nx) \right\}^{\infty}_{n=1} [/math]
La base trigonométrica es un plar fundamental en la aproximación de funciones por series trigonométricas, pues es un conjunto de funciones que se utilizan para representar otras funciones en un intervalo específico. El primer paso para comprender la aproximación por este tipo de series implica visualizar sus componentes básicos que son, las funciones seno, coseno y la constante. Para ofrecer una comprensión visual e intuitiva de estas funciones fundamentales y su comportamiento, comenzamos dibujando el elemento constante de la base:
import numpy as np
import matplotlib.pyplot as plt
# Parámetros iniciales
N = 10
x = np.linspace(-1, 1, 400)
# Crear las subfiguras para cada n
for n in range(1, N + 1):
y = 0.5 * np.ones_like(x)
plt.figure(figsize=(6, 4))
plt.axhline(0, color='gray') # Línea horizontal en y=0
plt.axvline(0, color='gray') # Línea vertical en x=0
plt.xlim([-1, 1])
plt.ylim([-1, 1])
plt.plot(x, y, 'b')
plt.title(f"$n=${n}", fontsize=10)
plt.grid(True)
A continuación, mostramos los diez primeros elementos de nuestra base correspondientes a la forma [math]\cos(n\pi x)[/math] :
import numpy as np
import matplotlib.pyplot as plt
# Parámetros iniciales
N = 10
x = np.linspace(-1, 1, 400)
# Crear las subfiguras para cada n
for n in range(1, N + 1):
y = np.cos(np.pi * n * x)
plt.figure(figsize=(6, 4))
plt.axhline(0, color='gray') # Línea horizontal en y=0
plt.axvline(0, color='gray') # Línea vertical en x=0
plt.xlim([-1, 1])
plt.ylim([-1, 1])
plt.plot(x, y, 'b')
plt.title(f"$n=${n}", fontsize=10)
plt.grid(True)Podemos observar que a medida que aumenta n, la frecuencia de la función coseno aumenta, de hecho, por cada incremento de n, se añade una oscilación completa adicional a la función dentro del intervalo. Por otra parte, el periodo se ve afectado por el factor [math]n\pi [/math] a medida que n incrementa, el periodo en [-1,1] disminuye, resultando en más ciclos completos de la función coseno. De forma similar, visualizamos los diez primeros términos para el elemento [math]\sin(n \pi x)[/math] de nuestra base trigonométrica.
import numpy as np
import matplotlib.pyplot as plt
# Parámetros iniciales
N = 10
x = np.linspace(-1, 1, 400)
# Crear las subfiguras para cada n
for n in range(1, N + 1):
y = np.sin(np.pi * n * x)
plt.figure(figsize=(6, 4))
plt.axhline(0, color='gray') # Línea horizontal en y=0
plt.axvline(0, color='gray') # Línea vertical en x=0
plt.xlim([-1, 1])
plt.ylim([-1, 1])
plt.plot(x, y, 'b')
plt.title(f"$n=${n}", fontsize=10)
plt.grid(True)Análogamente al caso del coseno,es claro observar que a medida que n aumenta, la forma de la onda sigue siento sinusoidal, pero con más ciclos dentro del mismo intervalo, y el número de oscilaciones de la función dentro de este aumenta.
Como hemos explicado anteriormente, las series de Fourier descomponen una función en una suma infinita de senos y cosenos, junto con un término constante, que representan las componentes de frecuencia de la función. Visualizar estas funciones sinusoidales por separado ayuda a comprender cómo diferentes frecuencias y fases se combinarán para formar patrones complejos y cómo la variación de estos parámetros afecta a la forma de la función resultante.
Otro intervalo a estudiar, puede ser uno de la forma \([a; b]\). En tal caso, la base se puede hallar con un simple cambio de variable de la forma \(h(x) = 2\pi b\), obteniendo
- [math] \mathcal{B} =\left\{ \frac{1}{\sqrt{b-a}} \right\} \cup \left\{ \frac{\sqrt{2}}{\sqrt{b-a}} \cos\left(n\left(\frac{2\pi(x-a)}{b-a}-\pi\right)\right),\frac{\sqrt{2}}{\sqrt{b-a}} \sin\left(n\left(\frac{2\pi(x-a)}{b-a}-\pi\right)\right) \right\}^{\infty}_{n=1} [/math]
3 Controversias históricas
3.1 Arbitrariedad de funciones
Una vez entendidas las series de Fourier de manera moderna podemos volver al contexto histórico y comprender las controversias. La primera de ellas viene de la mano de Euler.
Daniel Bernouilli introdujo la solución del problema mencionado como una superposición de ondas más simples, específicamente aquellas de la forma [math] u_n(x, t) = \sin(nx) \cos(nt), \quad \forall n \in \mathbb{N}. [/math] Esto significaba que la solución se podía representar de la forma [math] u(x, t) = \sum_{n=1}^{\infty} a_n \sin(nx) \cos(nt), [/math], de modo que, el conjunto de soluciones es un espacio vectorial real de dimensión dos, cuya base la constituyen las funciones[math] cos(nt), sin(nt)[/math]. Esta solución fue rechazada por Euler, ya que consideraba matemáticamente inaceptable que cualquier función arbitraria pudiera representarse por medio de una suma trigonométrica. En cierta parte Euler tenía razón, sin embargo, ya sabemos que toda función [math]f[/math] que se encuentre en el espacio de funciones de cuadrado integrable si se puede expresar como combinación lineal de la base trigonométrica, pues, la serie de Fourier asociada a [math]f(t) \in [-T/2,T/2],[/math] es:
- [math]f(t) \sim \frac{a_0}{2} + \sum_{n=1}^\infty\left[a_n\cos \left( \frac{2n\pi}{T}t \right) + b_n\sin \left( \frac{2n\pi}{T}t \right) \right][/math]
donde [math]a_0[/math], [math]a_n[/math] y [math]b_n[/math] son los coeficientes de Fourier que toman los valores:
- [math] a_0 = \frac{2}{T} \int_{-T/2}^{T/2} f(t) dt, \qquad a_n = \frac{2}{T} \int_{-T/2}^{T/2} f(t) \cos \left( \frac{2n \pi}{T} t \right) dt, \qquad b_n=\frac{2}{T} \int_{-T/2}^{T/2} f(t) \sin \left(\frac{2n\pi}{T}t\right) dt.[/math]
A la hora de realizar la aproximación de una función con una base de Hilbert, mediante una serie de Fourier, es interesante estudiar una posible simetría de la misma.
Cuando trabajamos con una función definida en un semi intervalo[math][0,L][/math] y deseamos representarla utilizando la serie de Fourier, podemos extenderla primero al intervalo [math][-L, L][/math]. Esta extensión puede realizarse de dos maneras principales: de manera par o impar.
Si elegimos extender la función de manera par, esto implica que [math]f(x)[/math] será igual a [math]f(-x)[/math] para [math]x[/math] en el intervalo [math](-L, 0)[/math]. En este caso, la serie de Fourier de la función incluirá únicamente términos en [math]\cos (n\theta)[/math]. La expresión de de la función será, :[math] f(x) \approx \frac{a_0}{2} + \sum_{n=1}^{\infty} a_n \cos \left( \frac{n\pi x}{L} \right)[/math], con coeficientes, [math]a_0 = \frac{2}{1} \int_{0}^{1} f(x) dx ,\quad a_n = \frac{2}{L} \int_{0}^{L} f(x) \cos \left( \frac{n\pi x}{L} \right) dx [/math]
Por otro lado, si optamos por la extensión de manera impar, la serie de Fourier de la función consistirá solo en términos en [math]\sin (n\theta)[/math]. Por tanto la aproximación será, :[math] f(x) \approx \sum_{n=1}^{\infty} b_n \sin \left( \frac{n\pi x}{L} \right)[/math] Los coeficientes [math]b_n[/math] pueden calcularse utilizando la fórmula:
- [math] b_n = \frac{2}{L} \int_{0}^{L} f(x) \sin \left( \frac{n\pi x}{L} \right) dx [/math]
Teóricamente, se debe a que para semi intervalos de la forma [math][0,L][/math], los siguientes conjuntos son Bases Hilbertianas completas y ortogonales.
- [math] \left\{ \frac{1}{2}, \cos \left( \frac{n\pi x}{L} \right) \right\}_{n=1}^{\infty} [/math]
- [math] \left\{ \sin \left( \frac{n\pi x}{L} \right) \right\}_{n=1}^{\infty} [/math]
Para la primera de ellas, claramente utilizaremos la extensión par la función y para la segunda la impar.
Esta simplificación en la composición de términos coseno o seno permite una convergencia más rápida de la serie de Fourier, lo que significa que se puede obtener una buena aproximación de la función original con un número menor de términos, sin tener que hacer uso de la base general para un intervalo [math][a,b][/math] .
Es interesante ver un ejemplo donde se vea la potencia del proceso, para ello supongamos que queremos aproximar la función [math] f(x) = x(1-x) [/math] en el intervalo [math] [0, 1] [/math] que no es ni par ni impar.
No obstante, podemos extenderla de forma impar para en el intervalo [math] [-1, 1] [/math], de la siguiente forma
- [math] f(x) = \begin{cases} x(x + 1) & \text{si } -1 \leq x \lt 0 \\ x(1 - x) & \text{si } 0 \leq x \leq 1 \end{cases} [/math]
Lo cual además nos proporciona una función continua.
Gracias a esta nueva función, podemos expresar la serie de Fourier únicamente en términos de los senos. Utilizando las fórmulas presentadas anteriormente, los coeficientes y la serie serían los siguientes:
[math] f_n(x) = \sum_{k=1}^{\infty} a_k \sin(k\pi x), [/math]
donde los coeficientes [math] a_k [/math] se calculan como:
[math] a_k = 2 \int_{0}^{1} f(x) \sin(k\pi x) \, dx. [/math]
Para estudiar la serie, es interesante observar cómo evoluciona en función del número de términos que tomemos. Por esta razón, se ha implementado un código en Python que calcula la serie de Fourier hasta cierto término [math] n [/math], calculando así los coeficientes. Posteriormente, observaremos en un gráfico la comparación entre la aproximación con la función a aproximar, variando el número de términos en la serie. Observamos que en este caso la aproximación es visualmente precisa, incluso con un único término. Sin embargo, para evaluar adecuadamente la calidad de esta aproximación, es crucial cuantificar su convergencia respecto a la función original. Por lo tanto, es necesario determinar cuán efectiva es la aproximación en términos de convergencia. Para ello, calcularemos el error en las normas [math] L^2 [/math] (es decir, [math]\sqrt{\int_{0}^{1} |f(x) - f_n(x)|^2 \, dx}[/math]) y la norma uniforme (es decir, [math]\sup_{x \in [0,1]} |f(x) - f_n(x)|[/math]) en función del número de términos de la serie [math] n [/math]. Posteriormente, representaremos en una gráfica el error en ambas normas en función de [math] n [/math]. Por razones visuales es interesante estudiar el logaritmo del error. Observamos que ambos errores parecen decrecer de forma similar, en función del número de términos que tomemos.
3.2 Funciones discontinuas
La segunda cuestión abordada por Fourier fue la generalidad en la representación de funciones discontinuas. Para competir con otros métodos, introdujo la técnica de unir los saltos por líneas verticales en sus diagramas en el artículo de 1807, lo que permitió la continuidad visual de las funciones. Sin embargo, esta aproximación no pudo anticipar completamente el 'fenómeno Gibbs', descrito posteriormente por J.W. Gibbs. Este fenómeno reveló que las sumas parciales de las series de Fourier presentan un comportamiento oscilatorio anómalo cerca de puntos de discontinuidad, lo que evidenció una limitación en la teoría de Fourier en términos de convergencia uniforme. Este hallazgo subrayó la necesidad de una comprensión más profunda de las condiciones de convergencia de las series de Fourier y sus aplicaciones en el análisis de funciones discontinuas.
