Series de Fourier (GRwM)

De MateWiki
Revisión del 17:35 15 feb 2024 de GuillermoGómez (Discusión | contribuciones) (Aproximación de funciones impares)

Saltar a: navegación, buscar
Trabajo realizado por estudiantes
Título Series de Fourier. Grupo GRwM
Asignatura EDP
Curso 2023-24
Autores Guillermo Gómez Tejedor, Marina Jiménez Barrantes y Rocío Tajuelo Díaz
Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura


1 Introducción

En el trabajo que se presenta a continuación vamos a explicar la aproximación de funciones por series trigonométricas. Para ello, vamos a comenzar asentando la base teórica necesaria para entender el funcionamiento de estas aproximaciones. A continuación, vamos a proporcionar algunos ejemplos con el fin de ilustrar lo anterior. Los cálculos y visualizaciones han sido programados con MatLab.

2 Preliminares

En el siglo XIX, Jean-Baptiste Joseph Fourier introdujo una herramienta fundamental en el análisis matemático, las series de Fourier.

Sin embargo, antes de dar una definición formal de las series de Fourier, debemos introducir algunos conceptos previos como son los espacios de Hilbert y las bases hilbertianas.

2.1 Espacio de Hilbert y [math]L^2[/math]

Un espacio de Hilbert es un espacio vectorial separable, dotado de un producto escalar, que define una norma, y que es completo con respecto a esa norma. En este trabajo trataremos espacios de Hilbert de dimensión infinita, concretamente el espacio de funciones [math] L^2 [/math].

El espacio de funciones [math] L^2 [/math] sobre un un conjunto [math] \Omega [/math] se define como [math] L^2= \{ f: \Omega \longrightarrow \mathbb{R} [/math] tal que [math]\int_{\Omega}|f(x)|^2 \, dx \lt \infty \}[/math] . Además, se define el producto escalar de [math] f, g \in L^2(\Omega) [/math] como [math]\langle f,g\rangle_{L^2(\Omega)}= \int_{\Omega} f(x) \cdot g(x) \, dx [/math] y gracias a este podemos definir la norma en [math] L^2 [/math] como [math] \| \cdot \| _ {L^2 (\Omega)} = \sqrt{\langle\cdot , \cdot \rangle_{L^2(\Omega)}} [/math].

El espacio [math] L^2 (\Omega)[/math] con esta norma es un espacio de Hilbert y será sobre el cual trabajaremos a lo largo del documento.

NOTA: Es importante tener en cuenta que esto solo se cumple si consideramos que en [math]L^2[/math] dos funciones son iguales si y solo si son iguales en casi todo punto.

2.2 Bases de Hilbert

La importancia de los espacios de Hilbert reside en que poseen propiedades análogas a los espacios vectoriales de dimensión finita, pero en dimensión infinita. Esto permite que estos espacios, que a priori se desvinculan de algunas de las propiedades esenciales de los espacios vectoriales de dimensión finita, sean manipulados con mayor facilidad.

La propiedad esencial de los espacios de Hilbert es que mantienen el concepto de base. Se define así la base Hilbertiana como una familia ortonormal y numerable de elementos de un espacio de Hilbert, cuyo espacio lineal generado es denso en dicho espacio.

Estas bases son la infraestructura de estos espacios, ya que cada elemento podrá expresarse como una combinación lineal infinita y única de elementos de la base. Estas combinaciones lineales infinitas se denominan series de Fourier. En el contexto que trabajaremos, las series de Fourier van a converger puntualmente a funciones periódicas y continuas, permitiendo aproximar funciones periódicas mediante una combinación lineal de funciones sinusoidales (senos y cosenos). Serán la herramienta fundamental en nuestro trabajo.

La gran ventaja reside en que el cálculo de los coeficientes de Fourier se obtiene mediante el producto escalar, al igual que en dimensión finita.

2.3 Convergencia puntual de las series de Fourier

Sea [math]f \in L^2([- \pi, \pi ])[/math], se dice que [math]f[/math] satisface la condición de Dirichlet si:

