#include <iostream>
#include <cmath>
using namespace std;
// PRZYKLADOWE DANE
// f(x) = x^2 - 3x + 2
double a = 1.0;
double b = -3.0;
double c = 2.0;
// PRZEDZIAL ZAWIERAJACY JEDNO MIEJSCE ZEROWE
double l = 0.0; // zmiana z 'left'
double r = 1.5; // zmiana z 'right'
// PARAMETRY METODY BISEKCJI
double epsilon = 0.0001;
int max_iter = 100;
// Funkcja kwadratowa
double f(double x)
{
return a * x * x + b * x + c;
}
// Metoda bisekcji
double bisekcja(double left, double right)
{
double mid;
for (int i = 0; i < max_iter; i++)
{
mid = (left + right) / 2.0;
if (fabs(f(mid)) < epsilon)
return mid;
if (f(left) * f(mid) < 0)
right = mid;
else
left = mid;
}
return (left + right) / 2.0;
}
int main()
{
double zero = bisekcja(l, r); // teraz nie ma konfliktu nazw
cout << "Przyblizone miejsce zerowe: " << zero << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKLy8gUFJaWUtMQURPV0UgREFORQovLyBmKHgpID0geF4yIC0gM3ggKyAyCmRvdWJsZSBhID0gMS4wOwpkb3VibGUgYiA9IC0zLjA7CmRvdWJsZSBjID0gMi4wOwoKLy8gUFJaRURaSUFMIFpBV0lFUkFKQUNZIEpFRE5PIE1JRUpTQ0UgWkVST1dFCmRvdWJsZSBsID0gMC4wOyAgIC8vIHptaWFuYSB6ICdsZWZ0Jwpkb3VibGUgciA9IDEuNTsgICAvLyB6bWlhbmEgeiAncmlnaHQnCgovLyBQQVJBTUVUUlkgTUVUT0RZIEJJU0VLQ0pJCmRvdWJsZSBlcHNpbG9uID0gMC4wMDAxOwppbnQgbWF4X2l0ZXIgPSAxMDA7CgovLyBGdW5rY2phIGt3YWRyYXRvd2EKZG91YmxlIGYoZG91YmxlIHgpCnsKICAgIHJldHVybiBhICogeCAqIHggKyBiICogeCArIGM7Cn0KCi8vIE1ldG9kYSBiaXNla2NqaQpkb3VibGUgYmlzZWtjamEoZG91YmxlIGxlZnQsIGRvdWJsZSByaWdodCkKewogICAgZG91YmxlIG1pZDsKCiAgICBmb3IgKGludCBpID0gMDsgaSA8IG1heF9pdGVyOyBpKyspCiAgICB7CiAgICAgICAgbWlkID0gKGxlZnQgKyByaWdodCkgLyAyLjA7CgogICAgICAgIGlmIChmYWJzKGYobWlkKSkgPCBlcHNpbG9uKQogICAgICAgICAgICByZXR1cm4gbWlkOwoKICAgICAgICBpZiAoZihsZWZ0KSAqIGYobWlkKSA8IDApCiAgICAgICAgICAgIHJpZ2h0ID0gbWlkOwogICAgICAgIGVsc2UKICAgICAgICAgICAgbGVmdCA9IG1pZDsKICAgIH0KCiAgICByZXR1cm4gKGxlZnQgKyByaWdodCkgLyAyLjA7Cn0KCmludCBtYWluKCkKewogICAgZG91YmxlIHplcm8gPSBiaXNla2NqYShsLCByKTsgIC8vIHRlcmF6IG5pZSBtYSBrb25mbGlrdHUgbmF6dwoKICAgIGNvdXQgPDwgIlByenlibGl6b25lIG1pZWpzY2UgemVyb3dlOiAiIDw8IHplcm8gPDwgZW5kbDsKCiAgICByZXR1cm4gMDsKfQo=