% programita para la serie de senos y cosenos de f(x) = x % -L \le x \le L close all L = 1; letra=18; prefix='xmas'; efe = inline('x.*(x>0)'); a0 = L/4; margen = 0.1; for N = [1 3 5 15] n=[1:N]; a = L/(pi^2)./n.^2 .* ((-1).^(n) - 1) ; b = -L/pi./n .* (-1).^n; x = [-L:0.01:L]; npix = pi*(n'*x)/L; fap = a0 + a * cos(npix) + b * sin(npix); f = efe(x); M = max([f fap]); m = min([f fap]); plot([-3*L 3*L],[0 0],'b',[0 0],[m M],'b') % ejes hold on plot(x,f,'r','LineWidth',2) plot(x,fap,'m','LineWidth',2) %title(sprintf('N = %d error = %.8f',N,max(abs(f-fap)))) axis([-L-margen L+margen m-margen M+margen]) set(gca,'FontSize', letra) filename=sprintf('fourier-%s-N=%02d',prefix,N); print('-dpng',filename) print('-depsc2',filename) hold off pause end pause plot([-3*L 3*L],[0 0],'b',[0 0],[m M],'b') % ejes hold on plot(x,f,'r',x,f,'m','LineWidth',2) plot([-L L], [L/2 L/2], 'mo', 'MarkerEdgeColor','m','MarkerFaceColor','m', ... 'MarkerSize', 10) plot([-L L],[0 0],'b', [0 0],[m M],'b'); axis([-L-margen L+margen m-margen M+margen]) set(gca,'FontSize', letra) filename=sprintf('fourier-%s-N=inf',prefix); print('-dpng',filename) print('-depsc2',filename) hold off pause ff = f; xx = x; for N = [15] n=[1:N]; a = L/(pi^2)./n.^2 .* ((-1).^(n) - 1) ; b = -L/pi./n .* (-1).^n; x = [-3*L:0.01:3*L]; npix = pi*(n'*x)/L; fap = a0 + a * cos(npix) + b * sin(npix); f = efe(x); M = max([f fap]); m = min([f fap]); plot([-3*L 3*L],[0 0],'b',[0 0],[m M],'b') % ejes hold on plot(x,f,'r','LineWidth',2) plot(x,fap,'m','LineWidth',2) axis([-3*L-margen 3*L+margen m-margen M+margen]) set(gca,'FontSize', letra) filename=sprintf('fourier-%s-N=%02d-3L',prefix,N); print('-dpng',filename) print('-depsc2',filename) hold off pause end pause plot([-3*L 3*L],[0 0],'b',[0 0],[m M],'b') % ejes hold on plot(xx-2*L,ff,'m','LineWidth',2) plot(xx,ff,'m','LineWidth',2) plot(xx+2*L,ff,'m','LineWidth',2) plot([-3*L -L L 3*L], [L/2 L/2 L/2 L/2], 'mo', 'MarkerEdgeColor','m','MarkerFaceColor','m', ... 'MarkerSize', 10) axis([-3*L-margen 3*L+margen m-margen M+margen]) set(gca,'FontSize', letra) filename=sprintf('fourier-%s-N=inf-3L',prefix); print('-dpng',filename) print('-depsc2',filename)