Documentos de Académico
Documentos de Profesional
Documentos de Cultura
transformada_de_fourier_grupo_ de_funciones.m
clear , clf, clc, close all
syms x n
%f=input('ingrese las funciones entre corchetes [] separadas por espacios');
%p=input('ingrese los puntos en que estan evaluadas las funciones entre corchetes [] separadas por
espacios');
f=[x^3 x^4];%funciones
p=[-pi 0 pi];%intervalos
f=sym(f);
a0=0;
for i=1:length(f)
a0=a0+int(f(i),'x',p(i),p(i+1));
end
disp('coeficiente A0:')
a0=simple(a0/pi);
pretty(a0)
an=0;
for i=1:length(f)
an=an+int(f(i)*cos(n*x),'x',p(i),p(i+1));
end
disp('coeficiente An:')
an
an=simple(an/pi)
an=subs(an,{cos(pi*n),sin(pi*n)},{(-1)^n,0})
pretty(an)
bn=0;
for i=1:length(f)
bn=bn+int(f(i)*sin(n*x),'x',p(i),p(i+1));
end
disp('coeficiente Bn:')
bn=simple(bn/pi);
bn=subs(bn,{cos(pi*n),sin(pi*n)},{(-1)^n,0});
pretty(bn)
d=input('ingrese el valor de los armonicos: \n')
D=d;
d=sym(d);
Fa=a0/2;
%ciclo para generar la sumatoria
tic
for k=1:d
F=0;
F=an*cos(n*x)+bn*sin(n*x);
F=subs(F,n,k);
Fa=Fa+F;
end
% graficacion de la funcion de aproximacion
fprintf('funcion de aproximacion para %d terminos es: \n',D)
FA=simple(Fa);
pretty(FA)
T=toc
p1=ezplot(Fa,[-5,5]);
set(p1,'color','g')
title('aprox. de funciones por series de Fourier')
xlabel('x')
ylabel('y')
grid on
hold on
% graficacion de las funciones originales
x=min(p):0.01:max(p);
fx=0;
for j=1:length(f)
fj=subs(f(j),x);
if j==length(f)
fx=fx+(((x>=p(j))&(x<=p(j+1))).*fj);
else
fx=fx+(((x>=p(j))&(x<p(j+1))).*fj);
end
end
plot(x,fx)
legend('funcion aprox.','funcion original')
hold off
%%
clear , clf, clc, close all
syms x n
%f=input('ingrese las funciones entre corchetes [] separadas por espacios');
%p=input('ingrese los puntos en que estan evaluadas las funciones entre corchetes [] separadas por
espacios');
f=[x^3 x^4];%funciones
p=[-pi 0 pi];%intervalos
f=sym(f);
a0=0;
for i=1:length(f)
a0=a0+int(f(i),'x',p(i),p(i+1));
end
disp('coeficiente A0:')
a0=simple(a0/pi);
pretty(a0)
an=0;
for i=1:length(f)
an=an+int(f(i)*cos(n*x),'x',p(i),p(i+1));
end
disp('coeficiente An:')
an
an=simple(an/pi)
an=subs(an,{cos(pi*n),sin(pi*n)},{(-1)^n,0})
pretty(an)
bn=0;
for i=1:length(f)
bn=bn+int(f(i)*sin(n*x),'x',p(i),p(i+1));
end
disp('coeficiente Bn:')
bn=simple(bn/pi);
bn=subs(bn,{cos(pi*n),sin(pi*n)},{(-1)^n,0});
pretty(bn)
d=input('ingrese el valor de los armonicos: \n')
D=d;
d=sym(d);
Fa=a0/2;
%sumatoria de terminos
tic
Fa=Fa+symsum(an*cos(n*x)+ bn*sin(n*x),n,1,d);
% graficacion de la funcion de aproximacion
fprintf('funcion de aproximacion para %d terminos es: \n',D)
FA=simple(Fa);
pretty(FA)
T=toc
p1=ezplot(Fa,[-5,5]);
set(p1,'color','g')
title('aprox. de funciones por series de Fourier')
xlabel('x')
ylabel('y')
grid on
hold on
% graficacion de las funciones originales
x=min(p):0.01:max(p);
fx=0;
for j=1:length(f)
fj=subs(f(j),x);
if j==length(f)
fx=fx+(((x>=p(j))&(x<=p(j+1))).*fj);
else
fx=fx+(((x>=p(j))&(x<p(j+1))).*fj);
end
end
plot(x,fx)
legend('funcion aprox.','funcion original')
hold off