#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
double f(double x) {
return pow(x, 3) - x - 3;
}
int main() {
double x1, x2, x3, f1, f2;
const double tolerance = 1e-6;
const int max_iterations = 100;
int iteration = 1;
cout << "Enter the value of x1: ";
cin >> x1;
cout << "Enter the value of x2: ";
cin >> x2;
cout << fixed << setprecision(6);
cout << "\nIteration\tx1\t\tx2\t\tx3\t\tf(x1)\t\tf(x2)\n";
while (iteration <= max_iterations) {
f1 = f(x1);
f2 = f(x2);
if (fabs(f2 - f1) < 1e-12) {
cout << "Denominator too small. Division by zero risk.\n";
break;
}
x3 = (f2 * x1 - f1 * x2) / (f2 - f1);
cout << iteration << "\t\t" << x1 << "\t" << x2 << "\t" << x3 << "\t" << f1 << "\t" << f2 << "\n";
if (fabs((x3 - x2) / x3) < tolerance) {
cout << "\nApproximate root = " << x3 << endl;
break;
}
x1 = x2;
x2 = x3;
iteration++;
}
if (iteration > max_iterations) {
cout << "Method did not converge within the maximum number of iterations.\n";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDxpb21hbmlwPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCgpkb3VibGUgZihkb3VibGUgeCkgewogICAgcmV0dXJuIHBvdyh4LCAzKSAtIHggLSAzOwp9CgppbnQgbWFpbigpIHsKICAgIGRvdWJsZSB4MSwgeDIsIHgzLCBmMSwgZjI7CiAgICBjb25zdCBkb3VibGUgdG9sZXJhbmNlID0gMWUtNjsKICAgIGNvbnN0IGludCBtYXhfaXRlcmF0aW9ucyA9IDEwMDsKICAgIGludCBpdGVyYXRpb24gPSAxOwoKICAgIAogICAgY291dCA8PCAiRW50ZXIgdGhlIHZhbHVlIG9mIHgxOiAiOwogICAgY2luID4+IHgxOwogICAgY291dCA8PCAiRW50ZXIgdGhlIHZhbHVlIG9mIHgyOiAiOwogICAgY2luID4+IHgyOwoKICAgIGNvdXQgPDwgZml4ZWQgPDwgc2V0cHJlY2lzaW9uKDYpOwogICAgY291dCA8PCAiXG5JdGVyYXRpb25cdHgxXHRcdHgyXHRcdHgzXHRcdGYoeDEpXHRcdGYoeDIpXG4iOwoKICAgIHdoaWxlIChpdGVyYXRpb24gPD0gbWF4X2l0ZXJhdGlvbnMpIHsKICAgICAgICBmMSA9IGYoeDEpOwogICAgICAgIGYyID0gZih4Mik7CgogICAgICAgIAogICAgICAgIGlmIChmYWJzKGYyIC0gZjEpIDwgMWUtMTIpIHsKICAgICAgICAgICAgY291dCA8PCAiRGVub21pbmF0b3IgdG9vIHNtYWxsLiBEaXZpc2lvbiBieSB6ZXJvIHJpc2suXG4iOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CgogICAgICAgIAogICAgICAgIHgzID0gKGYyICogeDEgLSBmMSAqIHgyKSAvIChmMiAtIGYxKTsKCiAgICAgICAgCiAgICAgICAgY291dCA8PCBpdGVyYXRpb24gPDwgIlx0XHQiIDw8IHgxIDw8ICJcdCIgPDwgeDIgPDwgIlx0IiA8PCB4MyA8PCAiXHQiIDw8IGYxIDw8ICJcdCIgPDwgZjIgPDwgIlxuIjsKCiAgICAgICAgCiAgICAgICAgaWYgKGZhYnMoKHgzIC0geDIpIC8geDMpIDwgdG9sZXJhbmNlKSB7CiAgICAgICAgICAgIGNvdXQgPDwgIlxuQXBwcm94aW1hdGUgcm9vdCA9ICIgPDwgeDMgPDwgZW5kbDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQoKICAgICAgIAogICAgICAgIHgxID0geDI7CiAgICAgICAgeDIgPSB4MzsKICAgICAgICBpdGVyYXRpb24rKzsKICAgIH0KCiAgICBpZiAoaXRlcmF0aW9uID4gbWF4X2l0ZXJhdGlvbnMpIHsKICAgICAgICBjb3V0IDw8ICJNZXRob2QgZGlkIG5vdCBjb252ZXJnZSB3aXRoaW4gdGhlIG1heGltdW0gbnVtYmVyIG9mIGl0ZXJhdGlvbnMuXG4iOwogICAgfQoKICAgIHJldHVybiAwOwp9Cg==