二分求根法

Bisection method, 是一种方程式根的近似值求法。

二分法求方程的近似解
用实例来解答,比如求 Y^3+Y-10=0的在区间Y[0,3]之间的根,先将Y=0代入方程左边,左边=-10,将Y=3代入左边,左边=20,这样已经创造出了一正一负,在0-3之间必有解,找中点.Y=1.5代入,如果是正,就保留负的那一头,如果是负就保留正的那一头,然后重复这一过程,不断找中点,只到等式左边接近或等于零,就解得了近似根或准确根.
//例1:用二分法求方程x^3+4x-10=0在区间[1,2]内的根(精确到0.00001)
代入1得-6,代入2得6,满足二分求方程的解

#include 
#include 
double f(double x)
{
  return pow(x,3)+4*x-10;
}
int main()
{
  double a=1, b=2, limit=0.00001;//a,b为区间,limit为精确程度
  if(f(a)*f(b)>0)
    printf("无法用二分法求解\n"); //假设f(a)=7,f(b)=13,f(x)=0?
  else {
    while((b-a)>limit {
      if(f((a+b)/2)*f(b)<0) //一边为正,一边为负
        a=(a+b)/2;
      else //同号
        b=(a+b)/2;
  }
    printf("%.5f\n%.5f",a,b);
  }
   return 0;
}

你可能感兴趣的:(二分求根法)