#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 startowy
double x1 = 4.0; // drugi punkt startowy
double x2; // kolejne przybliżenie
double eps = 0.0001; // dokładność
int iter = 0;
int maxIter = 100;
do {
if (fabs(f(x1) - f(x0)) < 1e-12) {
cout << "Blad: dzielenie przez zero!" << endl;
return 1;
}
x2 = x1 - f(x1) * (x1 - x0) / (f(x1) - f(x0));
x0 = x1;
x1 = x2;
iter++;
} while (fabs(f(x2)) > eps && iter < maxIter);
cout << "Miejsce zerowe: x = " << x2 << endl;
cout << "Liczba iteracji: " << iter << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKZG91YmxlIGYoZG91YmxlIHgpIHsKICAgIHJldHVybiAwLjI1ICogeCAqIHggLSAyLjA7Cn0KCmludCBtYWluKCkgewogICAgZG91YmxlIHgwID0gMi4wOyAgICAgIC8vIHBpZXJ3c3p5IHB1bmt0IHN0YXJ0b3d5CiAgICBkb3VibGUgeDEgPSA0LjA7ICAgICAgLy8gZHJ1Z2kgcHVua3Qgc3RhcnRvd3kKICAgIGRvdWJsZSB4MjsgICAgICAgICAgICAvLyBrb2xlam5lIHByenlibGnFvGVuaWUKICAgIGRvdWJsZSBlcHMgPSAwLjAwMDE7ICAvLyBkb2vFgmFkbm/Fm8SHCiAgICBpbnQgaXRlciA9IDA7CiAgICBpbnQgbWF4SXRlciA9IDEwMDsKCiAgICBkbyB7CiAgICAgICAgaWYgKGZhYnMoZih4MSkgLSBmKHgwKSkgPCAxZS0xMikgewogICAgICAgICAgICBjb3V0IDw8ICJCbGFkOiBkemllbGVuaWUgcHJ6ZXogemVybyEiIDw8IGVuZGw7CiAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgIH0KCiAgICAgICAgeDIgPSB4MSAtIGYoeDEpICogKHgxIC0geDApIC8gKGYoeDEpIC0gZih4MCkpOwoKICAgICAgICB4MCA9IHgxOwogICAgICAgIHgxID0geDI7CiAgICAgICAgaXRlcisrOwoKICAgIH0gd2hpbGUgKGZhYnMoZih4MikpID4gZXBzICYmIGl0ZXIgPCBtYXhJdGVyKTsKCiAgICBjb3V0IDw8ICJNaWVqc2NlIHplcm93ZTogeCA9ICIgPDwgeDIgPDwgZW5kbDsKICAgIGNvdXQgPDwgIkxpY3piYSBpdGVyYWNqaTogIiA8PCBpdGVyIDw8IGVuZGw7CgogICAgcmV0dXJuIDA7Cn0K