function [x,n]=tangenti_grafico(fun,dfun,x0,toll,xin,xfin)
%[x,n]=tangenti_grafico(fun,dfun,x0,toll,xin,xfin)
%calcola la soluzione dell'equazione fun(x)=0,
%con il metodo delle tangenti e disegna il grafico relativo
%dfun e' la derivata della funzione fun
%x0 e' il dato iniziale
%k e' la pendenza
%toll e' la tolleranza sulla soluzione
%xin e xfin sono gli estremi sull'asse x del grafico
%x e' la soluzione, n il numero di iterazioni
xcorr=x0;

MAXITER=1000; %numero massimo di iterazioni
figure;
fplot(fun,[xin xfin]);
grid on;
%axis auto;
hold on;

xsucc=xcorr-feval(fun,x0)/feval(dfun,xcorr);
   plot([xcorr, xsucc],[feval(fun,xcorr),0],'r','linewidth',2);
n=1;
while(abs(xcorr-xsucc)>toll)&&(n<MAXITER)
    n=n+1;
    xcorr=xsucc;
    xsucc=xcorr-feval(fun,xcorr)/feval(dfun,xcorr)
    plot([xcorr, xsucc],[feval(fun,xcorr),0],'r','linewidth',2);
    plot(xsucc,feval(fun,xsucc),'o');
end

if n==MAXITER
    error('Mancata convergenza');
end

x=xsucc;
end
