#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
// Definicja funkcji
double f(double x) {
return 0.25 * x * x - 2.0;
}
int main() {
double a = 2.0;
double b = 4.0;
double c;
double eps = 0.00001;
int iteracje = 0;
// Sprawdzenie warunku istnienia miejsca zerowego
if (f(a) * f(b) >= 0) {
cout << "Brak miejsca zerowego w podanym przedziale." << endl;
return 0;
}
// Metoda bisekcji
while ((b - a) / 2 > eps) {
c = (a + b) / 2;
if (f(c) == 0.0)
break;
else if (f(a) * f(c) < 0)
b = c;
else
a = c;
iteracje++;
}
cout << fixed << setprecision(6);
cout << "Miejsce zerowe funkcji: x = " << (a + b) / 2 << endl;
cout << "Wartosc funkcji w tym punkcie: f(x) = "
<< f((a + b) / 2) << endl;
cout << "Liczba iteracji: " << iteracje << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDxpb21hbmlwPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8vIERlZmluaWNqYSBmdW5rY2ppCmRvdWJsZSBmKGRvdWJsZSB4KSB7CiAgICByZXR1cm4gMC4yNSAqIHggKiB4IC0gMi4wOwp9CgppbnQgbWFpbigpIHsKICAgIGRvdWJsZSBhID0gMi4wOwogICAgZG91YmxlIGIgPSA0LjA7CiAgICBkb3VibGUgYzsKICAgIGRvdWJsZSBlcHMgPSAwLjAwMDAxOwogICAgaW50IGl0ZXJhY2plID0gMDsKCiAgICAvLyBTcHJhd2R6ZW5pZSB3YXJ1bmt1IGlzdG5pZW5pYSBtaWVqc2NhIHplcm93ZWdvCiAgICBpZiAoZihhKSAqIGYoYikgPj0gMCkgewogICAgICAgIGNvdXQgPDwgIkJyYWsgbWllanNjYSB6ZXJvd2VnbyB3IHBvZGFueW0gcHJ6ZWR6aWFsZS4iIDw8IGVuZGw7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9CgogICAgLy8gTWV0b2RhIGJpc2VrY2ppCiAgICB3aGlsZSAoKGIgLSBhKSAvIDIgPiBlcHMpIHsKICAgICAgICBjID0gKGEgKyBiKSAvIDI7CgogICAgICAgIGlmIChmKGMpID09IDAuMCkKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgZWxzZSBpZiAoZihhKSAqIGYoYykgPCAwKQogICAgICAgICAgICBiID0gYzsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGEgPSBjOwoKICAgICAgICBpdGVyYWNqZSsrOwogICAgfQoKICAgIGNvdXQgPDwgZml4ZWQgPDwgc2V0cHJlY2lzaW9uKDYpOwogICAgY291dCA8PCAiTWllanNjZSB6ZXJvd2UgZnVua2NqaTogeCA9ICIgPDwgKGEgKyBiKSAvIDIgPDwgZW5kbDsKICAgIGNvdXQgPDwgIldhcnRvc2MgZnVua2NqaSB3IHR5bSBwdW5rY2llOiBmKHgpID0gIgogICAgICAgICA8PCBmKChhICsgYikgLyAyKSA8PCBlbmRsOwogICAgY291dCA8PCAiTGljemJhIGl0ZXJhY2ppOiAiIDw8IGl0ZXJhY2plIDw8IGVuZGw7CgogICAgcmV0dXJuIDA7Cn0K