import
java.text.*;
class
GFG
{
static
double
f(
double
x,
double
y)
{
double
v = y -
2
* x * x +
1
;
return
v;
}
static
double
predict(
double
x,
double
y,
double
h)
{
double
y1p = y + h * f(x, y);
return
y1p;
}
static
double
correct(
double
x,
double
y,
double
x1,
double
y1,
double
h)
{
double
e =
0.00001
;
double
y1c = y1;
do
{
y1 = y1c;
y1c = y +
0.5
* h * (f(x, y) + f(x1, y1));
}
while
(Math.abs(y1c - y1) > e);
return
y1c;
}
static
void
printFinalValues(
double
x,
double
xn,
double
y,
double
h)
{
while
(x < xn)
{
double
x1 = x + h;
double
y1p = predict(x, y, h);
double
y1c = correct(x, y, x1, y1p, h);
x = x1;
y = y1c;
}
DecimalFormat df =
new
DecimalFormat(
"#.#####"
);
System.out.println(
"The final value of y at x = "
+
x +
" is : "
+df.format(y));
}
public
static
void
main (String[] args)
{
double
x =
0
, y =
0.5
;
double
xn =
1
;
double
h =
0.2
;
printFinalValues(x, xn, y, h);
}
}