Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Práctica 2 Series de Fourier

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 14

MATEMÁTICAS II

Práctica 2:
Series de Fourier

DEPARTAMENTO DE MATEMÁTICA APLICADA


ESCUELA TÉCNICA SUPERIOR
DE INGENIERÍA DEL DISEÑO
UNIVERSIDAD POLITÉCNICA DE VALENCIA

1
1. Introducción

Vamos a usar el programa Mathematica para estudiar las series de Fourier.


Como primera etapa vamos a observar el comportamiento de las funciones
trigonométricas que permiten construir las series de Fourier.
Primero utilizaremos el Mathematica para comprobar como el sistema
trigonométrico es un sistema ortogonal en cualquier intervalo de longitud
2 , en particular en el intervalo [ ; ]: Utilizaremos el producto escalar de
dos funciones f y g de…nido como
Z
hf; gi = f (x)g(x)dx:

Escribiendo
In[]:= Integrate[Sin[n*x],{x,-Pi,Pi}]
obtenemos que dicho valor es 0. Sin embargo cuando escribimos
In[]:= Integrate[Cos[n*x],{x,-Pi,Pi}]
obtenemos
2 Sin[n ]
Out[] =
n
que también vale 0. Se puede comprobar para algunos valores de n escri-
biendo
In[]:= Table[2Sin[n*Pi],{n,-10,10}]
Si de…nimos ahora
In[]:= psin[n_,m_]=Integrate[Sin[n*x]*Sin[m*x],{x,-Pi,Pi}]
In[]:= pcos[n_,m_]=Integrate[Cos[n*x]*Cos[m*x],{x,-Pi,Pi}]
In[]:= pcosin[n_,m_]=Integrate[Cos[n*x]*Sin[m*x],{x,-Pi,Pi}]
se obtiene
2 n Cos[n ] Sin[m ] 2 m Cos[m ] Sin[n ]
Out[] =
m2 n2
2 m Cos[n ] Sin[m ] 2 n Cos[m ] Sin[n ]
Out[] =
m2 n2
Out[] = 0

2
Se puede observar como el último valor es 0, aunque las dos primeras expre-
siones también lo son. Para ello hay que recordar que sen(n ) = 0; 8n 2 Z.
Así, sólo nos faltaría estudiar el caso m = n. Escribiendo
In[]:= Integrate[Sin[n*x]*Sin[n*x],{x,-Pi,Pi}]
In[]:= Integrate[Cos[n*x]*Cos[n*x],{x,-Pi,Pi}]
obtenemos
Sin[2 n ]
Out[] =
2n
Sin[2 n ]
Out[] = +
2n
cuyo valor es .
Ya que habíamos utilizado una función para guardar los valores de las
integrales de los senos y de los cosenos, se podría pensar en escribir
In[]:= psin[n,n]
In[]:= pcos[n,n]
sin embargo se produce un error (Indeterminate) al ejecutar dichas or-
denes ya que la función asignada tenía como denominador la expresión m2 n2
que vale cero cuando m = n.
Resumiendo, los valores de los diferentes productos escalares son:

h1; 1i = 2 ; h1; sen(n x)i = 0; h1; cos(n x)i = 0

hcos(n x); cos(n x)i = hsen(n x); sen(n x)i =

si m 6= n hcos(n x); cos(m x)i = hsen(n x); sen(m x)i = 0


hcos(n x); sen(m x)i = 0

2. Obtención de los coe…cientes de Fourier


Un paso previo para construir la serie de Fourier asociada a una función
f (t) es calcular los llamados coe…cientes de Fourier a0 ; an y bn . Algunos
autores llaman coe…cientes coseno a los coe…cientes a0 y an y a los bn
coe…cientes seno. Para calcularlos es su…ciente que la función f (t) sea

3
integrable y dichos coe…cientes se calculan mediante las siguientes expresiones
denominadas fórmulas de Euler:
Z
1
an = f (t) cos(n t) dt n = 0; 1; 2; : : :

Z
1
bn = f (t) sen(n t) dt n = 1; 2; : : :

Ejemplo 1 Obtén los 10 primeros coe…cientes coseno y los 5 seno para las
siguientes funciones:
a) f (t) = t b) f (t) = t c) f (t) = t2

