C语言习题 牛顿迭代法求根

时间:2023-01-07 22:59:14

Description

用牛顿迭代法求根。方程为ax3+bx2+cx+d=0。系数a,b,c,d的值一次为1,2,3,4,由主函数输入。求x在1附近的一个实根。求出根后由主函数输出。结果保留两位小数。

Input

系数a,b,c,d的值

Output

x在1附近的一个实根

Sample Input


1 2 3 4

Sample Output


-1.65

HINT

 主函数已给定如下,提交时不需要包含下述主函数


int main()
{
 double solut(double ,double ,double ,double);
 double a,b,c,d;
 scanf("%lf%lf%lf%lf",&a,&b,&c,&d);
 printf("%.2f",solut(a,b,c,d));;
 return 0;
}



  1. #include <;stdio.h>
  2. #include<math.h>
  3. double solut(double a,double b,double c,double d)
  4. {
  5.     doublex=1,x1=2,f,f1;
  6.    while(fabs(x1-x)>=0.00000001)
  7.     {
  8.        f=((a*x+b)*x+c)*x+d;
  9.        f1=(3*a*x+2*b)*x+c;
  10.        x=x1;
  11.        x1=x-f/f1;
  12.     }
  13.     return x1;
  14. }
  15. int main()
  16. {
  17.     double solut(double,double ,double ,double );
  18.     double a,b,c,d;
  19.    scanf("%lf%lf%lf%lf",&a,&b,&c,&d);
  20.    printf("%.2f",solut(a,b,c,d));;
  21.     return 0;
  22. }