function [x,X]=bisektio(f,vali,tol)
% bisektio - funktion nollakohdan haku väliä puolittamalla.
% syötteet: ...
% Tulos: x: nollakohdan approksimaatio
%        X: koko iteraatiojono  ( x on X(end))
% Esim. 
%       nollak=bisektio(@sin,[pi/2 3*pi/2])
%       [x,X] = bisektio(@sin,[pi/2 3*pi/2])  %  x on X(end)

a=vali(1);b=vali(2);
if nargin==2 
    tol=eps;
end    
 X=[];  % Kerätään iteraatiojono tänne.
 while(abs(b-a)) > tol*abs(b)   
     x=(a+b)/2; X=[X x];  
     if sign(f(x)) == sign(f(b))
       b=x;
     else
       a=x;
     end
 end
   x=(a+b)/2;X=[X x]; 