#include <iostream>
#include <math.h>
using namespace std;
float funcion(float x)
{ return ( cos(x) - log(x) );
}
int main ()
{ int i, iteraciones;
float a, b, R, V = 0.0, error, precision;
cout << "Metodo de biseccion\n" ;
cout << "Valor de intervalo de inicio\t";
cin >> a;
cout << "Valor de intervalo de fin\t";
cin >> b;
cout<< "Error aproximado\t\t";
cin >> precision;
cout << "Cuantas iteraciones deseas\t";
cin >> iteraciones;
cout << "\nIt\tXl\t\t\tXu\t\t\tXr\t\t\tEa\n\n";
for (i=1;i<=iteraciones;i++)
{ R=(a + b)/2;
cout << i << "\t" << a << "\t\t\t" << b << "\t\t\t" << R;
if ( funcion(R)==0 )
break;
if ((funcion(a) * funcion(R))<0)
b = R;
else
a = R;
error=(R-V)/R*100;
cout << "\t\t\t" <<error << "\n";
if (error<0)
error=(-1)*error;
if (error<precision||i>=iteraciones)
break;
V=R;
}
cout<< "\n\nValor de la raiz\t" << R <<"\n";
system("pause");
}