Saludos, ya diseñé el método de bisección usando lenguaje c. el programa corre y funciona bien pero no logro que reconozca la funcion coseno (cos(x)) o seno (sin(x)) agradecería su ayuda. este es el código.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
double f(double);
int main()
{
int imax, iter;
double xi,xd,ea,em,test,xa,xaold;
printf("\n\nMETODO DE BISECCION\n\n");
printf("Introduce el extremo del intervalo por la izquierda\n");
scanf("%lf",&xi);
printf("Introduce el extremo del intervalo por la derecha\n");
scanf("%lf",&xd);
printf("Introduce el numero de iteraciones maximas\n");
scanf("%d",&imax);
printf("Introduce el error minimo del calculo\n");
scanf("%lf",&em);
iter=0;
xa=0;
if(f(xi)*f(xd)>0)
printf("No hay ninguna raiz en ese intervalo\n");
else{
printf("\nIter Raiz Error aprox.\n");
do{
iter++;
xaold=xa;
xa=(xi+xd)*0.5;
ea=fabs((xa-xaold)/2)*100;
test=f(xi)*f(xa);
if(test<0)
xd=xa;
else if(test>0)
xi=xa;
else
ea=0;
printf("\n%d %2.25lf %2.25lf", iter,xa,ea);
if(ea<em)
printf("\n\nEl valor aproximado es %2.25f\n\n",xa);
}while(ea>em && iter<imax);
}
return 0;
}
double f(double x)
{
return(cos(x));
}