#include <bits/stdc++.h>
using namespace std;
double f(double x)
{
return x * x * x - 4;}
int main()
{
double x1, x2, x0, f1, f2, f0;
double E = 1e-8;
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";
for (int i = 1; ; i++)
{
x0 = x1 - (f1 * (x2 - x1)) / (f2 - f1);
f0 = f(x0);
cout << fixed << setprecision(6);
cout << setw(3) << i << "\t"
<< x1 << "\t" << x2 << "\t" << x0 << "\t"
<< f0 << "\t" << f1 << "\t" << f2 << endl;
if (fabs(f0) < 1e-6 || fabs((x2 - x1) / x2) < E)
{
cout << "\nApproximate root = " << x0 << endl;
break;
}
if (f1 * f0 < 0)
{
x2 = x0;
f2 = f0;
} else {
x1 = x0;
f1 = f0;
}
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpkb3VibGUgZihkb3VibGUgeCkKewogICAgcmV0dXJuIHggKiB4ICogeCAtIDQ7fQppbnQgbWFpbigpIAp7CiAgICBkb3VibGUgeDEsIHgyLCB4MCwgZjEsIGYyLCBmMDsKICAgIGRvdWJsZSBFID0gMWUtODsKCiAgICBjb3V0IDw8ICJFbnRlciB0aGUgdmFsdWUgb2YgeDA6ICI7CiAgICBjaW4gPj4geDE7CiAgICBjb3V0IDw8ICJcbkVudGVyIHRoZSB2YWx1ZSBvZiB4MTogIjsKICAgIGNpbiA+PiB4MjsKCiAgICBmMSA9IGYoeDEpOwogICAgZjIgPSBmKHgyKTsKCiAgICBpZiAoZjEgKiBmMiA+IDApIAogICAgewogICAgICAgIGNvdXQgPDwgIlxuSW52YWxpZCBpbnRlcnZhbC4uXG4iOwogICAgICAgIHJldHVybiAwOwogICAgfQoKICAgIGNvdXQgPDwgIlxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI7CiAgICBjb3V0IDw8ICJcbkl0ZXJhdGlvblx0IHgwXHRcdCB4MVx0XHQgeDJcdFx0IGYwXHRcdCBmMVx0XHQgZjIiOwogICAgY291dCA8PCAiXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iOwoKICAgIGZvciAoaW50IGkgPSAxOyA7IGkrKykgCiAgICB7CiAgICAgICAgeDAgPSB4MSAtIChmMSAqICh4MiAtIHgxKSkgLyAoZjIgLSBmMSk7CiAgICAgICAgZjAgPSBmKHgwKTsKCiAgICAgICAgY291dCA8PCBmaXhlZCA8PCBzZXRwcmVjaXNpb24oNik7CiAgICAgICAgY291dCA8PCBzZXR3KDMpIDw8IGkgPDwgIlx0IgogICAgICAgICAgICAgPDwgeDEgPDwgIlx0IiA8PCB4MiA8PCAiXHQiIDw8IHgwIDw8ICJcdCIKICAgICAgICAgICAgIDw8IGYwIDw8ICJcdCIgPDwgZjEgPDwgIlx0IiA8PCBmMiA8PCBlbmRsOwoKICAgICAgICBpZiAoZmFicyhmMCkgPCAxZS02IHx8IGZhYnMoKHgyIC0geDEpIC8geDIpIDwgRSkKICAgICAgICB7CiAgICAgICAgICAgIGNvdXQgPDwgIlxuQXBwcm94aW1hdGUgcm9vdCA9ICIgPDwgeDAgPDwgZW5kbDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQoKICAgICAgICBpZiAoZjEgKiBmMCA8IDApCiAgICAgICAgewogICAgICAgICAgICB4MiA9IHgwOwogICAgICAgICAgICBmMiA9IGYwOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHgxID0geDA7CiAgICAgICAgICAgIGYxID0gZjA7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAwOwp9Cg==