984 VIIe. Engineering Mathematics: Numerical Analysis
)],(),([
2
)()(
)(
1
11
k
i
iiiii
yxfyxf
x
xyxy
+
++
+
∆
+= VIIe.2.3
where in Equation VIIe.2.3, k is the iteration index and is placed inside the paren-
theses to emphasize that it is not an exponent for y. To demonstrate the modified
Euler method, let’s apply the predictor-corrector concept to the same example
used in Section 2.1. For this purpose, we substitute:
),(2
2
yxfxy
dx
dy
=+=
into Equation VIIe.1.3 to obtain:
)]2()2([
2
)(
1
2
1
2
)1(
1
k
i
iiii
k
i
yxyx
x
yy
+
+
+
+
+++
∆
+=
To find the starting value (i.e.
0
1
y ) we use the Predictor (i.e. Equation VIIe.2.1).
Using an interval size of
05.0=∆x , the iterations for y
1
progress as follows:
=
0
1
y 0.5 + 0.05 (0 + 2 × 0.5) = 0.55
=
1
1
y 0.5 + 0.025 [(0 + 2 × 0.5) + (0.05
2
+ 2 × 0.55)] = 0.5525625
=
2
1
y 0.5 + 0.025 [(0 + 2 × 0.5) + (0.05
2
+ 2 × 0.5525625)] = 0.5526906
=
3
1
y 0.5 + 0.025 [(0 + 2 × 0.5) + (0.05
2
+ 2 × 0.5526906)] = 0.55269700
=
4
1
y 0.5 + 0.025 [(0 + 2 × 0.5) + (0.05
2
+ 2 × 0.55269700)] = 0.55269730
=
5
1
y 0.5 + 0.025 [(0 + 2 × 0.5) + (0.05
2
+ 2 × 0.55269730)] = 0.55269730
In this case, the iteration converged in five steps. Generally, however, we stop the
process after the specified convergence criterion is met, then we proceed to calcu-
late y
2
, y
3
, ",
4
y until the specified interval is covered.
For higher accuracy, we may choose a smaller increment such as 0.01, 0.001,
etc. The results obtained from the modified Euler method for
05.0=∆x ,
01.0=∆x , and 001.0=∆x are shown in Table VIIe.2.5. The data for Ta-
ble VIIe.1.4 are produced by FORTRAN program Table VIIe.1.2, included on the
accompanying CD-ROM.
Table VIIe.2.5. The modified Euler method
x
05.0=∆x 01.0=∆x 001.0=∆x
y
Analytical
0.0 0.5000000 0.5000000 0.5000000 0.5000000
0.1 0.6112050 0.6110582 0.6110521 0.611052
0.2 0.7492421 0.7488834 0.7488687 0.748868
0.3 0.9222736 0.9216164 0.9215894 0.921589
0.4 1.1402705 1.1392002 1.1391562 1.139156
0.5 1.4154136 1.4137793 1.4137121 1.413711
0.6 1.7625828 1.7601872 1.7600888 1.760087