用二分法求非線性方程的實根
用二分法求方程f(x)=x^3-2x-5=0在區間[2,3]内的根
#include <stdio.h>
#include <math.h>
float f(float x);
void main()
{
float a,b,e,x;
printf("請分别輸入左區間a,右區間b和精确度e\n");
scanf("%f%f%f",&a,&b,&e);
for(;;)
{
x=(a+b)/2;
if(f(a)*f(x)<0)
{
b=x;
if(fabs(b-a)<e)break;
else continue;
}
else if(f(b)*f(x)<0)
{
a=x;
if(fabs(b-a)<e)break;
else continue;
}
else if(f(a)==0||f(b)==0)break;
else
{
printf("選區錯誤,請退出程式,重新運作\n");
break;
}
}
if(f(a)==0||f(b)==0)
{
if(f(a)==0)x=a;
else x=b;
}
else{
x=(a+b)/2;
}
printf("the result is %f\n",x);
}
float f(float a)
{
float x=a*a*a-2*a-5;
return x;
}