

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
float funcion(float);

main()
{
 int t=0;
 float xinicial,xfinal,xresultante,a=0,error,precision;
 int iteraciones;
 clrscr();
 printf("METODO DE BISECCION PARA f(x)");
 printf("\nXinicial?");
 scanf("%f",&xinicial);
 printf("\nXfinal?");
 scanf("%f",&xfinal);
 printf("\nError aproximado?");
 scanf("%f",&precision);
 printf("\nCuantas iteraciones deseas?");
 scanf("%d",&iteraciones);
 for(;;)
 {
  xresultante=(xinicial+xfinal)/2.0;
  if(funcion(xresultante)==0)
  {
   break;
  }
  if((funcion(xinicial)*funcion(xresultante))<0)
  {
  xfinal=xresultante;
  }
  else
  {
   xinicial=xresultante;
  }
  error=(xresultante-a)/xresultante;
  if(error>0)
  {
   error=-1*error;
  }
  if(error<precision||t==iteraciones)
  {
   break;
  }
  a=xresultante;
 }
printf("\nXL:%f",xinicial);
printf("\nXU:%f",xfinal);
printf("\nerror:%f",error);
printf("\nXR:%f",xresultante);
getch();
}



float funcion(float x)
{
float fx;
fx=-2+(6*(x))-(4*(x*x))+(0.5*(x*x*x));
return(fx);
}
