Está en la página 1de 2

#include <iostream>

#include <iomanip> //Setprecision


#include <math.h>
#define PRECISION 6
using namespace std;
void tabula(double a, double b);
double f(double x);
double f(double x)
{
return (x*exp(x)-1);
}
int main()
{
cout<<setprecision(PRECISION);
cout <<"\ncalculo de las raices utilizando el metodo de la biseccciom\n";
cout <<"|ningrese el intervalo inicial [a,b]:" << endl;
double a,b,tolerancia;
cout <<"\na=";
cin >> a;
cout << "\nb=";
cin >> b;
tabula (a,b);
cout << "\nEscoja el intervalo adecuado" <<endl;
cout << "\na=";
cin >> a;
cout << "b=";
cin >> b;
double t;
if (f(a)*f(b)>0)
{
cout <<"\nNO SE PUEDE APLICAR EL METODO DE LA BISECCION\n";
cout << "porque f(" << a <<") y f(" << b <<") tienen el mismo sig
no" << endl;
}
else
{
cout << "tolerancia =";
cin >> tolerancia;
do
{
t = ( a+b) / 2;
if (fabs(f(t)) <= tolerancia){
cout << "\n\nPara una tolerancia de " << tolerancia
la raiz de f es:" << t << endl;
break;
} else {
if (f(t)* f(a) > 0) {
a = t;
} else if (f(t)* f(b)>0) {
b=t;
}
}
} while (1);
}
cin.get();
cin.get();
return 0;

<< "

}
#define INTERVALOS 10
void tabula(double a, double b)
{
int puntos = INTERVALOS + 1;
double ancho = (b-a)/ INTERVALOS;
cout <<"\n\t\tx\tf(x)"
<< endl;
for (int i = 0; i < puntos; i++)
{
cout << "\t" << a << "\t" << f(a) << endl;
a = a + ancho;
}
}

También podría gustarte