function [df_a2, h, err_misto ] = rapp_incr(f,x,atol,rtol)
% 
%   calcolo di una approssimazione della derivata di f(x) 
%   usando le differenze in avanti con errore misto
% arr_ass/(atol+rtol*abs(f'(x))) < 1
%
% output df_a approssimazione della derivata
% h, il passo utilizzato
% err_misto, l'errore misto

h = 1;
df_a = ( f(x+h)- f(x) )/h;
df_a2 = ( f(x+h/2) - f(x) )/ (h/2) ;

err_misto = abs(df_a - df_a2)/(atol+rtol*abs(df_a2));

while err_misto >1 
    h=h/2;
    df_a = df_a2;
    df_a2 = ( f(x+h/2)-f(x) )/ (h/2) ;
    err_misto_p = err_misto;
    err_misto = abs(df_a - df_a2)/(atol+rtol*abs(df_a2))
end
    
if (err_misto == 0)
    err_misto = err_misto_p;
    if err_misto > 1
       warning(' err_misto > 1')
    end
end
end

