#include <stdio.h>
#include <math.h>
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, x3, f1, f2, f3;
int step = 1;
printf("Enter the value of x1: ");
scanf("%lf", &x1);
printf("Enter the value of x2: ");
scanf("%lf", &x2);
printf("\n Iteration\t x1\t x2\t x3\t f(x1)\t f(x2)\n");
printf(" --------------------------------------------------------------------------\n");
f1 = f(x1);
f2 = f(x2);
do {
x3 = (f2 * x1 - f1 * x2) / (f2 - f1);
f3 = f(x3);
printf("%8d\t%12.6lf\t%10.6lf\t%10.6lf\t%10.6lf\t%10.6lf\n", step, x1, x2, x3, f1, f2);
if (fabs(f3) < 0.00001)
break;
x1 = x2;
f1 = f2;
x2 = x3;
f2 = f3;
step++;
} while (step <= 8);
printf(" --------------------------------------------------------------------------\n");
printf("\n Approximate root = %.6lf\n", x3);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxtYXRoLmg+Cgpkb3VibGUgZihkb3VibGUgeCkgewogICAgZG91YmxlIGNvZVtdID0gezEsIDAsIC00LCAtOX07CiAgICBkb3VibGUgcmVzdWx0ID0gY29lWzBdOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPCA0OyBpKyspCiAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICogeCArIGNvZVtpXTsKICAgIHJldHVybiByZXN1bHQ7Cn0KCmludCBtYWluKCkgewogICAgZG91YmxlIHgxLCB4MiwgeDMsIGYxLCBmMiwgZjM7CiAgICBpbnQgc3RlcCA9IDE7CiAgICBwcmludGYoIkVudGVyIHRoZSB2YWx1ZSBvZiB4MTogIik7CiAgICBzY2FuZigiJWxmIiwgJngxKTsKICAgIHByaW50ZigiRW50ZXIgdGhlIHZhbHVlIG9mIHgyOiAiKTsKICAgIHNjYW5mKCIlbGYiLCAmeDIpOwoKICAgIHByaW50ZigiXG4gICBJdGVyYXRpb25cdCAgICAgIHgxXHQgICAgICAgIHgyXHQgICAgICAgIHgzXHQgICAgICBmKHgxKVx0ICAgICAgZih4MilcbiIpOwogICAgcHJpbnRmKCIgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIik7CgogICAgZjEgPSBmKHgxKTsKICAgIGYyID0gZih4Mik7CgogICAgZG8gewogICAgICAgIHgzID0gKGYyICogeDEgLSBmMSAqIHgyKSAvIChmMiAtIGYxKTsKICAgICAgICBmMyA9IGYoeDMpOwogICAgICAgIHByaW50ZigiJThkXHQlMTIuNmxmXHQlMTAuNmxmXHQlMTAuNmxmXHQlMTAuNmxmXHQlMTAuNmxmXG4iLCBzdGVwLCB4MSwgeDIsIHgzLCBmMSwgZjIpOwogICAgICAgIGlmIChmYWJzKGYzKSA8IDAuMDAwMDEpCiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIHgxID0geDI7CiAgICAgICAgZjEgPSBmMjsKICAgICAgICB4MiA9IHgzOwogICAgICAgIGYyID0gZjM7CiAgICAgICAgc3RlcCsrOwogICAgfSB3aGlsZSAoc3RlcCA8PSA4KTsKCiAgICBwcmludGYoIiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKICAgIHByaW50ZigiXG4gICBBcHByb3hpbWF0ZSByb290ID0gJS42bGZcbiIsIHgzKTsKICAgIHJldHVybiAwOwp9Cg==