#include <iostream>
#include <cmath>
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 eps = 0.00001; // dokładność
double c;
// 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;
}
cout << "Miejsce zerowe funkcji: x = " << (a + b) / 2 << endl;
cout << "Wartosc funkcji w tym punkcie: f(x) = " << f((a + b) / 2) << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKLy8gRGVmaW5pY2phIGZ1bmtjamkKZG91YmxlIGYoZG91YmxlIHgpIHsKICAgIHJldHVybiAwLjI1ICogeCAqIHggLSAyLjA7Cn0KCmludCBtYWluKCkgewogICAgZG91YmxlIGEgPSAyLjA7CiAgICBkb3VibGUgYiA9IDQuMDsKICAgIGRvdWJsZSBlcHMgPSAwLjAwMDAxOyAgIC8vIGRva8WCYWRub8WbxIcKICAgIGRvdWJsZSBjOwoKICAgIC8vIFNwcmF3ZHplbmllIHdhcnVua3UgaXN0bmllbmlhIG1pZWpzY2EgemVyb3dlZ28KICAgIGlmIChmKGEpICogZihiKSA+PSAwKSB7CiAgICAgICAgY291dCA8PCAiQnJhayBtaWVqc2NhIHplcm93ZWdvIHcgcG9kYW55bSBwcnplZHppYWxlLiIgPDwgZW5kbDsKICAgICAgICByZXR1cm4gMDsKICAgIH0KCiAgICAvLyBNZXRvZGEgYmlzZWtjamkKICAgIHdoaWxlICgoYiAtIGEpIC8gMiA+IGVwcykgewogICAgICAgIGMgPSAoYSArIGIpIC8gMjsKCiAgICAgICAgaWYgKGYoYykgPT0gMC4wKQogICAgICAgICAgICBicmVhazsKICAgICAgICBlbHNlIGlmIChmKGEpICogZihjKSA8IDApCiAgICAgICAgICAgIGIgPSBjOwogICAgICAgIGVsc2UKICAgICAgICAgICAgYSA9IGM7CiAgICB9CgogICAgY291dCA8PCAiTWllanNjZSB6ZXJvd2UgZnVua2NqaTogeCA9ICIgPDwgKGEgKyBiKSAvIDIgPDwgZW5kbDsKICAgIGNvdXQgPDwgIldhcnRvc2MgZnVua2NqaSB3IHR5bSBwdW5rY2llOiBmKHgpID0gIiA8PCBmKChhICsgYikgLyAyKSA8PCBlbmRsOwoKICAgIHJldHVybiAwOwp9Cg==