%% Numerische Differentiation
% Wir betrachten numerische Differentiation der Funktion
%     f(x)=\sin (x)
%
% an einer Stelle x. Zur Approximation der zweiten Ableitung wird die Formel
%    \Delta_h(x):= \frac{f(x+h)-2 f(x)+f(x-h)}{h^2},
% mit einer Schrittweite h>0 verwendet (siehe Buch).
% Gezeigt werden der exakte Wert f''(x)=-\sin(x), und für k=1,\ldots,8:
% die Schrittweite h=10^{-k}
% die berechnete Approximation \tilde \Delta_h(x)
% der Fehler |\tilde \Delta_h(x)- f''(x)|.
%

x=0.3;
format long
exakt=ddf(x)
disp('-------');
format short
hk=zeros(8,1);   Fehlerk=zeros(8,1);
for k=1:8
    h=10^(-k)
    Approximation= (f(x+h) - 2*f(x)+f(x-h))/(h^2)
    Fehler=abs(Approximation - exakt)
    disp('---------------');
    hk(k)=h; Fehlerk(k)=Fehler;
end
loglog(hk,Fehlerk,'*');
xlabel('$h$','Interpreter','latex');
ylabel('Fehler');

%
%% Aktivität:
% Wählen Sie einen anderen x-Wert und beobachten Sie die Abhängigkeit  des Fehlers von h.  Sie können ggf. unter diesem Abschnitt eine andere Funktion f wählen.
%

function y=f(x)
% Funktion f
    y=sin(x);
    %y=x^5; % andere Funktion
end

function y=ddf(x)
% 2. Ableitung von f
    y=-sin(x);
    %y=20*x^3;  % andere zweite Ableitung
end