天天看點

用二分法求非線性方程的實根

用二分法求非線性方程的實根

用二分法求方程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;
}


           
用二分法求非線性方程的實根

繼續閱讀