#include <bits/stdc++.h>
using namespace std;
double f(double x) {
return 2 * x * x * x + 3 * x - 1;
}
int main()
{
double x1, x2, x0, f1, f2, f0;
double E = 1e-8;
int i = 0;
cout << "Enter the value of x0: ";
cin >> x1;
cout << "\nEnter the value of x1: ";
cin >> x2;
f1 = f(x1);
f2 = f(x2);
if (f1 * f2 > 0)
{
cout << "\nInvalid interval. \n";
return 0;
}
cout << "\n-------------------------------------------------------------";
cout << "\nIteration\t x0\t\t x1\t\t x2\t\t f0\t\t f1\t\t f2";
cout << "\n-------------------------------------------------------------\n";
do
{
i++;
x0 = (x1 + x2) / 2;
f0 = f(x0);
cout << fixed << setprecision(6);
cout << setw(3) << i << "\t\t"
<< x0 << "\t" << x1 << "\t" << x2 << "\t"
<< f0 << "\t" << f1 << "\t" << f2 << endl;
if (f1 * f0 < 0)
{
x2 = x0;
f2 = f0;
} else {
x1 = x0;
f1 = f0;
}
}
while (fabs((x2 - x1) / x2) > E);
cout << "\nApproximate root = " << x0 << endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpkb3VibGUgZihkb3VibGUgeCkgewogICAgcmV0dXJuIDIgKiB4ICogeCAqIHggKyAzICogeCAtIDE7Cn0KCmludCBtYWluKCkKewogICAgZG91YmxlIHgxLCB4MiwgeDAsIGYxLCBmMiwgZjA7CiAgICBkb3VibGUgRSA9IDFlLTg7CiAgICBpbnQgaSA9IDA7CgogICAgY291dCA8PCAiRW50ZXIgdGhlIHZhbHVlIG9mIHgwOiAiOwogICAgY2luID4+IHgxOwogICAgY291dCA8PCAiXG5FbnRlciB0aGUgdmFsdWUgb2YgeDE6ICI7CiAgICBjaW4gPj4geDI7CgogICAgZjEgPSBmKHgxKTsKICAgIGYyID0gZih4Mik7CgogICAgaWYgKGYxICogZjIgPiAwKQogICAgewogICAgICAgIGNvdXQgPDwgIlxuSW52YWxpZCBpbnRlcnZhbC4gXG4iOwogICAgICAgIHJldHVybiAwOwogICAgfQoKICAgIGNvdXQgPDwgIlxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI7CiAgICBjb3V0IDw8ICJcbkl0ZXJhdGlvblx0IHgwXHRcdCB4MVx0XHQgeDJcdFx0IGYwXHRcdCBmMVx0XHQgZjIiOwogICAgY291dCA8PCAiXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iOwoKICAgIGRvCiAgICB7CiAgICAgICAgaSsrOwogICAgICAgIHgwID0gKHgxICsgeDIpIC8gMjsKICAgICAgICBmMCA9IGYoeDApOwoKICAgICAgICBjb3V0IDw8IGZpeGVkIDw8IHNldHByZWNpc2lvbig2KTsKICAgICAgICBjb3V0IDw8IHNldHcoMykgPDwgaSA8PCAiXHRcdCIKICAgICAgICAgICAgIDw8IHgwIDw8ICJcdCIgPDwgeDEgPDwgIlx0IiA8PCB4MiA8PCAiXHQiCiAgICAgICAgICAgICA8PCBmMCA8PCAiXHQiIDw8IGYxIDw8ICJcdCIgPDwgZjIgPDwgZW5kbDsKCiAgICAgICAgaWYgKGYxICogZjAgPCAwKSAKICAgICAgICB7CiAgICAgICAgICAgIHgyID0geDA7CiAgICAgICAgICAgIGYyID0gZjA7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgeDEgPSB4MDsKICAgICAgICAgICAgZjEgPSBmMDsKICAgICAgICB9CgogICAgfSAKICAgIHdoaWxlIChmYWJzKCh4MiAtIHgxKSAvIHgyKSA+IEUpOwoKICAgIGNvdXQgPDwgIlxuQXBwcm94aW1hdGUgcm9vdCA9ICIgPDwgeDAgPDwgZW5kbDsKCiAgICByZXR1cm4gMDsKfQo=