Series de Fourier (Raúl, Sofía, Jaime)
| Trabajo realizado por estudiantes | |
|---|---|
| Título | Series de Fourier |
| Asignatura | EDP |
| Curso | 2023-24 |
| Autores | Raúl Ortega
Sofía Gómez Jaime Sáenz de Miera |
| Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura | |
En este artículo vamos a estudiar qué son las series de Fourier utilizando varias funciones que ejemplifiquen todas las situaciones que nos podemos encontrar al calcular una serie de Fourier.
1 Preliminares
Antes de definir series de Fourier, necesitamos conocer el espacio [math] L^2= \{ f: \Omega \longrightarrow \mathbb{R} : \int_{\Omega}|f(x)|^2 \, dx \lt \infty \} [/math], que es un espacio de Hilbert.
Esto nos permite definir el producto escalar como [math]\langle f,g\rangle_{L^2(\Omega)}= \int_{\Omega} f(x) \cdot g(x) \, dx [/math], con [math] f,g\in L^2(\Omega) [/math], y el módulo como [math] \| \cdot \| _ {L^2 (\Omega)} = \sqrt{\langle\cdot , \cdot \rangle_{L^2(\Omega)}} [/math].
2 Series de Fourier
El conjunto [math] \{ \frac{1}{2},\cos(nx),\sin(nx) \}_{n\in\mathbb{N}}[/math] es la base trigonométrica del espacio [math] L^2([-\pi,\pi])[/math], por tanto, toda función de [math] L^2([-\pi,\pi])[/math] puede expresarse como una combinación lineal de los elementos de esta. Además, podemos observar que las funciones de la base son [math] 2\pi[/math] periódicas, y es fácil comprobar que es una base ortogonal en [math] L^2([-\pi,\pi])[/math].
x=linspace(-1,1,200);
y=1/2*ones(1,200);
hold on
plot(x,y)
for n=1:4
plot(x,cos(n*pi*x))
plot(x,sin(n*pi*x))
end
plot(x,cos(5*pi*x))
title('Primeros 10 términos de la base trigonométrica');
xlabel('x');
ylabel('y');
legend('1/2', '$\cos(\pi x)$', '$\sin(\pi x)$', '$\cos(2\pi x)$', '$\sin(2\pi x)$', '$\cos(3\pi x)$', '$\sin(3\pi x)$', '$\cos(4\pi x)$', '$\sin(4\pi x)$','$\cos(5\pi x)$', 'Interpreter','latex');
Una vez hemos entendido lo que es una base trigonométrica, podemos definir la serie de Fourier de una función [math] f\in L_2([-\pi,\pi])[/math] como: [math] f \approx \frac{a_0}{2}+\sum^{N}_{n=1}(a_n\cos{(nx)}+b_n\sin{(nx)})[/math]
Como la base trigonométrica es ortogonal, podemos obtener los coeficientes de la serie de Fourier como
[math] a_0=\frac{\langle f,\frac{1}{2}\rangle_{L^2([-\pi,\pi])}}{\| \frac{1}{2} \|^2 _ {L^2 ([-\pi,\pi])}} =\frac{1}{\pi}\int^{\pi}_{-\pi} f(x)\, dx [/math],
[math] a_n=\frac{\langle f,\cos(nx)\rangle_{L^2([-\pi,\pi])}}{\| \cos(nx) \|^2 _ {L^2 ([-\pi,\pi])}} =\frac{1}{\pi}\int^{\pi}_{-\pi} f(x)\cos(x)\, dx [/math].
[math] b_n=\frac{\langle f,\sin(nx)\rangle_{L^2([-\pi,\pi])}}{\| \sin(nx) \|^2 _ {L^2 ([-\pi,\pi])}} =\frac{1}{\pi}\int^{\pi}_{-\pi} f(x)\sin(x)\, dx [/math],
3 Extensión de funciones
Para simplificar los cálculos de los coeficientes de una serie de Fourier, podemos antes extender la función de forma par o impar porque así algunos términos se cancelan. Si la función es par, los coeficientes [math] b_n[/math] serán cero, ya que al ser el seno una función impar, el producto [math] f(x)\sin(x)[/math] también lo va a ser, y la integral de una función impar sobre un intervalo simétrico se anula. Análogamente, si la función es impar los coeficientes [math] a_0,a_n,n\geq 1[/math] van a ser cero.
Para ejemplificar esto, tomaremos la función [math]f(x)=x(1-x)[/math]. La extenderemos de forma impar en el intervalo [math][-1,1][/math] y la aproximaremos usando su desarrollo en serie de Fourier.
x1=0:10^(-3):1;
x2=-1:10^(-3):0;
figure(1)
hold on
plot(x1,x1.*(1-x1),'r',LineWidth=1.5)
plot(x2,x2.*(1+x2),'b',LineWidth=1.5)
title('Extension impar de $f(x)=x(1-x)$', 'interpreter','latex',FontSize=15)
xlabel('x')
ylabel('y')
Comprobamos que la extensión sigue siendo una función continua, ya que la original pasaba por el origen de coordenadas.
Ahora aproximaremos los coeficientes de la serie calculando de forma numérica las integrales mediante el método del trapecio.
a=0; b=1;
u_1=a:10^(-3):b;
N=length(u_1)-1;
h=(b-a)/N;
w=ones(N+1,1);
w(1)=1/2; w(N+1)=1/2;
figure(2)
n=[1,5,10];
f_n=zeros(length(n),N+1);
for i=1:length(n)
for k=1:n(i)
g=(u_1.*(1-u_1).*sin(k*pi*u_1))';
a_k=2*h*w'*g;
f_n(i,:)=f_n(i,:)+a_k*sin(k*pi*u_1);
end
subplot(1,3,i)
hold on
plot(u_1,f_n(i,:),'r',LineWidth=1.5)
plot(u_1,u_1.*(1-u_1),'--b',LineWidth=1.5)
title('n='+string(n(i)))
legend('$f_n(x)$','$f(x)$','interpreter','latex','Location','northwest')
grid('on')
endEn la gráfica se muestra la aproximación de [math] f(x) [/math] por los primeros términos de su serie de Fourier (1,5 y 10 respectivamente). Como ya de partida la función [math] f(x) [/math] tenía una forma bastante sinusoidal en el intervalo [math] [0,1] [/math], vemos que la aproximación es bastante buena con tan sólo unos pocos términos de la serie.
a=0; b=1;
u_1=a:10^(-3):b;
u_2=-1:10^(-3):0;
N=length(u_1)-1;
h=(b-a)/N;
w=ones(N+1,1);
w(1)=1/2; w(N+1)=1/2;
for n=1:10
f_n=zeros(1,N+1);
for k=1:n
g=(u_1.*(1-u_1).*sin(k*pi*u_1))';
a_k=2*h*w'*g;
f_n=f_n+a_k*sin(k*pi*u_1);
end
g1=abs(u_1.*(1-u_1)-f_n).^2;
error1(n)=(h*w'*g1')^(1/2);
error2(n)=max(abs(u_1.*(1-u_1)-f_n));
end
nn=1:1:10;
hold on
plot(nn,error1,'b',LineWidth=1.5)
plot(nn,error2,'r',LineWidth=1.5)
legend('$L^2$','Supremo','interpreter','latex')