一起分析二分法求方程的根
#include <stdio.h>
#include <math.h>
#define FOOT 0.00001
//二分法求解方程3*exp(x)*x-5=0,
float f(float x){//所求方程,
float y;
y=3*exp(x)*x-5;
return y;
}
main()
{
float a,b,c;
scanf("%f %f",&a,&b);//输入根所在的范围
c=0;
do{
if(fabs(f(a))<FOOT)
printf("%f\n",a);
if(fabs(f(b))<FOOT)
printf("%f\n",b);// 看a,b是不是根
else {
c=(a+b)/2;//取中间值,“二分法”
if(fabs(f(c))<FOOT)
printf("%f\n",c);
else if(f(c)*f(a)>0)
a=c;
else if(f(c)*f(a)<0)
b=c;
}
}while(fabs(c-a)>=FOOT);
}
//但是这个程序有点问题,能分析一下吗?希望大爱互相进步~~
[此贴子已经被作者于2007-8-23 8:59:05编辑过]