function Hausaufgabe8
    fprintf('Werte aus Interpolation:\n');
    fprintf('[1.4, 1.6]\n');
    interpLog([1.4 1.6],1.53);
    fprintf('[1.5, 1.6]\n');
    interpLog([1.5 1.6],1.53);
    fprintf('[1.4 1.5 1.6]\n');
    interpLog([1.4 1.5 1.6],1.53);
    fprintf('[1.5, 1.6, 1.7]\n');
    interpLog([1.5 1.6 1.7],1.53);
    fprintf('[1.4, 1.5, 1.6, 1.7]\n');
    interpLog([1.4 1.5 1.6 1.7],1.53);
end


% Eingabe: Zeilenvektor x der n Stützstellen, an dem die Werte des ln
%          bekannt sind
%          Stelle z, an der interpoliert werden soll
% Ausgabe: Wert des Interpolationspolynoms (n-1)-ten Grades an
%          der Stelle z, berechnet mithilfe des Newton und
%          Horner-Schemas

function interpLog(x,z)
n=length(x);

% Newton-Koeffizienten berechnen
% Matrix A speichert das gesamte Rechenschema,
% die 'wichtigen' Eintr�ge stehen in A(1,:)
A=log(x)';
for i=2:n
  for j=1:(n-i+1)
    A(j,i)=(A(j+1,i-1)-A(j,i-1))/(x(j+i-1)-x(j));
  end
end

% Auswertung des Polynoms an der Stelle z mittels Horner-Schema
erg=0;
for i=n:-1:2
  erg=erg+A(1,i);
  erg=erg*(z-x(i-1));
end
erg=erg+A(1:1);

% Berechnung des absoluten Fehlers
fehler=abs(erg-log(z));

% Berechnung des relativen Fehlers
fehler2 = fehler/log(z);

% Ausgabe der Werte
fprintf('\nWert des Interpolationspolynoms für ln(%g): %2.8f',z,erg)
fprintf('\nabsoluter Fehler: %2.8f\n',fehler)
fprintf('relativer Fehler: %2.8f\n\n',fehler2)

end

% Protokoll der Ausgabe:
% 
% Hausaufgabe9
% Werte aus Interpolation:
% [1.4, 1.6]
% 
% Wert des Interpolationspolynoms für ln(1.53): 0.42326764
% absoluter Fehler: 0.00200009
% relativer Fehler: 0.00470314
% 
% [1.5, 1.6]
% 
% Wert des Interpolationspolynoms für ln(1.53): 0.42482666
% absoluter Fehler: 0.00044107
% relativer Fehler: 0.00103716
% 
% [1.4 1.5 1.6]
% 
% Wert des Interpolationspolynoms für ln(1.53): 0.42529437
% absoluter Fehler: 0.00002664
% relativer Fehler: 0.00006263
% 
% [1.5, 1.6, 1.7]
% 
% Wert des Interpolationspolynoms für ln(1.53): 0.42523762
% absoluter Fehler: 0.00003011
% relativer Fehler: 0.00007081
% 
% [1.4, 1.5, 1.6, 1.7]
% 
% Wert des Interpolationspolynoms für ln(1.53): 0.42526978
% absoluter Fehler: 0.00000205
% relativer Fehler: 0.00000481
%
% Fazit:
% Man kann erkennen, dass mit steigendem Polynomgrad auch die Güte
% der Näherung an der betreffenden Stelle steigt.
% Insbesondere bei den Polynomen ersten Grades hat auch die Wahl der
% Stützstellen einen Einfluss auf die Güte; die "enger liegenden"
% Stützstellen [1.5 1.6] liefern das bessere Ergebnis.
