
16.7 Differential Equations 749
A
1
= F(t
i
, X
i
)
A
2
= F(t
i
+ h/2, X
i
+ hA
1
/2)
A
3
= F(t
i
+ h/2, X
i
+ hA
2
/2)
A
4
= F(t
i
+ h, X
i
+ hA
3
)
X
i+1
= X
i
+
h
6
(A
1
+ 2A
2
+ 2A
3
+ A
4
)
t
i+1
= t
i
+ h
Runge-Kutta with Adaptive Step
For some data sets, it is possible to dynamically adjust the step size h to reduce the
total number of steps to get to a desired final time. The following algorithm is fifth
order and adjusts the step size accordingly.
1. Take two half-steps:
A
1
= F(t
i
, X
i
)
A
2
= F(t
i
+ h/4, X
i
+ hA
1
/4)
A
3
= F(t
i
+ h/4, X
i
+ hA
2
/4)
A
4
= F(t
i
+ h/2, X
i
+ hA
3
/2)
X
inter
= X
i
+
h
12
(A
1
+ 2A
2
+ 2A
3
+ A
4
)
and
B
1
= F(t
i
+ h/2, X
inter
)
B
2
= F(t
i
+ 3h/4, X
inter
+ hB
1
/4)
B
3
= F(t
i
+ 3h/4, X
inter
+ hB
2
/4)
B
4
= F(t
i
+ h, X
inter
+