#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 = 3.0; // drugi punkt
double eps = 1e-6; // dokładność
int maxIter = 100;
double x2;
cout << "f(2) = " << f(x0) << endl;
cout << "f(3) = " << f(x1) << endl;
for (int i = 0; i < maxIter; i++) {
if (fabs(f(x1) - f(x0)) < 1e-12) {
cout << "Dzielenie przez zero!" << endl;
return 1;
}
// wzór metody siecznych
x2 = x1 - f(x1) * (x1 - x0) / (f(x1) - f(x0));
if (fabs(x2 - x1) < eps) {
cout << "Miejsce zerowe: x = " << x2 << endl;
cout << "Liczba iteracji: " << i + 1 << endl;
return 0;
}
x0 = x1;
x1 = x2;
}
cout << "Nie osiagnieto zadanej dokladnosci." << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKLy8gRGVmaW5pY2phIGZ1bmtjamkKZG91YmxlIGYoZG91YmxlIHgpIHsKICAgIHJldHVybiAwLjI1ICogeCAqIHggLSAyLjA7Cn0KCmludCBtYWluKCkgewogICAgZG91YmxlIHgwID0gMi4wOyAgIC8vIHBpZXJ3c3p5IHB1bmt0CiAgICBkb3VibGUgeDEgPSAzLjA7ICAgLy8gZHJ1Z2kgcHVua3QKICAgIGRvdWJsZSBlcHMgPSAxZS02OyAvLyBkb2vFgmFkbm/Fm8SHCiAgICBpbnQgbWF4SXRlciA9IDEwMDsKICAgIGRvdWJsZSB4MjsKCiAgICBjb3V0IDw8ICJmKDIpID0gIiA8PCBmKHgwKSA8PCBlbmRsOwogICAgY291dCA8PCAiZigzKSA9ICIgPDwgZih4MSkgPDwgZW5kbDsKCiAgICBmb3IgKGludCBpID0gMDsgaSA8IG1heEl0ZXI7IGkrKykgewogICAgICAgIGlmIChmYWJzKGYoeDEpIC0gZih4MCkpIDwgMWUtMTIpIHsKICAgICAgICAgICAgY291dCA8PCAiRHppZWxlbmllIHByemV6IHplcm8hIiA8PCBlbmRsOwogICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICB9CgogICAgICAgIC8vIHd6w7NyIG1ldG9keSBzaWVjem55Y2gKICAgICAgICB4MiA9IHgxIC0gZih4MSkgKiAoeDEgLSB4MCkgLyAoZih4MSkgLSBmKHgwKSk7CgogICAgICAgIGlmIChmYWJzKHgyIC0geDEpIDwgZXBzKSB7CiAgICAgICAgICAgIGNvdXQgPDwgIk1pZWpzY2UgemVyb3dlOiB4ID0gIiA8PCB4MiA8PCBlbmRsOwogICAgICAgICAgICBjb3V0IDw8ICJMaWN6YmEgaXRlcmFjamk6ICIgPDwgaSArIDEgPDwgZW5kbDsKICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgfQoKICAgICAgICB4MCA9IHgxOwogICAgICAgIHgxID0geDI7CiAgICB9CgogICAgY291dCA8PCAiTmllIG9zaWFnbmlldG8gemFkYW5laiBkb2tsYWRub3NjaS4iIDw8IGVuZGw7CiAgICByZXR1cm4gMDsKfQo=