Solución: Escribimos las fórmulas de Euler con Mathematica y calcu-


lamos los coe…cientes pedidos.
Apartado a)
In[]:= a[n_]=1/Pi*Integrate[t*Cos[n*t],{t,-Pi,Pi}]
Out[]= 0
Mientras que los coe…cientes coseno valen cero, los coe…cientes seno son
In[]:= b[n_]=1=Pi*Integrate[t*Sin[n*t],{t;-Pi; Pi}]

2 n Cos[n ] + 2 Sin[n ]
Out[]=
n2
y como sen(n ) = 0 podemos simpi‡icar, o mejor reescribir (ya que en
este caso no funciona el comando Simplify) la última expresión como
In[]= b1[n_]=-2Cos[n*Pi]/n;
y generar una tabla que nos permita obtener los 5 primeros coe…cientes
seno de la función.
In[]:= Table[b1[k],{k,1,5}]

2 1 2
Out[] = f2; 1; ; ; g
3 2 5

Los apartados b) y c) se dejan como ejercicios propuestos.

4
3. Polinomios de Fourier. Representación grá-
…ca
Ahora nos proponemos encontrar la grá…ca de un número …nito de ele-
mentos (polinomio) de la serie de Fourier. Para ello, vamos a construir una
función que obtenga dicha expresión y posteriormente haremos su repre-
sentación grá…ca.

Ejemplo 2 Halla los polinomios de Fourier para n = 2 y n = 3 de la función


f (t) = t en el intervalo [ ; ]:

Solución: Lo primero que hacemos es borrar cualquier tipo de coe…cientes


que hallamos calculado anteriormente para otro tipo de funciones

In[]:= Clear[a,b,b1]

y volvemos a de…nir los coe…cientes para esta nueva función

In[]:= a[n_]=1/Pi*Integrate[t*Cos[n*t],{t,-Pi,Pi}];
In[]:= b[n_]=1/Pi*Integrate[t*Sin[n*t],{t,-Pi,Pi}];

Y ahora vamos a construir una función que genere los n polinomios de


Fourier, según el valor que demos a la variable n, para la función dada y en
el intervalo pedido.

In[]:= PFourier[n_]:=
a[0]/2+Sum[a[k]*Cos[t*k]+b[k]*Sin[t*k],{k,1,n}];

Entonces para n = 2 obtenemos el polinomio

In[]:= id2=PFourier[2];

Y ahora podemos comparar grá…camente este polinomio con la función


que lo genera

In[]:= Plot[{t,id2},{t,-Pi,Pi}]

5
obteniendo la grá…ca

Para n = 3 escribimos
In[]:= id3=PFourier[3];
In[]:= Plot[{t,id3},{t,-Pi,Pi}]
y obtenemos

Puede observarse como a medida que tomáramos más términos del polinomio
así construido, éste se ajustaría mejor a la función. Y si quisieramos conocer
explícitamente los polinomios de Fourier que hemos calculado podríamos
hacerlo de la siguiente forma:
In[]:= PFourier[2]//ComplexExpand

6
que expresa el polinomio (en variable t) de forma trigonométrica

2Sin[t] Sin[2t]

In[]:= PFourier[3]//ComplexExpand

2
2Sin[t] Sin[2t] + Sin[3t]
3

3.1. Evaluación numérica de los polinomios de Fourier


Si además de la representación grá…ca de los polinomios de Fourier de
un función cualquiera f (t) quisieramos conocer, por ejemplo, una tabla de
valores de dichos polinomios podríamos proceder de la siguiente manera:
de…niendo la función generatriz de polinomios de Fourier PFourier[ ] de-
pendiendo de dos variables: del grado del polinomio n y de la variable t,
variable independiente del polinomio. Es decir, podemos escribir

In[]:= PFourier[t_,n_]:=
a[0]/2+Sum[a[k]*Cos[t*k]+b[k]*Sin[t*k],{k,1,n}];
In[]:= s2[t_]=PFourier[t,2];s3[t_]=PFourier[t,3];

Y entonces, con las funciones s2[t] y s3[t] así de…nidas (que coinciden
con las funciones id2 e id3) podemos obtener cualquier valor numérico sin
más que sustituir la variable t. Por ejemplo:

