Sei sulla pagina 1di 2

#include <iostream>

#include <cmath>


/*Funo para calcular a f(x)*/
double f (double x)
{
return x*x - sin(x) -1;
}

/* Programa Principal*/

using namespace std;
int main ()
{
/* Declarao de variaveis*/
double x,fa,fb,a,b,tol,fx;
int i;

/* Entrada de dados*/
cout <<"Raizes de equacoes - Metodo da Bissecao"<< endl;
cout <<""<< endl;
cout <<""<< endl;
cout <<"Informe o limite inferior"<< endl;
cin >> a;
cout <<"Informe o limite superior"<< endl;
cin >> b;
cout <<"Informe a tolerancia"<< endl;
cin >> tol;

/* Processamento e sada de dados*/
i=0;
cout <<""<< endl;
cout <<""<< endl;
cout <<" i a b xm fa fb fx
b-a "<< endl;

fa=f(a);
fb=f(b);
/* Repetir enquando no chegar na tolerncia desejada*/
while ( fabs (b-a) > tol)
{
/*Cclulo do xmdio*/
x= (a*fb-b*fa)/(fb-fa);
fx = f(x);

/* Exibir os valores da iterao i*/
cout <<" "<<i<<" "<<a<<" "<<b<<" "<<x<<" "<<fa<<"
"<<fb<<" "<<fx<<" "<<b-a<< endl;

/* Ajustar o valor de fa*/

if (fx*fb>=0)
fa = fa*fb/(fb+fx);
else
{
a = b;
fa = fb;
}

/* Se tolerancia for atendida em f(a) ou f(b), sair do lao while*/
if (fabs(fa) <=tol || fabs (fb) <=tol)
break;

i++;
}
return 0;
}

Potrebbero piacerti anche