function xv = secanti(fun,x0,x,tol,maxit)

% xv = secanti(fun,x0,x,tol,maxit)
% 
% Implementa il metodo delle secanti per il
% calcolo di una radice della equazione 
% non lineare
%
% fun(x) = 0
%
% Input: fun  --> funzione di cui si vuole la radice
%        x0   --> primo punto di innesco
%         x   --> secondo punto di innesco
%       tol   --> tolleranza per il criterio di arresto
%      maxit  --> numero massimo di iterazioni consentite
%
% Output: xv --> vettore delle approssimazioni successive
%                calcolate durante la applicazione del metodo.
%                L'ultima componente e' la approssimazione
%                che soddisfa il criterio di arresto



f0   = feval(fun,x0);

it = 1;
xv = x;

while ((abs(x-x0)>tol)&(it<=maxit))

    f   = feval(fun,x);
    df  = (f-f0)/(x-x0);

    if (df==0), 
       error('Metodo delle secanti non applicabile');
    end

    x0 = x;
    f0 = f;

    x  = x - f/df;

    it = it + 1;
    xv(it) = x;
end

if (abs(x-x0)>tol),
   error('Il metodo delle secanti non converge')
end
