fork download
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. double funktion(double x)
  5. {
  6. return -2*x*x+4;
  7. }
  8.  
  9. double ableitung(double x)
  10. {
  11. return -4*x;
  12. }
  13.  
  14. void ausgabe(int k, double x_k, double fx_k)
  15. {
  16. printf("%d %G %G\n", k, x_k, fx_k);
  17. }
  18.  
  19. double newton_operator(double x)
  20. {
  21. return x - funktion(x) / ableitung(x);
  22. }
  23.  
  24. int main(void)
  25. {
  26. double x1 = 0, // x_k
  27. x2 = -1; // x_k+1
  28. int k = 0;
  29. double epsilon = 1E-10;
  30.  
  31. while(fabs(x2-x1) >= epsilon)
  32. {
  33. x1 = x2;
  34. k = k+1;
  35. x2 = newton_operator(x1);
  36. ausgabe(k, x1, funktion(x1));
  37. }
  38. return 0;
  39. }
  40.  
Success #stdin #stdout 0s 4512KB
stdin
Standard input is empty
stdout
1 -1 2
2 -1.5 -0.5
3 -1.41667 -0.0138889
4 -1.41422 -1.20146E-05
5 -1.41421 -9.02123E-12