In[]:= {s3[0],s3[0.25],s3[0.5],s3[0.75],s3[1.]}//Chop
Out[]= {0,0.469808,0.782377,0.884498,0.867725}

Huelga decir que utilizando las funciones id también hubiésemos podido


obtener valores numéricos utilizando el comando “/.”.

In[]:= id3/.{t->{0,0.25,0.5,0.75,1.}}//Chop

Una cuestión: ¿obtenemos el mismo resultado poniendo 1: ó 1? ¿Por qué?

7
4. Desarrollo de Fourier de una función 2 -
periódica
Nuestro objetivo ahora es a partir de una función real cualquiera consi-
derada en un intervalo de longitud 2 , extender dicha función en todo R, es
decir, hacerla periódica de periodo 2 y después de ello obtener su desarrollo
de Fourier. Veamos lo comentado para la función f (x) = x2 en un sencillo
ejemplo.
Ejemplo 3 Obtén el desarrollo de Fourier de la función 2 -periódica

f (x) = x2 , x 2 [0; 2 ]:
Solución: Primero vamos de…nir una nueva función extendiendo la fun-
ción dada a un intervalo más amplio y observaremos su grá…ca con…rmando
su periodicidad. Para hacer esta extensión tendremos en cuenta que deseamos
la misma grá…ca en los intervalos [ 2 ; 0] y [2 ; 4 ] que la que existe en el
intervalo [0; 2 ]. Así, en [ 2 ; 0] deberemos sumar 2 a la variable indepen-
diente x , mientras que en [2 ; 4 ] le restaremos 2 . Es decir, tenemos que
de…nir y trabajar con la función de…nida a trozos
8
>
> (x + 2 )2 2 x<0
<
f (x) = x2 0 x<2
>
>
: (x 2 )2 2 x 4
Así escribimos
In[]:= f[x_]=Piecewise[{{(x+2Pi)^2,-2Pi<=x<0},{x^2,0<=x<2Pi},
{(x-2Pi)^2,2Pi<=x<=4Pi}}]
que es una primera y bastante aconsejable forma de expresar dicha función
ya que el Out[ ] que devuelve se asemeja a la forma en que escribimos las
funciones de…nidas a trozos. Otras formas de expresar f (x) con Mathematica
pueden ser, con Which[ ] o utilizando /; que equivale a un “si condicional”.
In[]:= g[x_] =Which[-2Pi<=x<0,(x+2Pi)^2,0<=x<2Pi,x^2,
2Pi<=x<=4Pi,(x-2Pi)^2];
In[]:= h[x_]:=(x+2Pi)^2/;-2Pi<=x<0
h[x_]:=x^2/;0<=x<2Pi
h[x_]:=(x-2Pi)^2/;2Pi<=x<=4 Pi

8
Podemos representar grá…camente cualquiera de ellas para observar, que
son iguales y que se corresponden con “un trozo de parábola"” repetido 3
veces.

In[]:= Plot[f[x],{x,-2Pi,4Pi}]

Y ahora pasamos a calcular los coe…cientes de Fourier.

In[]:= a0=1/Pi*Integrate[x^2,{x,0,2Pi}]

8 2
Out[] =
3

Y para el resto de coe…cientes, en función de n hacemos

In[]:= a[n_]=1/Pi*Integrate[x^2*Cos[n*x],{x,0,2 Pi}]

obteniendo
4 n Cos[2 n ] + ( 2 + 4 n2 ( )2 ) Sin[2 n ]
Out[] =
n3
y escribiendo

In[]:= b[n_]=1/Pi*Integrate[x^2*Sin[n*x],{x,0,2Pi}]

9
se obtiene
2 + (2 4 n2 2
) Cos[2 n ] + 4 n Sin[2 n ]
Out[] =
n3
Ahora se construye el polinomio escribiendo

In[]:= s[n_]:=a0/2+Sum[a[k]*Cos[k*x]+b[k]*Sin[k*x],{k,1,n}]

obteniendo así la suma parcial de los n primeros términos de la serie de


Fourier. Por último, dibujamos la grá…ca de f (x) junto con algunas de estas
sumas parciales para ver cómo se van aproximando mejor a f (x) conforme
vayamos tomando más términos de la serie de Fourier.

