% programita para la serie de senos y cosenos de f(x) = x
% -L \le x \le L
close all
L = 2;
letra=18;
  a0 = 0;

margen = 0.1;

for N = [1 3 5 10 25]

  n=[1:N];
  a = zeros(size(n));
  b = -(-1).^n .* (2*L) ./ (n*pi);

  x = [-L:0.01:L];
  npix = pi*(n'*x)/L;
  fap = a0/2 + a * cos(npix) + b * sin(npix);

  f = x;

  M = max([f fap]);
  m = min([f fap]);
  plot(x,f,'r','LineWidth',2)
  hold on
  plot(x,fap,'m','LineWidth',2)
  plot([-L L],[0 0],'b',[0 0],[m M],'b')
  
  %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-x-N=%02d',N); 
  print('-dpng',filename)
  print('-depsc2',filename)
  hold off
  pause
end

pause
plot(x,f,'r',x,f,'m','LineWidth',2)
hold on
plot([-L L], [0 0], '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-x-N=inf',N);
print('-dpng',filename)
print('-depsc2',filename)
hold off
pause

ff = f;
xx = x;

for N = [25]

  n=[1:N];
  a = zeros(size(n));
  b = -(-1).^n .* (2*L) ./ (n*pi);

  x = [-3*L:0.01:3*L];
  npix = pi*(n'*x)/L;
  fap = a0/2 + a * cos(npix) + b * sin(npix);

  f = x;

  M = max([f fap]);
  m = min([f fap]);
  plot(x,f,'r','LineWidth',2)
  hold on
  plot(x,fap,'m','LineWidth',2)
  plot([-3*L 3*L],[0 0],'b',[0 0],[m M],'b') % ejes
  
  set(gca,'FontSize', letra)
  filename=sprintf('fourier-x-N=%02d-3L',N);
  print('-dpng',filename)
  print('-depsc2',filename)
  hold off
  pause
end

pause
plot(xx-2*L,ff,'m','LineWidth',2)
hold on
plot(xx,ff,'m','LineWidth',2)
plot(xx+2*L,ff,'m','LineWidth',2)
plot([-3*L:2*L:3*L], [0 0 0 0], 'mo', 'MarkerEdgeColor','m','MarkerFaceColor','m', ...
	'MarkerSize', 10)
plot([-3*L 3*L],[0 0],'b',[0 0],[m M],'b') % ejes
axis([-3*L-margen 3*L+margen m-margen M+margen])

set(gca,'FontSize', letra)
filename=sprintf('fourier-x-N=inf-3L');
print('-dpng',filename)
print('-depsc2',filename)