
function demo_differenze_centrali

% funzione
f=@(x) exp(x)-cos(x);

% derivata seconda: D2(-cos(x))=cos(x)
D2f=@(x) exp(x)+cos(x);

% punti
x=linspace(0,1,100);

% intervallo di definizione (comprende [0,1])
a=-1; b=2;

% passo
h=10^(-3);

% calcolo derivate seconde (numericamente)
for k=1:100
    xk=x(k);
    [y2(k), err_est(k)] = differenze_centrali (f,xk,h,a,b);
end

% valutazione delle derivate seconde "esatte"
D2fx=feval(D2f,x);

% massimo errore
ae=abs(D2fx-y2);
max_ae=max(ae);

% stima del massimo errore
max_est=max(err_est);

% stampa
fprintf('\n \t max_ae: %1.3e max_est: %1.3e \n',max_ae,max_est);

% plot
semilogy(x,ae,'r-+')

% >> demo_differenze_centrali
%  	 max_ae: 1.814e-07 max_est: 9.869e-06 
% >>