thrice.c
上传用户:bjtelijie
上传日期:2010-01-01
资源大小:87k
文件大小:1k
源码类别:

数学计算

开发平台:

Visual C++

  1. /* 用弦截法求解方程的根 */
  2. # include <stdio.h>
  3. # include <math.h>
  4. float f(float x)    
  5. {
  6. float y;
  7. y = ((x-8.0)*x+12.0)*x - 30.0;
  8. return y;
  9. }
  10. float xpoint(float x1, float x2)    /* 定义函数xpoint,求出弦与x轴的焦点 */    
  11. {
  12. float y;
  13. y = (x1*f(x2)-x2*f(x1)) / (f(x2)-f(x1));
  14. return y;
  15. }
  16. float root(float x1, float x2)    /* 定义函数root,求近似根 */
  17. {
  18. float x, y, y1;
  19. y1 = f(x1);
  20. do
  21. {
  22. x = xpoint(x1, x2);
  23. y = f(x);
  24. if(y*y1 > 0)    /* f(x)和f(x1)同符号 */
  25. {
  26. y1 = y;
  27. x1 = x;
  28. }
  29. else
  30. x2 = x;
  31. } while(fabs(y) >= 0.0001);
  32. return x;
  33. }
  34. void main()    /* 主函数 */
  35. {
  36. float x1, x2, f1, f2, x;
  37. do
  38. {
  39. printf("Please input x1, x2:n");
  40. scanf("%f, %f", &x1, &x2);
  41. f1 = f(x1);
  42. f2 = f(x2);
  43. } while(f1*f2 > 0);
  44. x = root(x1, x2);
  45. printf("A root of equation is %9.6fn", x);
  46. }