public class Bisecciones {
    static public void main(String args[])
    {
      System.out.printf("La solucion esta en %f\n", Biseccion(0,1));
    }

    static public double Biseccion(double ini, double fin)
    {
      double mitad;    mitad = (fin + ini)/2.0;
      System.out.printf("f_1(%f) = %f f_m(%f) = %f f_2(%f) = %f\n", 
              ini, funcion(ini), mitad, funcion(mitad), fin, funcion(fin));
      if((fin - ini) > 1e-12)
      {
        if(funcion(ini)*funcion(mitad) < 0)
          return Biseccion(ini, mitad);
        else return Biseccion(mitad, fin);
      }
      else return (mitad);
    }

    static public double funcion(double x)
    {
      return (x - Math.cos(x));
    }
}
