fork download
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. /* 収束条件 */
  5. #define EPS 1.0E-5
  6.  
  7. /* プロトタイプ宣言 */
  8. double f(double x); /* f(x) */
  9. double d(double x); /* d(x)=f'(x) */
  10.  
  11. int main()
  12. {
  13. int i; /* ループカウンタ */
  14. double x0; /* 初期値 */
  15. double x1; /* 解の近似値 */
  16.  
  17. i = 0;
  18. x0 = 0.89;
  19.  
  20. while( fabs(f(x0)) > EPS )
  21. {
  22. x1 = x0 - f(x0)/d(x0);
  23. x0 = x1;
  24. i++;
  25. }
  26. printf("解は %f (回数=%d)\n",x0 ,i);
  27.  
  28. return 0;
  29. }
  30.  
  31. double f(double x)
  32. {
  33. return sin(x)-pow(x,2.0);
  34. }
  35.  
  36. double d(double x)
  37. {
  38. return cos(x)-2*x;
  39. }
  40.  
Success #stdin #stdout 0s 16048KB
stdin
Standard input is empty
stdout
解は 0.876726 (回数=2)