Series de Fourier (Raúl, Sofía, Jaime)

De MateWiki
Saltar a: navegación, buscar
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].

right
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.

right
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')
end


Gf1 2 2.png

En 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.

right
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')


4 Ej3

5 Ej4

6 Ej5