#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
// Definicja funkcji
double f(double x)
{
return 0.25 * x * x - 2.0;
}
int main()
{
double a = 2.0;
double b = 4.0;
double eps = 1e-6; // dokładność
double c;
// Sprawdzenie warunku koniecznego
if (f(a) * f(b) >= 0)
{
cout << "Funkcja nie spelnia warunku f(a)*f(b) < 0" << endl;
return 1;
}
// Metoda bisekcji
do
{
c = (a + b) / 2.0;
if (f(a) * f(c) < 0)
b = c;
else
a = c;
} while (fabs(b - a) > eps);
cout << "Miejsce zerowe: x = " << c << endl;
cout << "f(x) = " << f(c) << endl;
// Zapis danych do pliku (do wykresu)
ofstream plik("dane.dat");
for (double x = 1.5; x <= 4.5; x += 0.01)
{
plik << x << " " << f(x) << endl;
}
plik.close();
cout << "Dane do wykresu zapisane w pliku dane.dat" << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnN0cmVhbT4KI2luY2x1ZGUgPGNtYXRoPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8vIERlZmluaWNqYSBmdW5rY2ppCmRvdWJsZSBmKGRvdWJsZSB4KQp7CiAgICByZXR1cm4gMC4yNSAqIHggKiB4IC0gMi4wOwp9CgppbnQgbWFpbigpCnsKICAgIGRvdWJsZSBhID0gMi4wOwogICAgZG91YmxlIGIgPSA0LjA7CiAgICBkb3VibGUgZXBzID0gMWUtNjsgLy8gZG9rxYJhZG5vxZvEhwogICAgZG91YmxlIGM7CgogICAgLy8gU3ByYXdkemVuaWUgd2FydW5rdSBrb25pZWN6bmVnbwogICAgaWYgKGYoYSkgKiBmKGIpID49IDApCiAgICB7CiAgICAgICAgY291dCA8PCAiRnVua2NqYSBuaWUgc3BlbG5pYSB3YXJ1bmt1IGYoYSkqZihiKSA8IDAiIDw8IGVuZGw7CiAgICAgICAgcmV0dXJuIDE7CiAgICB9CgogICAgLy8gTWV0b2RhIGJpc2VrY2ppCiAgICBkbwogICAgewogICAgICAgIGMgPSAoYSArIGIpIC8gMi4wOwoKICAgICAgICBpZiAoZihhKSAqIGYoYykgPCAwKQogICAgICAgICAgICBiID0gYzsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGEgPSBjOwoKICAgIH0gd2hpbGUgKGZhYnMoYiAtIGEpID4gZXBzKTsKCiAgICBjb3V0IDw8ICJNaWVqc2NlIHplcm93ZTogeCA9ICIgPDwgYyA8PCBlbmRsOwogICAgY291dCA8PCAiZih4KSA9ICIgPDwgZihjKSA8PCBlbmRsOwoKICAgIC8vIFphcGlzIGRhbnljaCBkbyBwbGlrdSAoZG8gd3lrcmVzdSkKICAgIG9mc3RyZWFtIHBsaWsoImRhbmUuZGF0Iik7CiAgICBmb3IgKGRvdWJsZSB4ID0gMS41OyB4IDw9IDQuNTsgeCArPSAwLjAxKQogICAgewogICAgICAgIHBsaWsgPDwgeCA8PCAiICIgPDwgZih4KSA8PCBlbmRsOwogICAgfQogICAgcGxpay5jbG9zZSgpOwoKICAgIGNvdXQgPDwgIkRhbmUgZG8gd3lrcmVzdSB6YXBpc2FuZSB3IHBsaWt1IGRhbmUuZGF0IiA8PCBlbmRsOwoKICAgIHJldHVybiAwOwp9Cg==