#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
double f(double x) {
return 2 * x * x - x - 8;
}
int main() {
double x1, x2, x0, f1, f2, f0, error;
int iteration = 1;
const double EPSILON = 0.0001;
cout << "Enter the value of x1: ";
cin >> x1;
cout << "Enter the value of x2: ";
cin >> x2;
f1 = f(x1);
f2 = f(x2);
if (f1 * f2 > 0) {
cout << "The initial guesses do not bracket any root." << endl;
return 0;
}
cout << "\nIteration x1 x2 x0 f(x1) f(x2) f(x0)\n";
do {
x0 = (x1 + x2) / 2.0;
f0 = f(x0);
cout << fixed << setprecision(6);
cout << iteration << " "
<< x1 << " " << x2 << " "
<< x0 << " "
<< f1 << " "
<< f2 << " "
<< f0 << endl;
if (f1 * f0 < 0) {
x2 = x0;
f2 = f0;
} else {
x1 = x0;
f1 = f0;
}
error = fabs((x2 - x1) / x2);
iteration++;
} while (error > EPSILON);
cout << "\nApproximate root = " << x0 << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KI2luY2x1ZGUgPGNtYXRoPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKCmRvdWJsZSBmKGRvdWJsZSB4KSB7CiAgICByZXR1cm4gMiAqIHggKiB4IC0geCAtIDg7Cn0KCmludCBtYWluKCkgewogICAgZG91YmxlIHgxLCB4MiwgeDAsIGYxLCBmMiwgZjAsIGVycm9yOwogICAgaW50IGl0ZXJhdGlvbiA9IDE7CiAgICBjb25zdCBkb3VibGUgRVBTSUxPTiA9IDAuMDAwMTsKCiAgICBjb3V0IDw8ICJFbnRlciB0aGUgdmFsdWUgb2YgeDE6ICI7CiAgICBjaW4gPj4geDE7CiAgICBjb3V0IDw8ICJFbnRlciB0aGUgdmFsdWUgb2YgeDI6ICI7CiAgICBjaW4gPj4geDI7CgogICAgZjEgPSBmKHgxKTsKICAgIGYyID0gZih4Mik7CgogICAgCiAgICBpZiAoZjEgKiBmMiA+IDApIHsKICAgICAgICBjb3V0IDw8ICJUaGUgaW5pdGlhbCBndWVzc2VzIGRvIG5vdCBicmFja2V0IGFueSByb290LiIgPDwgZW5kbDsKICAgICAgICByZXR1cm4gMDsKICAgIH0KCiAgICBjb3V0IDw8ICJcbkl0ZXJhdGlvbiAgICB4MSAgICAgICAgICAgIHgyICAgICAgICAgICAgeDAgICAgICAgICAgICBmKHgxKSAgICAgICAgZih4MikgICAgICAgIGYoeDApXG4iOwoKICAgIGRvIHsKICAgICAgICAKICAgICAgICB4MCA9ICh4MSArIHgyKSAvIDIuMDsKICAgICAgICBmMCA9IGYoeDApOwoKICAgICAgICAKICAgICAgICBjb3V0IDw8IGZpeGVkIDw8IHNldHByZWNpc2lvbig2KTsKICAgICAgICBjb3V0IDw8IGl0ZXJhdGlvbiA8PCAiICAgICAgICAgICAgIgogICAgICAgICAgICAgPDwgeDEgPDwgIiAgICAgIiA8PCB4MiA8PCAiICAgICAiCiAgICAgICAgICAgICA8PCB4MCA8PCAiICAgICAiCiAgICAgICAgICAgICA8PCBmMSA8PCAiICAgICAiCiAgICAgICAgICAgICA8PCBmMiA8PCAiICAgICAiCiAgICAgICAgICAgICA8PCBmMCA8PCBlbmRsOwoKICAgICAgICAKICAgICAgICBpZiAoZjEgKiBmMCA8IDApIHsKICAgICAgICAgICAgeDIgPSB4MDsKICAgICAgICAgICAgZjIgPSBmMDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB4MSA9IHgwOwogICAgICAgICAgICBmMSA9IGYwOwogICAgICAgIH0KCiAgICAgICAKICAgICAgICBlcnJvciA9IGZhYnMoKHgyIC0geDEpIC8geDIpOwogICAgICAgIGl0ZXJhdGlvbisrOwogICAgfSB3aGlsZSAoZXJyb3IgPiBFUFNJTE9OKTsKCiAgICBjb3V0IDw8ICJcbkFwcHJveGltYXRlIHJvb3QgPSAiIDw8IHgwIDw8IGVuZGw7CiAgICByZXR1cm4gMDsKfQo=