function A25(Funktion)
% A25(Funktion)
%
% Untersuchung des Konvergenzverhaltens von trigonometrischen Polynomen
% Eingabe: Funktion:
%              0 für f(x) = exp(sin(x))
%              1 für f(x) = sin(10*x)

tt = linspace(-pi,pi,200);

nVec = 2:20;
err  = zeros(size(nVec));

for Count=1:length(err)
   n  = nVec(Count);
   N  = 2*n+1;

   t  = 2*pi*(-n:n)/N;
   
   if Funktion==0
      f  = exp(sin(t));
      ff = exp(sin(tt));
   else
      f  = sin(10*t);
      ff = sin(10*tt);
   end;
   
   % Fourier-Koeffizienten bestimmen
   d = zeros(1,N);
   for k=-n:n
      d(k+n+1) = sum(f.*exp(-1i*k*t))/N;
   end;
   
   % a und b ausrechnen
   a =  real(d(n+2:end))*2;
   b = -imag(d(n+2:end))*2;
   
   % Polynom zusammenbasteln
   P = zeros(size(tt));
   for j=1:length(P)
      P(j) = d(n+1) + sum(a.*cos((1:n)*tt(j)) + b.*sin((1:n)*tt(j)));
   end;
   
   if 0   % Hier eine 1 eintragen, wenn man die Interpolation verfolgen will
      clf;
      plot(t,f,'.k');
      hold on;
      plot(tt,ff,'r');
      plot(tt,P,'k');
      drawnow;
   end;
   
   % Fehler ausrechnen ...
   err(Count) = max(abs(P-ff));
   fprintf('%3i/%3i\n',Count,length(nVec));
end;

% ... und Fehler plotten
semilogy(nVec,err,'.-k');

