
function [x,n,flag]=newton(f,f1,x0,toll,nmax)

n=1; x=x0; flag=1; % settings iniziali
while (n < nmax)
   if f1(x(n)) == 0 then % problemi: derivata prima nulla!
        return; % non serve mettere flag=1 (e' gia il valore attuale)
   else % calcola iterazione e suo step abs(x(n+1)-x(n))
      s=-f(x(n))/f1(x(n));
      x(n+1)=x(n)+s;
      step=abs(s);
      n=n+1; 
      if step < tol
         flag=0; return;
       end
    end 
end 