#include <iostream> //id=240242103
#include <cmath>
#include <iomanip>
using namespace std;
int main() {
double x0, x1, x2, f0, f1, f2;
double e = 1e-8;
int step = 1;
cout << "Enter the value of x0: ";
cin >> x0;
cout << "Enter the value of x1: ";
cin >> x1;
f0 = 2*x0*x0*x0 + 3*x0 - 1;
f1 = 2*x1*x1*x1 + 3*x1 - 1;
if (f0 * f1 > 0) {
cout << "Invalid interval! f(x0) and f(x1) must have opposite signs." << endl;
return 0;
}
cout << fixed << setprecision(6);
cout << "\nIteration x0 x1 x2 f0 f1 f2\n";
cout << "-------------------------------------------------------------------------\n";
do {
x2 = (x0 + x1) / 2;
f2 = 2*x2*x2*x2 + 3*x2 - 1;
cout << step << "\t" << x0 << "\t" << x1 << "\t" << x2
<< "\t" << f0 << "\t" << f1 << "\t" << f2 << endl;
if (f0 * f2 < 0)
x1 = x2;
else
x0 = x2;
f0 = 2*x0*x0*x0 + 3*x0 - 1;
f1 = 2*x1*x1*x1 + 3*x1 - 1;
step++;
} while (fabs(x1 - x0) >= e);
cout << "\nApproximate Root = " << x2 << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPiAgICAgICAgICAgICAgICAvL2lkPTI0MDI0MjEwMyAKI2luY2x1ZGUgPGNtYXRoPgojaW5jbHVkZSA8aW9tYW5pcD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkgewogICAgZG91YmxlIHgwLCB4MSwgeDIsIGYwLCBmMSwgZjI7CiAgICBkb3VibGUgZSA9IDFlLTg7CiAgICBpbnQgc3RlcCA9IDE7CgogICAgY291dCA8PCAiRW50ZXIgdGhlIHZhbHVlIG9mIHgwOiAiOwogICAgY2luID4+IHgwOwogICAgY291dCA8PCAiRW50ZXIgdGhlIHZhbHVlIG9mIHgxOiAiOwogICAgY2luID4+IHgxOwoKICAgIGYwID0gMip4MCp4MCp4MCArIDMqeDAgLSAxOwogICAgZjEgPSAyKngxKngxKngxICsgMyp4MSAtIDE7CgogICAgaWYgKGYwICogZjEgPiAwKSB7CiAgICAgICAgY291dCA8PCAiSW52YWxpZCBpbnRlcnZhbCEgZih4MCkgYW5kIGYoeDEpIG11c3QgaGF2ZSBvcHBvc2l0ZSBzaWducy4iIDw8IGVuZGw7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9CgogICAgY291dCA8PCBmaXhlZCA8PCBzZXRwcmVjaXNpb24oNik7CiAgICBjb3V0IDw8ICJcbkl0ZXJhdGlvbiAgeDAgICAgICAgIHgxICAgICAgICB4MiAgICAgICAgZjAgICAgICAgICBmMSAgICAgICAgIGYyXG4iOwogICAgY291dCA8PCAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIjsKCiAgICBkbyB7CiAgICAgICAgeDIgPSAoeDAgKyB4MSkgLyAyOwogICAgICAgIGYyID0gMip4Mip4Mip4MiArIDMqeDIgLSAxOwoKICAgICAgICBjb3V0IDw8IHN0ZXAgPDwgIlx0IiA8PCB4MCA8PCAiXHQiIDw8IHgxIDw8ICJcdCIgPDwgeDIKICAgICAgICAgICAgIDw8ICJcdCIgPDwgZjAgPDwgIlx0IiA8PCBmMSA8PCAiXHQiIDw8IGYyIDw8IGVuZGw7CgogICAgICAgIGlmIChmMCAqIGYyIDwgMCkKICAgICAgICAgICAgeDEgPSB4MjsKICAgICAgICBlbHNlCiAgICAgICAgICAgIHgwID0geDI7CgogICAgICAgIGYwID0gMip4MCp4MCp4MCArIDMqeDAgLSAxOwogICAgICAgIGYxID0gMip4MSp4MSp4MSArIDMqeDEgLSAxOwogICAgICAgIHN0ZXArKzsKICAgIH0gd2hpbGUgKGZhYnMoeDEgLSB4MCkgPj0gZSk7CgogICAgY291dCA8PCAiXG5BcHByb3hpbWF0ZSBSb290ID0gIiA8PCB4MiA8PCBlbmRsOwogICAgcmV0dXJuIDA7Cn0KCg==