#include <stdio.h>
#include <math.h>
double f(double x) {
return x * x * x - 4;
}
int main() {
double x1 = 1, x2 = 3, x0, f1, f2, f0, E = 1e-8;
int i;
f1 = f(x1);
f2 = f(x2);
printf("Iter\t x1\t\t x2\t\t x0\t\t f1\t\t f2\t\t f0\n");
for (i = 1; i <= 3; i++) {
x0 = x1 - (f1 * (x2 - x1)) / (f2 - f1);
f0 = f(x0);
printf("%d\t%.6lf\t%.6lf\t%.6lf\t%.6lf\t%.6lf\t%.6lf\n", i, x1, x2, x0, f1, f2, f0);
if (f1 * f0 < 0)
x2 = x0;
else
x1 = x0;
f1 = f(x1);
f2 = f(x2);
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxtYXRoLmg+Cgpkb3VibGUgZihkb3VibGUgeCkgewogICAgcmV0dXJuIHggKiB4ICogeCAtIDQ7Cn0KCmludCBtYWluKCkgewogICAgZG91YmxlIHgxID0gMSwgeDIgPSAzLCB4MCwgZjEsIGYyLCBmMCwgRSA9IDFlLTg7CiAgICBpbnQgaTsKICAgIGYxID0gZih4MSk7CiAgICBmMiA9IGYoeDIpOwogICAgcHJpbnRmKCJJdGVyXHQgeDFcdFx0IHgyXHRcdCB4MFx0XHQgZjFcdFx0IGYyXHRcdCBmMFxuIik7CiAgICBmb3IgKGkgPSAxOyBpIDw9IDM7IGkrKykgewogICAgICAgIHgwID0geDEgLSAoZjEgKiAoeDIgLSB4MSkpIC8gKGYyIC0gZjEpOwogICAgICAgIGYwID0gZih4MCk7CiAgICAgICAgcHJpbnRmKCIlZFx0JS42bGZcdCUuNmxmXHQlLjZsZlx0JS42bGZcdCUuNmxmXHQlLjZsZlxuIiwgaSwgeDEsIHgyLCB4MCwgZjEsIGYyLCBmMCk7CiAgICAgICAgaWYgKGYxICogZjAgPCAwKQogICAgICAgICAgICB4MiA9IHgwOwogICAgICAgIGVsc2UKICAgICAgICAgICAgeDEgPSB4MDsKICAgICAgICBmMSA9IGYoeDEpOwogICAgICAgIGYyID0gZih4Mik7CiAgICB9CiAgICByZXR1cm4gMDsKfQo=