求解方程 语言:c

求解方程

时限:1000ms 内存限制:10000K  总时限:3000ms

描述:

用牛顿迭代法求方程2x^3-4x^2+3xsinx-6=0的根,要求误差小于10的-6次方。

输入:

一个浮点数,表示起始点。

输出:

一个浮点数,为方程的根。

输入样例:

1.0

输出样例:

2.064076

提示:

 

来源:

代码:

  1. #include <stdio.h>
  2. #include <math.h>
  3. float fun1(float a);
  4. float fun2(float b);
  5. int main()
  6. {
  7. float x0,x1;
  8. float a,b;
  9. scanf("%f",&x0);
  10. while(1)
  11. {
  12. a=fun1(x0);
  13. b=fun2(x0);
  14. x1=x0-a/b;
  15. if(fabs(x1-x0)<=0.000001)
  16. break;
  17. else
  18. x0=x1;
  19. }
  20. printf("%.6f\n",x0);
  21. return 0;
  22. }
  23. float fun1(float a)
  24. {
  25. return 2*a*a*a-4*a*a+3*a*sin(a)-6;
  26. }
  27. float fun2(float b)
  28. {
  29. return 6*b*b-8*b+3*sin(b)+3*b*cos(b);
  30. }

posted @ 2011-05-29 17:07  itbird  Views(274)  Comments(0Edit  收藏  举报