In[]:= pol={s[1],s[2],s[5],s[10],s[20]};
In[]:= Plot[{f[x],pol},{x,-2Pi,4Pi}]

4.1. Desarrollo de Fourier de una función T -periódica


Sea ahora f (x) una función periódica de período T distinto de 2 , bus-
camos entonces una función '(t) que sea 2 -periódica para poder poder hallar

10
los coe…cientes de Fourier. La relación que liga x con t se obtiene planteando
una sencilla regla de tres. Así, haciendo el cambio de variable
tT
x=
2
y tomando
tT
'(t) = f
2
se tiene que '(t) es una función 2 -periódica.

Ejemplo 4 Obtén el desarrollo de Fourier de la función 2-periódica

f (x) = (1 x), x 2 [ 1; 1]:

Solución: Primero de…nimos la función en un intervalo más amplio para


observar como es su grá…ca. Así escribimos

In[]:= Clear[f,a0,a,b,s,pol]
In[]:= f[x_]=Piecewise[{{Pi(1-x-2),-3<=x<-1},{Pi(1-x),-1<=x<1},
{Pi(1-x+2),1<=x<=3}}]
In[]:= Plot[f[x],{x,-3,3}]

Como la función no es 2 -periódica realizaremos el cambio de variable


t
x = , con lo que la nueva función 2 -periódica '(t) será

In[]:= h[t_]=f[t/Pi];

11
y su grá…ca es de la forma

Se observa que las grá…cas de f (x) y h(t) son sustancialmente iguales, porque
lo que hemos realizado no es más que un cambio de escala de la variable
independiente. Calculemos ahora los coe…cientes de Fourier. El primero es

In[]:= a0=1/Pi*Integrate[h[t],{t,-Pi,Pi}] Out[]= 2Pi

Y para el resto de coe…cientes, en función de n hacemos

In[]:= a[n_]=1/Pi*Integrate[h[t]*Cos[n*t],{t,-Pi,Pi}]

obteniendo
2 Sin[n ]
Out[] =
n
y escribiendo

In[]:= b[n_]=1/Pi*Integrate[h[t]*Sin[n*t],{t,-Pi,Pi}]

se obtiene
2(n Cos[n ] Sin[n ])
Out[] =
n2
Construimos ahora el polinomio escribiendo (nótese que an = 0; n 1)

In[]:= s[n_]:=a0/2+Sum[b[k]*Sin[k*t],{k,1,n}]

12
obteniendo así la suma parcial de los n primeros términos de la serie de
Fourier. Como en la sección anterior, dibujamos la grá…ca de h(t) junto con
algunas de estas sumas parciales.

In[]:= pol={s[1],s[2],s[5],s[10],s[20]};
In[]:= Plot[{h[t],pol},{t,-3Pi,3Pi}]

Si lo que queremos es obtener la expresión de la serie de la función inicial


sólo faltaría escribirla y deshacer el cambio de variable. Esto se deja como
ejercicio propuesto.

5. Comandos del Mathematica para el desa-


rrollo de series de Fourier
Otra forma de obtener las sumas parciales de una serie de Fourier es
utilizar el comando que existe en Mathematica. Así, si queremos calcular la
suma parcial para n = 5 de los primeros términos de la serie de Fourier de
la función f (t) = t2 bastaría con escribir

13
In[]:= FS5=FourierSeries[t^2,t,5]

Eso sí, el resultado obtenido estará expresado mediante la expresión com-


pleja de la serie y para obtener la expresión trigonométrica tendríamos que
escribir

In[]:= ComplexExpand[FS5]

obteniendo
2
4 1 4
Out[] = 4 Cos[t] + Cos[2 t] Cos[3 t] + Cos[4 t] Cos[5 t]
3 9 4 25
y para comparar las funciones grá…camente

In[]:= Plot[{t^2,FS5},{t,-Pi,Pi},PlotStyle->{Blue,Red}]

Nota: Sintaxis del comando FourierSeries[ ]


FourierSeries[expr,t,n] da el polinomio de Fourier de orden n y en
variable t de la función o expresión expr.

14

También podría gustarte