function f = Hausaufgabe3()
% Vektor der zu untersuchenden x erzeugen
x=[0 pi/18 pi/9 pi/6]';
n = length(x);

% sinus "exakt berechnen"
sin_ex=sin(x);

% Abbruchtoleranz
tol = 1e-6;


sin_tay = zeros(n,1); % Sinus als Taylorreihe
rel_fehl = zeros(n,1); % relative Fehler
rest = zeros(n,1); % Restgliedindizes

for j=1:n
   rest_idx = 0;
   restglied = 1/2*x(j)^2;
   
   while restglied > tol
       rest_idx = rest_idx + 1;
       restglied = 1/factorial((2*rest_idx + 2)) * x(j)^(2*rest_idx + 2);    
   end
   
   sin_tay(j) = x(j);
   
   for i=1:rest_idx
     sin_tay(j) = sin_tay(j) + (-1)^i*1/factorial(2*i+1)*x(j)^(2*i+1);
   end
   
   rel_fehl(j) = abs((sin_ex(j)-sin_tay(j))/sin_ex(j));
   rest(j) = 2*rest_idx+1;
   
end

% Tabelle ausgeben
fprintf('Vergleich von sinus "exakt" und sinus mit Taylor-Entwicklung:\n\n')
fprintf('           x        Funktion sin "exakt"      Funktion sin naeherungsweise   relativer Fehler   Restgliedindex\n')
for i=1:n
  fprintf('%11.10f        %15.14f          %15.14f               %15.14f   %i\n',x(i),sin_ex(i),sin_tay(i),rel_fehl(i),rest(i));
end;
end

% Protokoll der Ausgabe:
% Hausaufgabe3
% Vergleich von sinus "exakt" und sinus mit Taylor-Entwicklung:
% 
%            x        Funktion sin "exakt"      Funktion sin naeherungsweise   relativer Fehler   Restgliedindex
% 0.0000000000        0.00000000000000          0.00000000000000                           NaN   1
% 0.1745329252        0.17364817766693          0.17364817864535               0.00000000563452   5
% 0.3490658504        0.34202014332567          0.34202014311387               0.00000000061926   7
% 0.5235987756        0.50000000000000          0.49999999186902               0.00000001626195   7

% - je größer x ist, desto mehr Reihenglieder werden benötigt