
function y = derivata_terza (f,x1,h,a,b)

% Uso:
%   y = derivata_terza (f,x1,h,a,b)
%
% Dati di ingresso:
%  f:       funzione vettoriale;
%  x2: punto in cui si vuole approssimare D3f(x_1);
%  h: passo della formula;
%  a,b: estremi dell'intervallo [a,b] di definizione della funzione 
%
% Dati di uscita:
%   y:       approssimazione di D3f(x_1).

if ((x1-h) < a) | ((x1+2*h) > b)
    y=NaN;
    fprintf('\n \t non si puo'' applicare il metodo per l''approssimazione della derivata terza');
    return;
else

f0=feval(f,x1-h);
f1=feval(f,x1);
f2=feval(f,x1+h);
f3=feval(f,x1+2*h);

% derivata terza calcolata numericamente
y=(f3-3*f2+3*f1-f0)/(h^3);

end



