function [X,nit] = regfal(f,x0,x1,prec,maxit)
% [X,nit] = regfal(f,x0,x1,prec,maxit)
%   Reseni rovnice f(x)=0 pomoci metody regula falsi 
%   - nehotova verze  programu k dodelani.
%
% Vstup:
%     f - anonymni funkce
% x0,x1 - pocatecni iterace
%  prec - presnost, implicitni hodnota je 10^-6
% maxit - maximalni pocet iteraci, implicitni hodnota je 50
%
% Vystup:
%     X - priblizne reseni
%   nit - pocet pouzitych iteraci
% 
% Priklad - vypocet treti odmocniny z 5:
%   f=@(x)x.^3-5;[x,n]=regfal(f,1,3);

if nargin < 3
    error('Malo vstupnich promennych!');
end

% presnost
if (nargin < 4)
    prec = 0.000001;
end

% maximalni pocet iteraci
if (nargin < 5)
    maxit = 50;
end

f0 = f(x0);
f1 = f(x1);
if f0*f1 > 0
    error('Funkcni hodnoty v pocatecnich iteracich maji stejna znamenka!');
end
x2 = x1-f1*(x1-x0)/(f1-f0);     % nova iterace
f2 = f(x2);
nit= 2;                         % pocet iteraci

while abs(x2-x1)>prec && nit<maxit

   nit = nit + 1;

   if nit > maxit
       warning('Bylo dosazeno maximalniho poctu iteraci!');
       break;
   end

end     % konce cyklu while

X=x2;
end		% konec funkce

