CÓDIGO PARA MÉTODO DE BISECCIONES SUCESIVAS EN C++
#include <iostream>
#include <cmath>
using namespace std;
double f(double x);
double biseccion ( double a, double b, double tol, int maxlter);
int main()
{
double a, b, tol, raiz;
int maxlter;
cout<< "por favor digite a: ";
cin>>a;
cout<< "por favor digite b: ";
cin>>b;
cout<< "por favor digite tol: ";
cin>>tol;
cout<< "por favor digite maxlter: ";
cin>>maxlter;
raiz=biseccion(a,b,tol,maxlter);
cout<<"La raiz es: "<< raiz <<endl;
system("pause");
return 0;
}
double f(double x)
{
return x*x*x+4*x*x-10;
}
double biseccion(double a, double b, double tol, int maxlter)
{
double c;
int nolter=0;
do
{
c=(a+b)/2;
if(f(a)*f(c)<0)
{
b=c;
}
else
{
a=c;
}
cout<<nolter<<"\t"<<a<<"\t"<<b<<"\t"<<c<<"\t"<<f(c)<<endl;
nolter++;
}
while((abs(f(c))>tol)&&(nolter<maxlter));
return c;
}
No hay comentarios:
Publicar un comentario