function r = Biseccion(f, inicio, fin)
 mitad = 0;
 iter = 1;
 while 1 %abs((fin - inicio)/fin) > 0.0001
     mitad = (fin+inicio)/2.0;
     
     fprintf('%02d %12.6f %12.6f %12.6f %12.6f %12.6f %12.6f\n', iter, inicio, mitad, fin,  f(inicio), f(mitad), f(fin));
     iter = iter +1;

   if abs(f(mitad)) <= 1e-6
       r = mitad;
       return;
   end;
   

   if f(inicio)*f(mitad) < 0 
     fin = mitad;
   else
     inicio = mitad;
   end;
 end;
     
 r= mitad;