#include <bits/stdc++.h>
using namespace std;
double func(double x)
{
double coeff[] = {1, 0, -4, -9};
double result = coeff[0];
for (int i = 1; i < 4; i++)
result = result * x + coeff[i];
return result;
}
int main()
{
double a, b, c, fa, fb, fc;
cout << "Enter first guess a: ";
cin >> a;
cout << "Enter second guess b: ";
cin >> b;
fa = func(a);
fb = func(b);
if (fa * fb > 0)
{
cout << "Invalid guesses! f(a) and f(b) must have opposite signs.\n";
return 0;
}
cout << "\n--------------------------------------------------------------\n";
cout << " Iteration" << setw(10) << "a" << setw(12) << "b"
<< setw(12) << "c" << setw(14) << "f(a)" << setw(12) << "f(b)" << endl;
cout << "--------------------------------------------------------------\n";
for (int i = 1; i <= 8; i++)
{
c = (a * fb - b * fa) / (fb - fa);
fc = func(c);
cout << setw(6) << i << setw(14) << fixed << setprecision(6)
<< a << setw(12) << b << setw(12) << c
<< setw(12) << fa << setw(12) << fb << endl;
if (fabs(fc) < 0.00001)
break;
a = b;
fa = fb;
b = c;
fb = fc;
}
cout << "--------------------------------------------------------------\n";
cout << "\nApproximate Root = " << fixed << setprecision(6) << c << endl;
cout << "--------------------------------------------------------------\n";
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpkb3VibGUgZnVuYyhkb3VibGUgeCkKewogICAgZG91YmxlIGNvZWZmW10gPSB7MSwgMCwgLTQsIC05fTsKICAgIGRvdWJsZSByZXN1bHQgPSBjb2VmZlswXTsKICAgIGZvciAoaW50IGkgPSAxOyBpIDwgNDsgaSsrKQogICAgICAgIHJlc3VsdCA9IHJlc3VsdCAqIHggKyBjb2VmZltpXTsKICAgIHJldHVybiByZXN1bHQ7Cn0KCmludCBtYWluKCkKewogICAgZG91YmxlIGEsIGIsIGMsIGZhLCBmYiwgZmM7CgogICAgY291dCA8PCAiRW50ZXIgZmlyc3QgZ3Vlc3MgYTogIjsKICAgIGNpbiA+PiBhOwogICAgY291dCA8PCAiRW50ZXIgc2Vjb25kIGd1ZXNzIGI6ICI7CiAgICBjaW4gPj4gYjsKCiAgICBmYSA9IGZ1bmMoYSk7CiAgICBmYiA9IGZ1bmMoYik7CgogICAgaWYgKGZhICogZmIgPiAwKQogICAgewogICAgICAgIGNvdXQgPDwgIkludmFsaWQgZ3Vlc3NlcyEgZihhKSBhbmQgZihiKSBtdXN0IGhhdmUgb3Bwb3NpdGUgc2lnbnMuXG4iOwogICAgICAgIHJldHVybiAwOwogICAgfQoKICAgIGNvdXQgPDwgIlxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiI7CiAgICBjb3V0IDw8ICIgSXRlcmF0aW9uIiA8PCBzZXR3KDEwKSA8PCAiYSIgPDwgc2V0dygxMikgPDwgImIiCiAgICAgICAgIDw8IHNldHcoMTIpIDw8ICJjIiA8PCBzZXR3KDE0KSA8PCAiZihhKSIgPDwgc2V0dygxMikgPDwgImYoYikiIDw8IGVuZGw7CiAgICBjb3V0IDw8ICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIjsKCiAgICBmb3IgKGludCBpID0gMTsgaSA8PSA4OyBpKyspCiAgICB7CiAgICAgICAgYyA9IChhICogZmIgLSBiICogZmEpIC8gKGZiIC0gZmEpOwogICAgICAgIGZjID0gZnVuYyhjKTsKCiAgICAgICAgY291dCA8PCBzZXR3KDYpIDw8IGkgPDwgc2V0dygxNCkgPDwgZml4ZWQgPDwgc2V0cHJlY2lzaW9uKDYpCiAgICAgICAgICAgICA8PCBhIDw8IHNldHcoMTIpIDw8IGIgPDwgc2V0dygxMikgPDwgYwogICAgICAgICAgICAgPDwgc2V0dygxMikgPDwgZmEgPDwgc2V0dygxMikgPDwgZmIgPDwgZW5kbDsKCiAgICAgICAgaWYgKGZhYnMoZmMpIDwgMC4wMDAwMSkKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGEgPSBiOwogICAgICAgIGZhID0gZmI7CiAgICAgICAgYiA9IGM7CiAgICAgICAgZmIgPSBmYzsKICAgIH0KCiAgICBjb3V0IDw8ICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIjsKICAgIGNvdXQgPDwgIlxuQXBwcm94aW1hdGUgUm9vdCA9ICIgPDwgZml4ZWQgPDwgc2V0cHJlY2lzaW9uKDYpIDw8IGMgPDwgZW5kbDsKICAgIGNvdXQgPDwgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iOwoKICAgIHJldHVybiAwOwp9Cg==