#include <iostream>
#include <cmath>
#include <iomanip>
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 = 0.00001;
double x2;
int iteracje = 0;
if (f(x0) * f(x1) >= 0) {
cout << "Brak gwarancji zbieznosci metody siecznych." << endl;
return 0;
}
// Metoda siecznych
do {
x2 = x1 - f(x1) * (x1 - x0) / (f(x1) - f(x0));
x0 = x1;
x1 = x2;
iteracje++;
} while (fabs(f(x2)) > eps);
cout << fixed << setprecision(6);
cout << "Miejsce zerowe funkcji: x = " << x2 << endl;
cout << "Wartosc funkcji w tym punkcie: f(x) = " << f(x2) << endl;
cout << "Liczba iteracji: " << iteracje << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDxpb21hbmlwPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8vIERlZmluaWNqYSBmdW5rY2ppCmRvdWJsZSBmKGRvdWJsZSB4KSB7CiAgICByZXR1cm4gMC4yNSAqIHggKiB4IC0gMi4wOwp9CgppbnQgbWFpbigpIHsKICAgIGRvdWJsZSB4MCA9IDIuMDsKICAgIGRvdWJsZSB4MSA9IDQuMDsKICAgIGRvdWJsZSBlcHMgPSAwLjAwMDAxOwogICAgZG91YmxlIHgyOwogICAgaW50IGl0ZXJhY2plID0gMDsKCiAgICBpZiAoZih4MCkgKiBmKHgxKSA+PSAwKSB7CiAgICAgICAgY291dCA8PCAiQnJhayBnd2FyYW5jamkgemJpZXpub3NjaSBtZXRvZHkgc2llY3pueWNoLiIgPDwgZW5kbDsKICAgICAgICByZXR1cm4gMDsKICAgIH0KCiAgICAvLyBNZXRvZGEgc2llY3pueWNoCiAgICBkbyB7CiAgICAgICAgeDIgPSB4MSAtIGYoeDEpICogKHgxIC0geDApIC8gKGYoeDEpIC0gZih4MCkpOwogICAgICAgIHgwID0geDE7CiAgICAgICAgeDEgPSB4MjsKICAgICAgICBpdGVyYWNqZSsrOwogICAgfSB3aGlsZSAoZmFicyhmKHgyKSkgPiBlcHMpOwoKICAgIGNvdXQgPDwgZml4ZWQgPDwgc2V0cHJlY2lzaW9uKDYpOwogICAgY291dCA8PCAiTWllanNjZSB6ZXJvd2UgZnVua2NqaTogeCA9ICIgPDwgeDIgPDwgZW5kbDsKICAgIGNvdXQgPDwgIldhcnRvc2MgZnVua2NqaSB3IHR5bSBwdW5rY2llOiBmKHgpID0gIiA8PCBmKHgyKSA8PCBlbmRsOwogICAgY291dCA8PCAiTGljemJhIGl0ZXJhY2ppOiAiIDw8IGl0ZXJhY2plIDw8IGVuZGw7CgogICAgcmV0dXJuIDA7Cn0K