function sumasparcialesFourier(N,inc)
p=pi/4;
xf=[-p 0 linspace(0,p,20)];
f=[0 0 sin(xf(3:end))];
plot([xf-2*p, xf, xf+2*p],[ f f f],'r','Linewidth',1.2)
axis equal; grid on; hold on
x=linspace(-3*p,3*p);
c0=(2-sqrt(2))/pi;
y=c0*ones(N+1,length(x));
for k=1:N
ck=((-1)^k*(1+4*k*i)*sqrt(2)-2)/((16*k^2-1)*pi);
tk=2*real(ck)*cos(4*k*x)-2*imag(ck)*sin(4*k*x);
y(k+1,:)=y(k,:)+tk; end
plot(x,y(2:inc:N,:))
plot(x,y(N+1,:),'k','Linewidth',1.2); hold off endCuando en la ventana de comandos ejecutamos
sumasparcialesFourier(20,6)obtenemos las gráficas de la siguiente figura (las etiquetas del eje horizontal se han modificado después)
function sumasparcialesFourier(N,inc) % Esta función dibuja en rojo la función que vale sen(t) para t entre 0 y pi/4 y vale % cero entre -pi/4 y 0 y que se repite periódicamente % con periodo T=pi/2. Dibuja después las N+1 primeras sumas % parciales del desarrollo de Fourier de esta función % periódica, si inc=1; si no, va saltando ese incremento. % La última dibuja remarcada en negro. p=pi/4; xf=[-p 0 linspace(0,p,20)]; f=[0 0 sin(xf(3:end))]; plot([xf-2*p, xf, xf+2*p],[ f f f],'r','Linewidth',1.2) axis equal; grid on; hold on x=linspace(-3*p,3*p); c0=(2-sqrt(2))/pi; y=c0*ones(N+1,length(x)); for k=1:N ck=((-1)^k*(1+4*k*i)*sqrt(2)-2)/((16*k^2-1)*pi); tk=2*real(ck)*cos(4*k*x)-2*imag(ck)*sin(4*k*x); y(k+1,:)=y(k,:)+tk; end plot(x,y(2:inc:N,:)); % Para dibujar remarcada la última suma parcial plot(x,y(N+1,:),'k','Linewidth',1.2); hold off end