二分法求多项式在-10 10间值的实现代码

时间:2021-11-26 07:07:04

代码如下所示:

复制代码 代码如下:


#include <stdio.h>
#include <math.h>

 

int main()
{
 float  x0,x1,x2,f1,f2,f0;  //x1,x2求两端值
 do
 {
  printf("input 2 num:\n");
  scanf("%f %f",&x1,&x2);
  f1=x1*((2*x1-4)*x1+3)-6;
  f2=x2*((2*x2-4)*x2+3)-6;
 }while(f1*f2>0);  //当输入两个数乘积符号不一致开始求值
 do
 {
  x0=(x1+x2)/2;
  f0=x0 * ((2 * x0 -4) * x1 +3)-6;//x0 * ((2 * x0 -4) * x1 +3)-6  要求的多项式
  if((f0*f1)<0)
  {
   x2=x0;
   f2=f0;
  }
  else
  {
   x1=x0;
   f1=f0;
  }
 }while(fabs(f0)>=1e-6);
 printf("x=%6.2f\n",x0);
 return 0;

}