#include <iostream>
#include <cmath>
using namespace std;
// Definicja funkcji
double f(double x)
{
return 0.25 * x * x - 2;
}
int main()
{
double a = 2.0;
double b = 4.0;
double c;
double eps = 1e-6; // dokładność
int iteracje = 0;
// Sprawdzenie warunku f(a)*f(b) < 0
if (f(a) * f(b) >= 0)
{
cout << "Warunek f(a) * f(b) < 0 nie jest spełniony." << endl;
return 0;
}
// Metoda bisekcji
while ((b - a) / 2 > eps)
{
c = (a + b) / 2;
if (f(a) * f(c) < 0)
b = c;
else
a = c;
iteracje++;
}
// Przybliżone miejsce zerowe
double miejsce_zerowe = (a + b) / 2;
cout << "Miejsce zerowe: " << miejsce_zerowe << endl;
cout << "Liczba iteracji: " << iteracje << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgovLyBEZWZpbmljamEgZnVua2NqaQpkb3VibGUgZihkb3VibGUgeCkKewogICAgcmV0dXJuIDAuMjUgKiB4ICogeCAtIDI7Cn0KCmludCBtYWluKCkKewogICAgZG91YmxlIGEgPSAyLjA7CiAgICBkb3VibGUgYiA9IDQuMDsKICAgIGRvdWJsZSBjOwogICAgZG91YmxlIGVwcyA9IDFlLTY7ICAgLy8gZG9rxYJhZG5vxZvEhwogICAgaW50IGl0ZXJhY2plID0gMDsKCiAgICAvLyBTcHJhd2R6ZW5pZSB3YXJ1bmt1IGYoYSkqZihiKSA8IDAKICAgIGlmIChmKGEpICogZihiKSA+PSAwKQogICAgewogICAgICAgIGNvdXQgPDwgIldhcnVuZWsgZihhKSAqIGYoYikgPCAwIG5pZSBqZXN0IHNwZcWCbmlvbnkuIiA8PCBlbmRsOwogICAgICAgIHJldHVybiAwOwogICAgfQoKICAgIC8vIE1ldG9kYSBiaXNla2NqaQogICAgd2hpbGUgKChiIC0gYSkgLyAyID4gZXBzKQogICAgewogICAgICAgIGMgPSAoYSArIGIpIC8gMjsKCiAgICAgICAgaWYgKGYoYSkgKiBmKGMpIDwgMCkKICAgICAgICAgICAgYiA9IGM7CiAgICAgICAgZWxzZQogICAgICAgICAgICBhID0gYzsKCiAgICAgICAgaXRlcmFjamUrKzsKICAgIH0KCiAgICAvLyBQcnp5YmxpxbxvbmUgbWllanNjZSB6ZXJvd2UKICAgIGRvdWJsZSBtaWVqc2NlX3plcm93ZSA9IChhICsgYikgLyAyOwoKICAgIGNvdXQgPDwgIk1pZWpzY2UgemVyb3dlOiAiIDw8IG1pZWpzY2VfemVyb3dlIDw8IGVuZGw7CiAgICBjb3V0IDw8ICJMaWN6YmEgaXRlcmFjamk6ICIgPDwgaXRlcmFjamUgPDwgZW5kbDsKCiAgICByZXR1cm4gMDsKfQ==