function y = regula_falsi(f,a,b,delta)

% y=REGULA_FALSI(f,a,b) dela metodo regula_falsi za funkcijo f na 
% intervalu [a,b], postopek se konca, ko je interval manjsi od delta.
%
% Primer uporabe:
% f = @(x) x^3-5*x+1
% regula_falsi(f,1,3,1e-10)

% Bor Plestenjak 2020

fa = f(a);  fb = f(b);  
korak=0;            	% nepomembno, stejemo korake za izpis na zaslon
if sign(fa)==sign(fb) 
   disp('Nepravilen interval')
   return
end
oldc = b; c = inf;
while abs(oldc-c)>delta
   oldc = c; 
   c = b-(b-a)/(f(b)-f(a))*f(b);
   korak = korak+1;           		% nepomembno, stejemo korake za izpis na zaslon
   disp(sprintf('%3d: %18.15f',[korak,c]))    % izpisemo trenutno sredinsko tocko
   fc = f(c);
   if sign(fa)==sign(fc)            % dovolj je le preverjanje predznakov
      a = c;  fa = fc;
   else
      b = c;  fb = fc;
   end
   pause(0.1)                       % da ne gre prehitro...
end

y=c;