#include <iostream>
#include <cmath>
using namespace std;
double f(double x) {
return x*x*x + x*x - 1;
}
int main() {
double x0, x1, x2, f0, f1, f2;
int iteration = 1, maxIter = 20;
double E = 0.0001;
cout << "Enter the value of x0: ";
cin >> x0;
cout << "Enter the value of x1: ";
cin >> x1;
cout << "\nIteration\tx0\t\tx1\t\tx2\t\tf0\t\tf1\t\tf2\n";
cout << "-----------------------------------------------------------------------------\n";
do {
f0 = f(x0);
f1 = f(x1);
if (f1 - f0 == 0) {
cout << "Division by zero error!";
return 1;
}
x2 = (x0 * f1 - x1 * f0) / (f1 - f0);
f2 = f(x2);
cout << iteration << "\t\t"
<< x0 << "\t"
<< x1 << "\t"
<< x2 << "\t"
<< f0 << "\t"
<< f1 << "\t"
<< f2 << endl;
x0 = x1;
x1 = x2;
iteration++;
if (fabs(f2) < E)
break;
} while (iteration <= maxIter);
cout << "\nApproximate root = " << x2 << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpkb3VibGUgZihkb3VibGUgeCkgewogICAgcmV0dXJuIHgqeCp4ICsgeCp4IC0gMTsKfQoKaW50IG1haW4oKSB7CiAgICBkb3VibGUgeDAsIHgxLCB4MiwgZjAsIGYxLCBmMjsKICAgIGludCBpdGVyYXRpb24gPSAxLCBtYXhJdGVyID0gMjA7CiAgICBkb3VibGUgRSA9IDAuMDAwMTsKCiAgICBjb3V0IDw8ICJFbnRlciB0aGUgdmFsdWUgb2YgeDA6ICI7CiAgICBjaW4gPj4geDA7CiAgICBjb3V0IDw8ICJFbnRlciB0aGUgdmFsdWUgb2YgeDE6ICI7CiAgICBjaW4gPj4geDE7CgogICAgY291dCA8PCAiXG5JdGVyYXRpb25cdHgwXHRcdHgxXHRcdHgyXHRcdGYwXHRcdGYxXHRcdGYyXG4iOwogICAgY291dCA8PCAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiI7CgogICAgZG8gewogICAgICAgIGYwID0gZih4MCk7CiAgICAgICAgZjEgPSBmKHgxKTsKCiAgICAgICAgaWYgKGYxIC0gZjAgPT0gMCkgewogICAgICAgICAgICBjb3V0IDw8ICJEaXZpc2lvbiBieSB6ZXJvIGVycm9yISI7CiAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgIH0KCiAgICAgICAgeDIgPSAoeDAgKiBmMSAtIHgxICogZjApIC8gKGYxIC0gZjApOwogICAgICAgIGYyID0gZih4Mik7CgogICAgICAgIGNvdXQgPDwgaXRlcmF0aW9uIDw8ICJcdFx0IgogICAgICAgICAgICAgPDwgeDAgPDwgIlx0IgogICAgICAgICAgICAgPDwgeDEgPDwgIlx0IgogICAgICAgICAgICAgPDwgeDIgPDwgIlx0IgogICAgICAgICAgICAgPDwgZjAgPDwgIlx0IgogICAgICAgICAgICAgPDwgZjEgPDwgIlx0IgogICAgICAgICAgICAgPDwgZjIgPDwgZW5kbDsKCiAgICAgICAgeDAgPSB4MTsKICAgICAgICB4MSA9IHgyOwoKICAgICAgICBpdGVyYXRpb24rKzsKCiAgICAgICAgaWYgKGZhYnMoZjIpIDwgRSkKICAgICAgICAgICAgYnJlYWs7CgogICAgfSB3aGlsZSAoaXRlcmF0aW9uIDw9IG1heEl0ZXIpOwoKICAgIGNvdXQgPDwgIlxuQXBwcm94aW1hdGUgcm9vdCA9ICIgPDwgeDIgPDwgZW5kbDsKCiAgICByZXR1cm4gMDsKfQo=