#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;
double x1 = 4.0;
double eps = 1e-6;
int maxIter = 100;
int iter = 0;
double x2;
// Sprawdzenie, czy w przedziale jest miejsce zerowe
if (f(x0) * f(x1) > 0)
{
cout << "Brak miejsca zerowego w przedziale [2,4]." << endl;
return 0;
}
// Metoda siecznych
do
{
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+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKLy8gRGVmaW5pY2phIGZ1bmtjamkKZG91YmxlIGYoZG91YmxlIHgpCnsKICAgIHJldHVybiAwLjI1ICogeCAqIHggLSAyLjA7Cn0KCmludCBtYWluKCkKewogICAgZG91YmxlIHgwID0gMi4wOwogICAgZG91YmxlIHgxID0gNC4wOwogICAgZG91YmxlIGVwcyA9IDFlLTY7CiAgICBpbnQgbWF4SXRlciA9IDEwMDsKICAgIGludCBpdGVyID0gMDsKICAgIGRvdWJsZSB4MjsKCiAgICAvLyBTcHJhd2R6ZW5pZSwgY3p5IHcgcHJ6ZWR6aWFsZSBqZXN0IG1pZWpzY2UgemVyb3dlCiAgICBpZiAoZih4MCkgKiBmKHgxKSA+IDApCiAgICB7CiAgICAgICAgY291dCA8PCAiQnJhayBtaWVqc2NhIHplcm93ZWdvIHcgcHJ6ZWR6aWFsZSBbMiw0XS4iIDw8IGVuZGw7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9CgogICAgLy8gTWV0b2RhIHNpZWN6bnljaAogICAgZG8KICAgIHsKICAgICAgICB4MiA9IHgxIC0gZih4MSkgKiAoeDEgLSB4MCkgLyAoZih4MSkgLSBmKHgwKSk7CgogICAgICAgIHgwID0geDE7CiAgICAgICAgeDEgPSB4MjsKCiAgICAgICAgaXRlcisrOwoKICAgIH0gd2hpbGUgKGZhYnMoZih4MikpID4gZXBzICYmIGl0ZXIgPCBtYXhJdGVyKTsKCiAgICBjb3V0IDw8ICJNaWVqc2NlIHplcm93ZTogeCA9ICIgPDwgeDIgPDwgZW5kbDsKICAgIGNvdXQgPDwgIkxpY3piYSBpdGVyYWNqaTogIiA8PCBpdGVyIDw8IGVuZGw7CgogICAgcmV0dXJuIDA7Cn0K