#include <bits/stdc++.h>
using namespace std;
double f(double x) {
return ((3 * x) * x) * x - 4;
}
int main() {
double x1, x2, x3, f1, f2, E;
int i = 1;
cout << "Enter two initial points x1 and x2: ";
cin >> x1 >> x2;
cout << "Enter required accuracy (E): ";
cin >> E;
f1 = f(x1);
f2 = f(x2);
cout << fixed << setprecision(6);
cout << "Iteration\tX1\t\tX2\t\tX3\t\tf(X1)\t\tf(X2)" << endl;
do {
x3 = (f2 * x1 - f1 * x2) / (f2 - f1);
cout << i << "\t\t" << x1 << "\t" << x2 << "\t" << x3
<< "\t" << f1 << "\t" << f2 << endl;
if (fabs((x3 - x2) / x3) <= E) {
cout << "\nRoot found at x = " << x3 << " after " << i << " iterations." << endl;
break;
}
x1 = x2;
f1 = f2;
x2 = x3;
f2 = f(x3);
i++;
} while (true);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpkb3VibGUgZihkb3VibGUgeCkgewogICAgcmV0dXJuICgoMyAqIHgpICogeCkgKiB4IC0gNDsgCn0KCmludCBtYWluKCkgewogICAgZG91YmxlIHgxLCB4MiwgeDMsIGYxLCBmMiwgRTsKICAgIGludCBpID0gMTsKCiAgICBjb3V0IDw8ICJFbnRlciB0d28gaW5pdGlhbCBwb2ludHMgeDEgYW5kIHgyOiAiOwogICAgY2luID4+IHgxID4+IHgyOwogICAgY291dCA8PCAiRW50ZXIgcmVxdWlyZWQgYWNjdXJhY3kgKEUpOiAiOwogICAgY2luID4+IEU7CgogICAgZjEgPSBmKHgxKTsKICAgIGYyID0gZih4Mik7CgogICAgY291dCA8PCBmaXhlZCA8PCBzZXRwcmVjaXNpb24oNik7CiAgICBjb3V0IDw8ICJJdGVyYXRpb25cdFgxXHRcdFgyXHRcdFgzXHRcdGYoWDEpXHRcdGYoWDIpIiA8PCBlbmRsOwoKICAgIGRvIHsKICAgICAgICB4MyA9IChmMiAqIHgxIC0gZjEgKiB4MikgLyAoZjIgLSBmMSk7IAoKICAgICAgICBjb3V0IDw8IGkgPDwgIlx0XHQiIDw8IHgxIDw8ICJcdCIgPDwgeDIgPDwgIlx0IiA8PCB4MwogICAgICAgICAgICAgPDwgIlx0IiA8PCBmMSA8PCAiXHQiIDw8IGYyIDw8IGVuZGw7CgogICAgICAgIGlmIChmYWJzKCh4MyAtIHgyKSAvIHgzKSA8PSBFKSB7CiAgICAgICAgICAgIGNvdXQgPDwgIlxuUm9vdCBmb3VuZCBhdCB4ID0gIiA8PCB4MyA8PCAiIGFmdGVyICIgPDwgaSA8PCAiIGl0ZXJhdGlvbnMuIiA8PCBlbmRsOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CgogICAgICAgIHgxID0geDI7CiAgICAgICAgZjEgPSBmMjsKICAgICAgICB4MiA9IHgzOwogICAgICAgIGYyID0gZih4Myk7CiAgICAgICAgaSsrOwoKICAgIH0gd2hpbGUgKHRydWUpOwoKICAgIHJldHVybiAwOwp9Cg==