#include <iostream>
#include <cmath>
using namespace std;
double f(double x) {
return 0.25 * x * x - 2.0;
}
int main() {
double x0 = 2.0; // pierwszy punkt
double x1 = 4.0; // drugi punkt
double x2;
double eps = 0.0001;
// Sprawdzenie warunku początkowego
if (f(x0) * f(x1) >= 0) {
cout << "Warunek f(x0)*f(x1) < 0 nie jest spelniony!" << endl;
return 1;
}
// Metoda siecznych
do {
x2 = x1 - f(x1) * (x1 - x0) / (f(x1) - f(x0));
x0 = x1;
x1 = x2;
} while (fabs(f(x2)) > eps);
cout << "Miejsce zerowe: x = " << x2 << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKZG91YmxlIGYoZG91YmxlIHgpIHsKICAgIHJldHVybiAwLjI1ICogeCAqIHggLSAyLjA7Cn0KCmludCBtYWluKCkgewogICAgZG91YmxlIHgwID0gMi4wOyAgIC8vIHBpZXJ3c3p5IHB1bmt0CiAgICBkb3VibGUgeDEgPSA0LjA7ICAgLy8gZHJ1Z2kgcHVua3QKICAgIGRvdWJsZSB4MjsKICAgIGRvdWJsZSBlcHMgPSAwLjAwMDE7CgogICAgLy8gU3ByYXdkemVuaWUgd2FydW5rdSBwb2N6xIV0a293ZWdvCiAgICBpZiAoZih4MCkgKiBmKHgxKSA+PSAwKSB7CiAgICAgICAgY291dCA8PCAiV2FydW5layBmKHgwKSpmKHgxKSA8IDAgbmllIGplc3Qgc3BlbG5pb255ISIgPDwgZW5kbDsKICAgICAgICByZXR1cm4gMTsKICAgIH0KCiAgICAvLyBNZXRvZGEgc2llY3pueWNoCiAgICBkbyB7CiAgICAgICAgeDIgPSB4MSAtIGYoeDEpICogKHgxIC0geDApIC8gKGYoeDEpIC0gZih4MCkpOwogICAgICAgIHgwID0geDE7CiAgICAgICAgeDEgPSB4MjsKICAgIH0gd2hpbGUgKGZhYnMoZih4MikpID4gZXBzKTsKCiAgICBjb3V0IDw8ICJNaWVqc2NlIHplcm93ZTogeCA9ICIgPDwgeDIgPDwgZW5kbDsKCiAgICByZXR1cm4gMDsKfQo=