#include <iostream>
#include <cmath>
using namespace std;
// Definicja funkcji
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 eps = 1e-6; // dokładność
double x2;
int max_iter = 100; // maksymalna liczba iteracji
if (f(x0) * f(x1) >= 0) {
cout << "Warunek f(x0)*f(x1) < 0 nie jest spełniony!" << endl;
return 1;
}
int iter = 0;
while (iter < max_iter) {
x2 = x1 - f(x1) * (x1 - x0) / (f(x1) - f(x0));
if (fabs(x2 - x1) < eps) // warunek zbieżności
break;
x0 = x1;
x1 = x2;
iter++;
}
cout.precision(10);
cout << "Miejsce zerowe (metoda siecznych): x = " << x2 << endl;
cout << "Liczba iteracji: " << iter << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKLy8gRGVmaW5pY2phIGZ1bmtjamkKZG91YmxlIGYoZG91YmxlIHgpIHsKICAgIHJldHVybiAwLjI1ICogeCAqIHggLSAyLjA7Cn0KCmludCBtYWluKCkgewogICAgZG91YmxlIHgwID0gMi4wOyAgICAvLyBwaWVyd3N6eSBwdW5rdAogICAgZG91YmxlIHgxID0gNC4wOyAgICAvLyBkcnVnaSBwdW5rdAogICAgZG91YmxlIGVwcyA9IDFlLTY7ICAvLyBkb2vFgmFkbm/Fm8SHCiAgICBkb3VibGUgeDI7CiAgICBpbnQgbWF4X2l0ZXIgPSAxMDA7IC8vIG1ha3N5bWFsbmEgbGljemJhIGl0ZXJhY2ppCgogICAgaWYgKGYoeDApICogZih4MSkgPj0gMCkgewogICAgICAgIGNvdXQgPDwgIldhcnVuZWsgZih4MCkqZih4MSkgPCAwIG5pZSBqZXN0IHNwZcWCbmlvbnkhIiA8PCBlbmRsOwogICAgICAgIHJldHVybiAxOwogICAgfQoKICAgIGludCBpdGVyID0gMDsKICAgIHdoaWxlIChpdGVyIDwgbWF4X2l0ZXIpIHsKICAgICAgICB4MiA9IHgxIC0gZih4MSkgKiAoeDEgLSB4MCkgLyAoZih4MSkgLSBmKHgwKSk7CgogICAgICAgIGlmIChmYWJzKHgyIC0geDEpIDwgZXBzKSAgLy8gd2FydW5layB6Ymllxbxub8WbY2kKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIHgwID0geDE7CiAgICAgICAgeDEgPSB4MjsKICAgICAgICBpdGVyKys7CiAgICB9CgogICAgY291dC5wcmVjaXNpb24oMTApOwogICAgY291dCA8PCAiTWllanNjZSB6ZXJvd2UgKG1ldG9kYSBzaWVjem55Y2gpOiB4ID0gIiA8PCB4MiA8PCBlbmRsOwogICAgY291dCA8PCAiTGljemJhIGl0ZXJhY2ppOiAiIDw8IGl0ZXIgPDwgZW5kbDsKCiAgICByZXR1cm4gMDsKfQo=