function y = tangentna(f,df,x0,delta,maxsteps)

% y=TANGENTNA(f,df,x0,delta,maxsteps) dela tangentno metodo za funkcijo f
% z odvodom df z zacetnim priblizkom x0. Iteracija se konca, ko se zadnja 
% priblizka razlikujeta za manj kot delta ali ko prekoracimo maksimalno 
% stevilo korakov maxsteps.
% 
% Primer uporabe:
% f = @(x) x^3-5*x+1
% df = @(x) 3*x^2-5
% tangentna(f,df,2.1,1e-10,50)

% Bor Plestenjak 2020

% privzete vrednosti argumentov, če jih ne podamo
if nargin<4, delta=1e-12; end
if nargin<5, maxsteps=50; end

xn = x0;  x0 = Inf;  korak = 0;  

while (abs(xn-x0)>delta) && (korak<maxsteps)
   korak = korak+1;           						 
   x0 = xn;   
   xn = x0-f(x0)/df(x0);
   if (imag(xn)~=0)
      disp(sprintf('%3d: %15.15e %+15.15ei  %0.1e',[korak,real(xn),imag(xn),abs(xn-x0)]));  
   else
      disp(sprintf('%3d: %15.15e  %0.1e',[korak,xn,abs(xn-x0)]));  
   end
   pause(0.1)
end   

y = xn;