- La función es continua salvo en un número finito de puntos con discontinuidad de salto finito.

- Se puede dividir [math][- \pi, \pi ][/math] en un conjunto de subintervalos finitos en los cuales la función es monónotona.

Teniendo en cuenta esta definición, se tiene el siguiente teorema que caracteriza la convergencia puntual de las series de Fourier:

Si [math]f \in L^2([- \pi, \pi ])[/math] verifica la condición de Dirichlet, entonces la serie de Fourier converge puntualmente en los puntos de continuidad. Es decir, si [math]x_{0}[/math] es un punto de continuidad de [math]f[/math]: [math]f(x_{0})= \lim_{x \to \infty} \{ \frac{a_{0}}{2}+ \sum_{k=1}^{n} \ [a_{k} cos(k x_{0}) + b_{k}sin(k x_{0})][/math]. Si [math]x_{0}[/math] es un punto de discontinuidad la serie converge en [math]x_{0}[/math] a [math]\frac{f(x_{0}^-) + f(x_{0}^+)}{2}[/math].

3 Base trigonométrica

Si consideramos el espacio [math]L^2([- \pi, \pi ])[/math] de funciones [math]2 \pi [/math] periódicas , una base de este es la base trigonométrica [math]\{ 1/2, \cos{(n x)},\sin{(n x)} \}_{n \in \mathbb{N}} ,x\in [-\pi ,\pi][/math], de forma que, dada una función [math]f \in L^2([- \pi, \pi ])[/math], se tiene que [math] f \approx \frac{a_0}{2}+\sum^{\infty}_{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{1}{\pi} \int^{\pi}_{-\pi} f(x) dx [/math],

[math] a_n=\frac{1}{\pi} \int^{\pi}_{-\pi} f(x) \cos {(n x)}dx [/math],

[math] b_n=\frac{1}{\pi} \int^{\pi}_{-\pi} f(x) \sin {(n x)}dx [/math].

Si consideramos ahora el espacio de funciones [math]L^2([a,b])[/math], al variar el intervalo de [math] [- \pi, \pi ][/math] a [math] [a, b][/math], debemos hacer un cambio de variable de forma que las nuevas funciones de la base tengan periodo igual a la longitud del nuevo intervalo. De este modo, la base trigonométrica pasa a ser [math]\left \{ 1/2, \cos{\left(\frac{2n\pi}{b-a} x\right)},\sin{\left(\frac{2n\pi}{b-a} x \right)} \right\}_{n \in \mathbb{N}} ,x\in [a,b][/math]. Esta base no tiene por qué estar normalizada, sin embargo, que no lo esté solo altera cómo se obtienen los coeficientes de Fourier.

Al igual que antes, sea [math] f \in L^2([a,b])[/math], podemos aproximar la función mediante la serie de Fourier como

[math] f\approx \frac{a_0}{2}+\sum^{\infty}_{n=1}\left(a_n\cos{\left(\frac{2n\pi}{b-a} x\right)}+b_n\sin{\left(\frac{2n\pi}{b-a} x\right)}\right)[/math],

donde:

[math] a_0=\frac{1}{\|1/2\|_{L^2([a,b])}}\int^b_a \frac{f(x)}{2}dx[/math],

[math] a_n=\frac{1}{\left\|\cos{\left(\frac{2n\pi}{b-a} x\right)}\right\|_{L^2([a,b])}}\int^b_a f(x) \cos{\left(\frac{2n\pi}{b-a} x\right)}dx[/math],

[math] b_n=\frac{1}{\left\|\sin{\left(\frac{2n\pi}{b-a} x\right)}\right\|_{L^2([a,b])}}\int^b_a f(x) \sin{\left(\frac{2n\pi}{b-a} x\right)}dx [/math].


En la siguiente gráfica se representa esta base para los 10 primeros términos con [math][a,b]=[-1,1][/math], correspondiendo la recta negra a la función [math]1/2[/math] , y representados en línea continua y punteada [math]\cos{\left(n\pi x\right)}[/math] y [math]\sin{\left(n\pi x\right)}[/math], respectivamente.

Representación gráfica de la base trigonométrica para n=1,...,10.

Como podemos observar, el periodo de las funciones [math]\sin[/math] y [math]\cos[/math] se reduce a medida que aumenta el valor de [math]n[/math]. Este aspecto, como veremos más adelante, permitirá mejorar la aproximación de funciones.

3.1 Código de MatLab

f1=@(x,n) cos(n*pi.*x); 
f2=@(x,n) sin(n*pi.*x);  
xx=linspace(-1,1,1000);  
n = 10;  
colores=["#FF0000"; "#00FF00";"#0000FF"; "#F08080"; "#FFFF00" ; "#A901DB "; "#04B404"; "#FF8000"; "#FF0080"; "c"];

for i=1:n  
    subplot(5,2,i)
    hold on  
    yline(1/2,"Color","k",LineWidth=1.3) 
    plot(xx,f1(xx,i),"Color",colores(i),LineWidth=1.3)  
    plot(xx,f2(xx,i), ":","Color",colores(i),LineWidth=1.3)  
    subtitle("Base trigonométrica para n="+num2str(i))
    legend('y=1/2',"cos("+num2str(i)+"*pi*x)","sin("+num2str(i)+"*pi*x)");   
end


4 Aproximación de funciones impares

Siguiendo con nuestro objetivo de ilustrar la aproximación de funciones por series trigonométricas, vamos a considerar la función [math]f(x)=x(1-x)[/math] en el intervalo [math][0,1][/math].

En primer lugar obtenemos la extensión impar de [math]f[/math] a [math][-1,1][/math]:

[math] g(x)= \left \{ \begin{array}{ll} f(x), & \quad x\in (0,1], \\ 0, & \quad x=0, \\ -f(-x), & \quad x \in [-1,0). \end{array} \right. [/math]

Calculamos ahora la serie de Fourier para [math]g[/math] en [math][-1,1][/math]. Debemos tener en cuenta que la función [math]f[/math] es continua y cumple que el intervalo [math][0,1][/math] se puede dividir en un conjunto de subintervalos finitos en los cuales la función es monónotona, es decir, [math]f[/math] cumple la condición de Dirichlet. Gracias a esto, podemos asegurar que [math]\forall x_{0} \in [0,1][/math] la serie de Fourier va a converger puntualmente a [math]f(x_{0})[/math].

Observamos que

[math] a_0=\frac{1}{\|1/2\|_{L^2([a,b])}}\int^b_a \frac{f(x)}{2}\, dx=0,[/math]

[math] a_k=\frac{1}{\left\|\cos{\left(\frac{2n\pi}{b-a} x\right)}\right\|_{L^2([a,b])}} \int_{1}^{-1} \cos{(k\pi x)} f(x) \, dx [/math].

Esto se debe a que la integral de funciones impares sobre intervalos de la forma [math][-T,T][/math] es nula. Con ello como la multiplicación de una función par con una impar resulta en otra función impar, al calcular los coeficientes de [math]\cos{(k\pi x)}[/math] y [math]\frac{1}{2}[/math] obtenemos valores nulos. Por tanto, se tiene que [math]g(x)= \sum_{k=1}^{\infty} b_k \sin{(k\pi x)}[/math].

Teniendo esto en cuenta, vamos a emplear las funciones impares de la base trigonométrica en [math][-1,1][/math], es decir, [math]\{ \sin{(k\pi x)} \}_{k\in \mathbb{N}}[/math].

Definimos [math] f_n (x)[/math] como la suma de los primeros [math]n [/math] términos de la serie de Fourier, es decir, [math]f_n(x)= \sum_{k=1}^{n} b_k \sin{(k\pi x)}[/math], con [math]b_k = 2\int_{0}^{1} f(x)\sin{(k\pi x)} \,dx [/math].

A continuación, se representa gráficamente [math] f(x)[/math] y [math]f_n (x)[/math] para [math]n=1,5,10[/math]. Cabe destacar que, aumentar el número de términos de la serie de Fourier permite aproximar mejor la función original, ya que estamos añadiendo funciones sinusoidales que permiten capturar mejor algunos detalles en la función original.

Los coeficientes de Fourier se obtienen numéricamente resolviendo las integrales usando la fórmula del trapecio con una división bastante fina [math](10^{-3})[/math] con la función [math]trapz[/math] que proporciona MatLab.


Representación gráfica de las sumas parciales de la serie de Fourier de f para los diferentes valores de n.
Errores de las sumas parciales de la serie de Fourier de f con las normas [math]L^2[/math] y del supremo en función de n.


Desde un principio se puede observar que independientemente del valor de [math]n[/math], las [math]f_{n} [/math] aproximan de forma precisa [math]f(x)[/math]. Esto se debe a que la extensión impar es continua en el intervalo [math][-1,1][/math] y comienza y acaba en el mismo valor (0). Para hacer un estudio más exhaustivo de las aproximaciones,vamos a representar el error de [math]f_{n} [/math] respecto a [math]f [/math] en función de [math]n[/math]. Para calcular este error, vamos a emplear tanto la norma [math]L^2 [/math] [math]\left(\left( \int_{0}^{1} |f(x)-f_{n}(x)|^2\right)^{\frac{1}{2}}\right)[/math] como la del supremo o uniforme [math]\left(sup_{x \in [0,1]} |f(x)-f_{n}(x)|\right)[/math].


Como podemos observar en la gráfica del error, al emplear ambas normas, el error de la aproximación se reduce cuando aumentamos el número de términos de la serie de Fourier. De hecho, el error disminuye con una pendiente muy pronunciada al aumentar la [math]n [/math] de [math]1 [/math] a [math]10 [/math]. Sin embargo, el decrecimiento del error se va suavizando para valores mayores de [math]n [/math]. Aún así, el error con [math]n=1000 [/math] es menor a [math]10^{-8} [/math] lo cual indica lo potente que es esta técnica de aproximación con funciones continuas y que comienzan y acaban en el mismo valor. Es importante destacar que en la gráfica hemos empleado la escala logarítmica. Al ser los valores del error muy reducidos, si no considerábamos esta escala, a penas se podía distinguir la diferencia entre una norma y otra. Gracias a ello se observa como el error es menos notorio con la norma de [math]L^2[/math].

4.1 Código de MatLab

f=@(x)(x.*(1-x));  %Definimos la función 
inicio=0; fin=1; %límites del intervalo 
g=@(x)(f(-x).*(sign(x)-1)/2+f(x).*(sign(x)+1)/2);  %Extensión impar de f  
inicio_impar=-fin; %límite a la izq 
div=10^-4; %División del intervalo

%Coeficientes de Fourier 
N2=1000; N=[1;5;10;N2]; %N2: registro de n para el error.
longitud = (fin-inicio_impar); 
a=zeros(max(N),1); 
b=zeros(max(N),1); 
X=inicio_impar:div:fin; 
G=g(X); 
a_0=trapz(X,G/2); %Coeficiente a_0 
F=a_0*ones(max(N),length(X)); 
NL2=zeros(N2,1); 
Nsup=zeros(N2,1); 

for i=1:max(N) 
    cc=cos(i*2*pi*X/longitud); 
    ss=sin(i*2*pi*X/longitud); 
    %Coeficientes a_k y b_k 
    a(i)=trapz(X,G.*cc); 
    b(i)=trapz(X,G.*ss);   
    F(i:max(N),:)=F(i:max(N),:)+a(i)*ones(max(N)-i+1,1)*cc + b(i)*ones(max(N)-i+1,1)*ss; %valores de f_n 
    NL2(i) = sqrt(trapz(X,abs(G-F(i,:)).^2)/2); %Error norma L^2 
    Nsup(i) = max(abs(G-F(i,:))); %Error norma supremo 
end 

figure(1) 
name="Extensión impar de f";
for j=1:length(N)-1
    subplot(1,length(N)-1,j)
    plot(X,G,"k","LineWidth",2)
    subtitle("f_{"+num2str(N(j))+"}")
    hold on
    plot(X,real(F(N(j),:)),"Color","r","LineWidth",1)
    legend(name,"f_{"+num2str(N(j))+"}");
    xlabel("eje x"); ylabel("eje y");
end

%Función error respecto de n 
figure(2) 
semilogy(1:N2,NL2,"Color","g","LineWidth",1.5) 
hold on  
semilogy(1:N2,Nsup,"Color","m","LineWidth",1.5) 
title("Errores de la base trigonométrica escala logarítmica");  
legend("Norma de L^2","Norma del supremo"); xlabel("N"); ylabel("Error")


Nota: Los datos del programa son grandes para obtener más información, por lo que tardará más de lo normal. Si prefieres que vaya más rápido cambia div y N2.

5 Aproximación de funciones discontinuas y pares

CAMBIAR OBSERVACIONES DEL ERROR

A continuación vamos a estudiar la aproximación de una función discontinua, concretamente con una discontinuidad de salto finito.

Como ya hemos visto en el teorema de convergencia puntual, la serie de Fourier en un punto de discontinuidad [math]x_{0} [/math] va a converger a[math]\frac{f(x_{0}^-) + f(x_{0}^+)}{2 }[/math]. Al intentar aproximar de forma continua una discontinuidad de salto, se obtienen pendientes muy pronunciadas, que resultan en grandes oscilaciones en torno a esos puntos de discontinuidad. A este comportamiento oscilatorio de la serie de Fourier se le conoce como fenómeno de Gibbs.

Para visualizar este fenómeno, vamos a considerar la función discontinua [math]f(x) =1_{x \leq 1/2}(x)[/math]. Lo primero que observamos es que esta función se puede extender a [math][-1,1][/math] de forma par. Por un razonamiento similar al de la extensión impar, la serie de Fourier en este caso tiene únicamente los términos de la base trigonométrica que son funciones pares, es decir, [math]1/2[/math] y [math]\cos{(n \pi x)}[/math].

Al aproximar esta función obtenemos los siguientes resultados:

Aproximaciones por sumas parciales de la serie de Fourier de la función f.


Al contrario que en la anterior sección, se puede observar cómo las funciones [math]f_{n}[/math] no aproximan [math]f[/math] tan bien desde un inicio. Esto se debe como ya hemos mencionado a la discontinuidad de salto. Además, vemos cómo, en un entorno de los puntos de discontinuidad, aparecen oscilaciones más pronunciadas. De hecho, la frecuencia de estas oscilaciones aumenta a medida que nos acercamos a la discontinuidad, al igual que también lo hace conforme crece el valor de [math]n[/math].

Para poder estudiar mejor la dependencia de las aproximaciones según el valor de [math]n[/math], vamos a obtener los errores. Para ello, vamos a utilizar las dos normas empleadas en la sección Aproximación de funciones impares ([math]L^2[/math] y supremo).


Gráfica de errores de las aproximaciones por las sumas parciales de la serie de Fourier de la función [math]f[/math] con la norma [math]L^2[/math] y la del supremo respecto de n.


Como podemos observar, la diferencia del error obtenido al considerar la norma [math]L^2[/math] y la uniforme es mucho mayor que en al aproximar la función continua de la sección anterior. De hecho, en esta ocasión no es necesario emplear la escala logarítmica. Cabe destacar que la discontinuidad de salto genera un mayor error en la norma del supremo, pues esta es susceptible a las diferencias puntuales. Por tanto, como las aproximaciones tienden al punto medio de los valores de la función en las discontinuidades, siempre va a haber un error mínimo respecto a esa norma. Esto no ocurre con la norma [math]L^2[/math] ya que la integral no tiene en cuenta los conjuntos de medida nula.


Para poder suavizar el fenómeno de Gibbs, podemos emplear las sumas de Cesàro, que vienen dadas por la siguiente expresión:

[math]S_{N}(x)= \frac{1}{N+1} \sum_{n=0}^{N} f_{n}(x)[/math].

Al tomar promedios de las sumas parciales, se atenúan las oscilaciones cerca de los puntos de discontinuidad. Esto se debe a que el promedio tiende a suavizar la transición entre los valores de la función en estos puntos.



Representación gráfica de las sumas de Cesàro de la función f.


Observamos cómo efectivamente al representar las sumas de Cesàro, se reduce casi al completo la oscilación en torno a los puntos de discontinuidad. Sin embargo, emplear este método presenta un inconveniente, el error aumenta. La razón de esto es que hay una única combinación lineal a partir de la cual se obtiene la función, pues recordemos que estamos considerando una base del espacio [math]L^2[/math]. Por tanto, si tomamos las sumas de Cesàro, que no son más que otra combinación lineal de los elementos de la base, esperaremos un error mayor, al menos en la norma [math]L^2[/math].


Errores de las sumas de Cesàro frente a f mediante las normas [math]L^2[/math] y del supremo respecto de n.


Como cabía esperar, los errores son mayores que en el caso anterior y se mantiene que el error que registra la norma del supremo, sigue siendo considerablemente superior a la de [math]L^2[/math].

Un aspecto a destacar también es que, en las dos gráficas donde se representa el error, el comportamiento de este es similar con ambas normas. Se observa que, con la norma [math]L^2[/math], la función que representa la evolución del error decrece con una pendiente muy pronunciada en un inicio, que se va suavizando conforme aumenta el valor de [math]n[/math].


5.1 Código de MatLab

f=@(x)(x<=1/2);  %Definimos la función escalón en el 1/2
inicio=0; fin=1; %límites del intervalo

%Extensión par
g=@(x)(f(-x).*(x<0) + f(x).*(x>=0));  %Extensión par de f 
inicio_par=-fin; %límite a la izquierda
div=10^-5;

%Coeficientes de Fourier
N2=1000; N=[1;5;10;N2]; longitud = (fin-inicio_par);
a=zeros(max(N),1); b=zeros(max(N),1);
X=inicio_par:div:fin;
G=g(X);
a_0=trapz(X,G/2);
F=a_0*ones(max(N),length(X));
S=a_0*transpose(2:max(N)+1)*ones(1,length(X));
NL2=zeros(N2,1); 
Nsup=zeros(N2,1); 
NL2S=zeros(N2,1); 
NsupS=zeros(N2,1);

for i=1:max(N)
    cc=cos(i*2*pi*X/longitud);
    ss=sin(i*2*pi*X/longitud);
    %Coefs
    a(i)=trapz(X,G.*cc);
    b(i)=trapz(X,G.*ss);  
    %f_n
    F(i:max(N),:)=F(i:max(N),:)+a(i)*ones(max(N)-i+1,1)*cc + b(i)*ones(max(N)-i+1,1)*ss;
    %Errores de f_n
    NL2(i) = sqrt( trapz(X, abs( G-F(i,:) ).^2)/2 );
    Nsup(i) = max( abs( G-F(i,:) ) );
    %S_n
    sat=transpose(1:max(N)-i+1);
    S(i:max(N),:)=S(i:max(N),:)+a(i)*sat*cc + b(i)*sat*ss;
    S(i,:)=S(i,:)/(i+1);
    %Errores de S_n
    NL2S(i) = sqrt( trapz(X, abs( G-S(i,:) ).^2)/2 );
    NsupS(i) = max( abs( G-S(i,:) ) );
end

figure(1)
colors=["g","b","m"];
plot(X,G,"k","LineWidth",1.5)
name=["Extensión par de f"];
hold on
for j=1:length(N)-1
    plot(X,real(F(N(j),:)),"Color",colors(j),"LineWidth",1.5)
    name(j+1)="f_{"+num2str(N(j))+"}";
end
legend(name); xlabel("eje x"); ylabel("eje y")
title("Aproximaciones con la Base Trigonométrica")

%Representamos
figure(2)
plot(1:N2,NL2,"Color","g","LineWidth",1.5)
hold on 
plot(1:N2,Nsup,"Color","m","LineWidth",1.5)
title("Errores de la base trigonométrica")
legend("Norma de L^2","Norma del supremo"); 
xlabel("N"); ylabel("Error")

%%Sumas de Cesàro
figure(3)
title("Sumas de Cesàro")
colors=["g","b","m"];
plot(X,G,"k","LineWidth",1.5)
name=["Extensión par de f"];
hold on
for j=1:length(N)-1
    plot(X,real(S(N(j),:)),"Color",colors(j),"LineWidth",1.5)
    name(j+1)="S_{"+num2str(N(j))+"}";
end
legend(name); xlabel("eje x"); ylabel("eje y")

figure(4)
plot(1:N2,NL2S,"Color","r","LineWidth",1.5)
hold on 
plot(1:N2,NsupS,"Color","b","LineWidth",1.5)
title("Errores de las sumas de Cesàro")
legend("Norma de L^2","Norma del supremo"); 
xlabel("N"); ylabel("Error")


Nota: Los datos del programa son altos, por lo que tardará más de lo normal. Si quieres que tarde menos cambia los valores de div y N2.

6 Cambio de intervalo

Otro caso para analizar es realizar un cambio de intervalo. A lo largo del trabajo, ya hemos trabajado con diferentes intervalos. Veamos un último ejemplo. Para ello vamos a considerar el intervalo [math][1,3][/math]. Dado que la longitud del intervalo es 2, la base trigonométrica asociada es [math]\left\{ 1/2, \cos{(n\pi x)},\sin{(n\pi x)}\right\}_{n \in \mathbb{N}} [/math] .

Sea [math]f(x)=x \cdot e^{-x}[/math]. Aproximamos la función de la misma forma que en los casos anteriores, tomando [math]n=5,10,20[/math].

Aproximaciones por sumas parciales de la serie de Fourier de la función f.

Al igual que en las anteriores secciones, vemos que las aproximaciones mejoran a medida que tomamos más términos de la serie de Fourier.

También se observa cómo, en los puntos interiores del intervalo, las funciones [math]f_{n}[/math] aproximan de forma más precisa a [math]f[/math] que en los extremos. Esto se debe a la diferencia del valor de [math]f[/math] en [math]1[/math] y [math]3[/math]. Por la convergencia puntual de las series de Fourier, se tiene que [math]f_{n}(0)[/math] debe coincidir con [math]f_{n}(1)[/math], y debe ser igual al punto medio entre [math]f(0)[/math] y [math]f(1)[/math], que no coincide con ninguno de estos dos valores.


6.1 Código de MatLab

f=@(x)(x.*(exp(-x)));  %Definimos la función
inicio=1; fin=3; %límites del intervalo
div=10^-3;

%Coeficientes de Fourier
N2=0; N=[5;10;20;N2]; longitud = (fin-inicio);
a=zeros(max(N),1); b=zeros(max(N),1);
X=inicio:div:fin;
G=f(X);
a_0=trapz(X,G/2);
F=a_0*ones(max(N),length(X));

for i=1:max(N)
    cc=cos(i*2*pi*X/longitud);
    ss=sin(i*2*pi*X/longitud);
    %Coefs
    a(i)=trapz(X,G.*cc);
    b(i)=trapz(X,G.*ss);  
    %f_n
    F(i:max(N),:)=F(i:max(N),:)+a(i)*ones(max(N)-i+1,1)*cc + b(i)*ones(max(N)-i+1,1)*ss;
end

figure(1)
colors=["g","b","m"];
plot(X,G,"k","LineWidth",1.5)
name=["Extensión impar de f"];
hold on
for j=1:length(N)-1
    plot(X,real(F(N(j),:)),"Color",colors(j),"LineWidth",1.5)
    name(j+1)="f_{"+num2str(N(j))+"}";
end
legend(name); xlabel("eje x"); ylabel("eje y")
title("Aproximaciones con la Base Trigonométrica")


7 Base trigonométrica compleja

Por último, vamos a considerar la base trigonométrica compleja que viene dada por [math] \left\{ e^{\frac{2\pi inx}{b-a}}\right\} _{n \in \mathbb{Z} }[/math] en [math][a, b] [/math].

Al igual que ocurría en el caso real, es una base ortonormal si el intervalo sobre el que está definido tiene longitud 1. Nótese que esta definición de base extiende la dada en los reales, pues podemos escribir todos los elementos de la base real como combinación de los elementos de la compleja:

[math] \sin{(n \pi x)} = \frac{e^{i n x}- e^{-i n x}}{2i} [/math] ,

[math] cos{(n \pi x)} = \frac{e^{i n x}+ e^{-i n x}}{2} [/math],

[math] \frac{1}{2}=\frac{1}{2}e^{0i} [/math].

En el espacio de funciones [math] L^2 ([a,b]) [/math] que toman valores complejos, el producto escalar se define como [math] \langle f,g \rangle_{L^2}= \int_{a} ^{b} f(x) \overline{g(x)} \, dx \in \mathbb{C} [/math] . En este caso los coeficientes de Fourier son números complejos, incluso aunque la función tome valores reales.

Veamos ahora un ejemplo al emplear esta base. Para ello, vamos a considerar la función [math] f(x) = 4x(1/2-x)^2[/math] y aproximarla. Comenzamos calculando la base trigonométrica adaptada al intervalo [math] [0,1] [/math], que será [math] \{ e^{i 2\pi nx}\} _{n \in \mathbb{Z} }[/math].

En la siguiente gráfica se representa la aproximación considerando los primeros 5, 10 y 20 términos de la serie.

Aproximaciones por sumas parciales de la serie de Fourier de la función f con la base trigonométrica compleja.

7.1 Código de MatLab

f=@(x)4*x.*(1/2-x).^2;  %Definimos la función
inicio=0; fin=1; %límites del intervalo
div=10^-3;

%Coeficientes de Fourier
N2=100; N=[5;10;20;N2]; longitud = (fin-inicio);
a=zeros(max(N),1); b=zeros(max(N),1);
X=inicio:div:fin;
G=f(X);
a_0=trapz(X,G.*exp(2i*0*X/longitud));
F=a_0*ones(max(N),length(X));

for j=1:max(N)
    eplus=exp(j*2i*pi*X/longitud);
    emin=exp(-j*2i*pi*X/longitud);
    %Coefs
    a(j)=trapz(X,G.*eplus);
    b(j)=trapz(X,G.*emin);  
    %f_n
    F(j:max(N),:)=F(j:max(N),:)+a(j)*ones(max(N)-j+1,1)*eplus + b(j)*ones(max(N)-j+1,1)*emin;
end

figure(1)
colors=["g","b","m"];
plot(X,G,"k","LineWidth",1.5)
name=["f"];
hold on
for j=1:length(N)-1
    plot(X,flip(F(N(j),:)),"Color",colors(j),"LineWidth",1.5)
    name(j+1)="f_{"+num2str(N(j))+"}";
end
legend(name); xlabel("eje x"); ylabel("eje y")
title("Aproximaciones con la Base Trigonométrica Compleja")


8 Conclusión

Como hemos visto a lo largo del documento, las series de Fourier son una gran herramienta para aproximar funciones, pues puede desglosar funciones complicadas y extrañas en funciones más conocidas (senos y cosenos). Como era de esperar, a medida que añadimos más términos de la serie de Fourier, la aproximación es mejor. Cabe destacar que la aproximación necesita menos términos cuanto más regular sea la función (continua, comienza y acaba por el mismo valor...).

9 Referencia