#include <bits/stdc++.h>
using namespace std;
double f(double x)
{
double coe[] = {1, 0, -4, -9};
double result = coe[0];
for (int i = 1; i < 4; i++)
result = result * x + coe[i];
return result;
}
int main()
{
double x1, x2;
cout << "Enter the value of x1: ";
cin >> x1;
cout << "\nEnter the value of x2: ";
cin >> x2;
cout << "\n\n";
cout << " Iteration" << setw(10) << "x1" << setw(12) << "x2"
<< setw(12) << "x3" << setw(12) << "f(x1)" << setw(12) << "f(x2)" << endl;
cout << " --------------------------------------------------------------------------\n";
double f1 = f(x1);
double f2 = f(x2);
double x3, f3;
int step = 1;
do {
x3 = (f2 * x1 - f1 * x2) / (f2 - f1);
f3 = f(x3);
cout << setw(8) << step
<< setw(14) << fixed << setprecision(6) << x1 << setw(12) << x2 << setw(12) << x3
<< setw(12) << f1 << setw(12) << f2 << endl;
if (fabs(f3) < 0.00001)
break;
x1 = x2;
f1 = f2;
x2 = x3;
f2 = f3;
step++;
} while (step <= 8);
cout << " --------------------------------------------------------------------------\n";
cout << "\n Approximate root = " << fixed << setprecision(6) << x3 << endl;
cout << endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmRvdWJsZSBmKGRvdWJsZSB4KSAKewogICAgZG91YmxlIGNvZVtdID0gezEsIDAsIC00LCAtOX07CiAgICBkb3VibGUgcmVzdWx0ID0gY29lWzBdOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPCA0OyBpKyspCiAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICogeCArIGNvZVtpXTsKICAgIHJldHVybiByZXN1bHQ7Cn0KCmludCBtYWluKCkKewogICAgZG91YmxlIHgxLCB4MjsKICAgIGNvdXQgPDwgIkVudGVyIHRoZSB2YWx1ZSBvZiB4MTogIjsKICAgIGNpbiA+PiB4MTsKICAgIGNvdXQgPDwgIlxuRW50ZXIgdGhlIHZhbHVlIG9mIHgyOiAiOwogICAgY2luID4+IHgyOwoKICAgIGNvdXQgPDwgIlxuXG4iOwogICAgY291dCA8PCAiICAgSXRlcmF0aW9uIiA8PCBzZXR3KDEwKSA8PCAieDEiIDw8IHNldHcoMTIpIDw8ICJ4MiIKICAgICAgICAgPDwgc2V0dygxMikgPDwgIngzIiA8PCBzZXR3KDEyKSA8PCAiZih4MSkiIDw8IHNldHcoMTIpIDw8ICJmKHgyKSIgPDwgZW5kbDsKICAgIGNvdXQgPDwgIiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iOwoKICAgIGRvdWJsZSBmMSA9IGYoeDEpOwogICAgZG91YmxlIGYyID0gZih4Mik7CiAgICBkb3VibGUgeDMsIGYzOwogICAgaW50IHN0ZXAgPSAxOwoKICAgIGRvIHsKICAgICAgICB4MyA9IChmMiAqIHgxIC0gZjEgKiB4MikgLyAoZjIgLSBmMSk7CiAgICAgICAgZjMgPSBmKHgzKTsKCiAgICAgICAgY291dCA8PCBzZXR3KDgpIDw8IHN0ZXAKICAgICAgICAgICAgIDw8IHNldHcoMTQpIDw8IGZpeGVkIDw8IHNldHByZWNpc2lvbig2KSA8PCB4MSAgIDw8IHNldHcoMTIpIDw8IHgyIDw8IHNldHcoMTIpIDw8IHgzCiAgICAgICAgICAgICA8PCBzZXR3KDEyKSA8PCBmMSAgPDwgc2V0dygxMikgPDwgZjIgPDwgZW5kbDsKCiAgICAgICAgaWYgKGZhYnMoZjMpIDwgMC4wMDAwMSkKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIHgxID0geDI7CiAgICAgICAgZjEgPSBmMjsKICAgICAgICB4MiA9IHgzOwogICAgICAgIGYyID0gZjM7CiAgICAgICAgc3RlcCsrOwogICAgfSB3aGlsZSAoc3RlcCA8PSA4KTsKCiAgICBjb3V0IDw8ICIgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIjsKICAgIGNvdXQgPDwgIlxuICAgQXBwcm94aW1hdGUgcm9vdCA9ICIgPDwgZml4ZWQgPDwgc2V0cHJlY2lzaW9uKDYpIDw8IHgzIDw8IGVuZGw7CiAgICBjb3V0IDw8IGVuZGw7CgogICAgcmV0dXJuIDA7Cn0K