function f = Hausaufgabe2()
% Vektor der n erzeugen, die Rekursionsformel soll 20 Mal angewendet werden, es soll aber wegen
% der Uebersichtlichkeit nur jedes zweite Ergebnis ausgegeben werden

n=(2*ones(10,1)).^([2:2:20]');

% Anfangswerte setzen
s(1)=4*sqrt(2);
sigma(1)=4*2;

% Algorithmus 1: Beide Rekursionsformeln werden 20 Mal angewendet, jedes zweite Ergebnis in s und sigma gespeichert
temp_s=sqrt(2);
temp_sig=2;
for i=2:10
  for j=1:2
    temp_s=sqrt(2-sqrt(4-temp_s^2));
    temp_sig=2/temp_sig*(sqrt(4+temp_sig^2)-2);
  end
  s(i)=temp_s*n(i);
  sigma(i)=temp_sig*n(i);
end

% Differenz der oberen und unteren Schranke berechnen, zur Abschaetzung der Genauigkeit der Naeherung
diff=sigma-s;
    
% Tabelle ausgeben
fprintf('Ergebnisse fuer Algorithmus 1:\n\n')
fprintf('           n        n*s_n      n*sig_n    differenz\n')
for i=1:10
  fprintf('%12g %12f %12f %12f\n',n(i),s(i),sigma(i),diff(i))
end

% Algorithmus 2: Beide Rekursionsformeln werden 20 Mal angewendet, jedes zweite Ergebnis in s und sigma gespeichert
temp_s=sqrt(2);
temp_sig=2;
for i=2:10
  for j=1:2
    temp_s=temp_s/sqrt(2+sqrt(4-temp_s^2));
    temp_sig=temp_sig/(1+sqrt(1+temp_sig^2/4));
  end
  s(i)=temp_s*n(i);
  sigma(i)=temp_sig*n(i);
end

% Differenz der oberen und unteren Schranke berechnen, zur Abschaetzung der Genauigkeit der Naeherung
diff=sigma-s;
    
% Tabelle ausgeben
fprintf('\n\nErgebnisse fuer Algorithmus 2:\n\n')
fprintf('           n        n*s_n      n*sig_n    differenz\n')
for i=1:10
  fprintf('%12g %12f %12f %12f\n',n(i),s(i),sigma(i),diff(i))
end

%Protokoll der Ausgabe:
% Hausaufgabe2
% Ergebnisse fuer Algorithmus 1:
% 
%            n        n*s_n      n*sig_n    differenz
%            4     5.656854     8.000000     2.343146
%           16     6.242890     6.365196     0.122305
%           64     6.280662     6.288237     0.007574
%          256     6.283028     6.283501     0.000473
%         1024     6.283175     6.283205     0.000030
%         4096     6.283185     6.283187     0.000002
%        16384     6.283185     6.283185     0.000000
%        65536     6.283185     6.283185     0.000000
%       262144     6.283186     6.283182    -0.000004
%  1.04858e+06     6.283193     6.283201     0.000008
% 
% 
% Ergebnisse fuer Algorithmus 2:
% 
%            n        n*s_n      n*sig_n    differenz
%            4     5.656854     8.000000     2.343146
%           16     6.242890     6.365196     0.122305
%           64     6.280662     6.288237     0.007574
%          256     6.283028     6.283501     0.000473
%         1024     6.283175     6.283205     0.000030
%         4096     6.283185     6.283187     0.000002
%        16384     6.283185     6.283185     0.000000
%        65536     6.283185     6.283185     0.000000
%       262144     6.283185     6.283185     0.000000
%  1.04858e+06     6.283185     6.283185     0.000000
