Series de fourier con MATLAB

9
Instituto Tecnológico de Tuxtla Gutiérrez Departamento de Metal-Mecánica Ingeniería Mecánica Sexto semestre Grupo 2 VIBRACIONES MECÁNICAS Catedrático: M.C. RUTILO MORALES ALVAREZ SERIES DE FOURIER Alumno: Miguel Ángel Hernández Vázquez No.control. 10270789 Fecha: Viernes 3 de Mayo del 2013. Tuxtla Gutiérrez, Chiapas

description

Series de Fourier programadas en MATLAB

Transcript of Series de fourier con MATLAB

Page 1: Series de fourier con MATLAB

Instituto Tecnológico de Tuxtla Gutiérrez

Departamento de Metal-Mecánica

Ingeniería Mecánica

Sexto semestre

Grupo 2

VIBRACIONES

MECÁNICAS

Catedrático: M.C. RUTILO MORALES ALVAREZ

SERIES DE FOURIER

Alumno:

Miguel Ángel Hernández Vázquez

No.control. 10270789

Fecha: Viernes 3 de Mayo del 2013. Tuxtla Gutiérrez, Chiapas

Page 2: Series de fourier con MATLAB

EJERCICIO N° 1.

Encontrar la serie de Fourier correspondiente a la siguiente función.

Para comprobar la eficiencia del uso de la serie de Fourier, primero se encontró analíticamente la serie

correspondiente, como se muestra en la siguiente hoja, posteriormente se programó la serie para que fuera

graficada y así ver la aproximación de dicha serie en función del número de armónicos que se utilizan.

Page 3: Series de fourier con MATLAB

CODIGO EN MATLAB:

%Aproximación de la primera función clear; clc; fprintf('INSTITUTO TECNOLOGICO DE TUXTLA GUTIERREZ\n') fprintf('VIBRACIONES MECANICA\n') fprintf('Este programa aproxima la siguiente función mediante la serie de

Fourier\n') fprintf('La curva en color verde es la función original y la azul la

aproximación') fprintf('La función a aproximar es:\n') syms t x1=-0.5*t; fprintf('x(t)= \n') pretty(x1) fprintf('Para -2<t<0\n') x2=0.5*t; fprintf('x(t)= \n') pretty(x2) fprintf('Para 0<t<2\n') N=input('Escribe el número de armónicos a utilizar: '); s=0; x=-2:0.01:2; for i=1:N; s=s+((2/pi^2)*((-1)^i-1)*(cos(i*pi*x/2)))/i^2; end y=0.5+s; f=(x<0).*(-0.5*x)+(x>=0).*(0.5*x); plot(x,y,'b',x,f,'g') title('Series de Fourier') xlabel('t') ylabel('x(t)') grid on

Cuando N=1; MATLAB lo grafica de la siguiente forma:

.

Page 4: Series de fourier con MATLAB

Vemos que la curva se quiere aproximar, pero no es muy precisa. Por lo tanto deberemos incrementar N.

Cuando N=10; se grafica lo siguiente:

Entre más valores de N se agreguen, más aproximada será la curva.

Por último, daremos un valor a N=100. Observaremos lo siguiente:

En esta gráfica la aproximación es muy precisa y no existe distinción alguna entre la función original y la que

se está aproximando.

Page 5: Series de fourier con MATLAB

EJERCICIO N° 2.

Encontrar la serie de Fourier correspondiente a la siguiente función.

CODIGO EN MATLAB:

%Aproximación de la primera función clear; clc; fprintf('INSTITUTO TECNOLOGICO DE TUXTLA GUTIERREZ\n') fprintf('VIBRACIONES MECANICA\n') fprintf('Este programa aproxima la siguiente función mediante la serie de

Fourier\n') fprintf('La curva en color verde es la función original y la azul la

aproximación') fprintf('La función a aproximar es:\n') syms t x1=-t-2; fprintf('x(t)= \n') pretty(x1) fprintf('Para -2<t<-1\n') x2=t;

fprintf('x(t)= \n') pretty(x2) fprintf('Para -1<t<1\n') x3=-t+2; fprintf('x(t)= \n') pretty(x3) fprintf('Para 1<t<2\n') N=input('Escribe el número de armónicos a utilizar: ');

Page 6: Series de fourier con MATLAB

s=0; x=-2:0.01:2; for i=1:N; s=s+(8*sin(i*pi/2)/((i^2)*pi*pi))*(sin(i*pi*x/2)); end y=s; f=((x>=-2)&(x<-1)).*(-x-2)+((x>=-1)&(x<1)).*(x)+((x>=1)&(x<=2)).*(-x+2); plot(x,y,'b',x,f,'g') title('Series de Fourier') xlabel('t') ylabel('x(t)') grid on

Cuando N=1,

Page 7: Series de fourier con MATLAB

Cuando N=10;

Cuando N=100;

Page 8: Series de fourier con MATLAB

EJERCICIO N° 3.

Encontrar la serie de Fourier correspondiente a la siguiente función.

En la siguiente hoja se realizó el cálculo para después programarlo en MATLAB y ver el comportamiento de la

función.

Page 9: Series de fourier con MATLAB

CODIGO EN MATLAB

%Aproximacion de la primera función clear; clc; fprintf('INSTITUTO TECNOLOGICO DE TUXTLA GUTIERREZ\n') fprintf('VIBRACIONES MECANICA\n') fprintf('Este programa aproxima la siguiente funcion mediante la serie de

Fourier\n') fprintf('La curva en color verde es la función original y la azul la

aproximación') fprintf('La función a apróximar es:\n') syms t x1=-t-2; fprintf('x(t)= \n') pretty(x1) fprintf('Para -2<t<-1\n') x2=t; fprintf('x(t)= \n') pretty(x2) fprintf('Para -1<t<1\n') x3=-t+2; fprintf('x(t)= \n') pretty(x3) fprintf('Para 1<t<2\n') N=input('Escribe el numero de armonicos a utilizar: '); s=0; x=-2:0.01:2; for i=1:N; s=s+(8*sin(i*pi/2)/((i^2)*pi*pi))*(sin(i*pi*x/2)); end y=s; f=((x>=-2)&(x<-1)).*(-x-2)+((x>=-1)&(x<1)).*(x)+((x>=1)&(x<=2)).*(-x+2); plot(x,y,'b',x,f,'g') title('Series de Fourier') xlabel('t') ylabel('x(t)') grid on