public class Main {
static double f(double x) {
return 2*x*x*x + 3*x - 1;
}
public static void main
(String[] args
) {
double x0 = -1; // starting value
double x1 = 2; // starting value
double eps = 1e-6;
double x2, f0, f1, f2;
int iter = 1;
System.
out.
println("Enter the value of x0: -1"); System.
out.
println("Enter the value of x1: 2\n");
System.
out.
println("Iteration x0\t\t x1\t\t x2\t\t f0\t\t f1\t\t f2"); System.
out.
println("--------------------------------------------------------------------------------");
while (Math.
abs(x1
- x0
) > eps
) {
x2 = (x0 + x1) / 2;
f0 = f(x0);
f1 = f(x1);
f2 = f(x2);
System.
out.
printf("%-10d %.6f %.6f %.6f %.6f %.6f %.6f\n",
iter, x0, x1, x2, f0, f1, f2);
if (f0 * f2 < 0)
x1 = x2;
else
x0 = x2;
iter++;
}
System.
out.
println("\nApproximate root = " + (x0
+ x1
) / 2); }
}
cHVibGljIGNsYXNzIE1haW4gewoKICAgIHN0YXRpYyBkb3VibGUgZihkb3VibGUgeCkgewogICAgICAgIHJldHVybiAyKngqeCp4ICsgMyp4IC0gMTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CgogICAgICAgIGRvdWJsZSB4MCA9IC0xOyAgIC8vIHN0YXJ0aW5nIHZhbHVlCiAgICAgICAgZG91YmxlIHgxID0gMjsgICAgLy8gc3RhcnRpbmcgdmFsdWUKICAgICAgICBkb3VibGUgZXBzID0gMWUtNjsKICAgICAgICBkb3VibGUgeDIsIGYwLCBmMSwgZjI7CiAgICAgICAgaW50IGl0ZXIgPSAxOwoKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkVudGVyIHRoZSB2YWx1ZSBvZiB4MDogLTEiKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkVudGVyIHRoZSB2YWx1ZSBvZiB4MTogIDJcbiIpOwoKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkl0ZXJhdGlvbiAgIHgwXHRcdCAgeDFcdFx0ICB4Mlx0XHQgICBmMFx0XHQgICBmMVx0XHQgICBmMiIpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iKTsKCiAgICAgICAgd2hpbGUgKE1hdGguYWJzKHgxIC0geDApID4gZXBzKSB7CgogICAgICAgICAgICB4MiA9ICh4MCArIHgxKSAvIDI7CiAgICAgICAgICAgIGYwID0gZih4MCk7CiAgICAgICAgICAgIGYxID0gZih4MSk7CiAgICAgICAgICAgIGYyID0gZih4Mik7CgogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50ZigiJS0xMGQgJS42ZiAgJS42ZiAgJS42ZiAgJS42ZiAgJS42ZiAgJS42ZlxuIiwKICAgICAgICAgICAgICAgICAgICBpdGVyLCB4MCwgeDEsIHgyLCBmMCwgZjEsIGYyKTsKCiAgICAgICAgICAgIGlmIChmMCAqIGYyIDwgMCkKICAgICAgICAgICAgICAgIHgxID0geDI7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIHgwID0geDI7CgogICAgICAgICAgICBpdGVyKys7CiAgICAgICAgfQoKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlxuQXBwcm94aW1hdGUgcm9vdCA9ICIgKyAoeDAgKyB4MSkgLyAyKTsKICAgIH0KfQo=