function y = sekantna(f,x0,x1,delta,maxsteps)

% y=SEKANTNA(f,x0,x1,delta,maxsteps)  dela sekantno metodo za funkcijo f
% 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
% sekantna(f,2,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=x1;  x1=x0;  korak=0;                    						 
while (abs(xn-x1)>delta) && (korak<maxsteps)
   korak = korak+1;
   x0 = x1;
   x1 = xn;
   xn = x1-(x1-x0)/(f(x1)-f(x0))*f(x1);
   if (imag(xn)~=0)
      disp(sprintf('%3d: %15.15e %+15.15ei  %0.1e',[korak,real(xn),imag(xn),abs(xn-x1)]));  
   else
      disp(sprintf('%3d: %15.15e  %0.1e',[korak,xn,abs(xn-x1)]));  
   end
   pause(0.1)
end   

y = xn;