fork download
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. using namespace std;
  5.  
  6. // Definicja funkcji
  7. double f(double x)
  8. {
  9. return x * x * x - x - 2; // f(x) = x^3 - x - 2
  10. }
  11.  
  12. int main()
  13. {
  14. double a = 1.0; // początek przedziału
  15. double b = 2.0; // koniec przedziału
  16. double epsilon = 0.000001; // dokładność
  17. double c;
  18. int iteracje = 0;
  19.  
  20. // Sprawdzenie warunku metody bisekcji
  21. if (f(a) * f(b) >= 0)
  22. {
  23. cout << "Brak zmiany znaku w przedziale." << endl;
  24. return 0;
  25. }
  26.  
  27. // Algorytm bisekcji
  28. while ((b - a) > epsilon)
  29. {
  30. c = (a + b) / 2.0;
  31.  
  32. if (f(c) == 0.0)
  33. break;
  34. else if (f(c) * f(a) < 0)
  35. b = c;
  36. else
  37. a = c;
  38.  
  39. iteracje++;
  40. }
  41.  
  42. cout << "Miejsce zerowe funkcji: " << (a + b) / 2.0 << endl;
  43. cout << "Liczba iteracji: " << iteracje << endl;
  44.  
  45. return 0;
  46. }
  47.  
Success #stdin #stdout 0s 5304KB
stdin
Standard input is empty
stdout
Miejsce zerowe funkcji: 1.52138
Liczba iteracji: 20