ecuaciones diferenciales series de fourier transformadas de fourier ...
Series de fourier con MATLAB
-
Upload
miguel-angel-vazquez -
Category
Education
-
view
317 -
download
3
description
Transcript of 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
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.
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:
.
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.
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: ');
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,
Cuando N=10;
Cuando N=100;
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.
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