fork(1) download
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. using namespace std;
  5.  
  6. // Definicja funkcji
  7. double f(double x) {
  8. return 0.25 * x * x - 2.0;
  9. }
  10.  
  11. int main() {
  12. double x0 = 2.0; // pierwszy punkt
  13. double x1 = 4.0; // drugi punkt
  14. double eps = 1e-6; // dokładność
  15. double x2;
  16. int max_iter = 100; // maksymalna liczba iteracji
  17.  
  18. if (f(x0) * f(x1) >= 0) {
  19. cout << "Warunek f(x0)*f(x1) < 0 nie jest spełniony!" << endl;
  20. return 1;
  21. }
  22.  
  23. int iter = 0;
  24. while (iter < max_iter) {
  25. x2 = x1 - f(x1) * (x1 - x0) / (f(x1) - f(x0));
  26.  
  27. if (fabs(x2 - x1) < eps) // warunek zbieżności
  28. break;
  29.  
  30. x0 = x1;
  31. x1 = x2;
  32. iter++;
  33. }
  34.  
  35. cout.precision(10);
  36. cout << "Miejsce zerowe (metoda siecznych): x = " << x2 << endl;
  37. cout << "Liczba iteracji: " << iter << endl;
  38.  
  39. return 0;
  40. }
  41.  
Success #stdin #stdout 0s 5320KB
stdin
Standard input is empty
stdout
Miejsce zerowe (metoda siecznych): x = 2.828427125
Liczba iteracji: 5