Game Development Reference
In-Depth Information
Figure 1.8. Using Euler's method to approximate an orbit.
engines do just that for that reason), because of the nature of Euler's method the
error will still accumulate.
1.7.2 Higher-Order Explicit Methods
One solution to this problem is to realize that we are trying to approximate a non-
linear function with a linear function. If we take a weighted average of samples
of the derivative across our interval, perhaps we can construct a better approxi-
mation. The higher-order Runge-Kutta methods do just this. The most notable
example is Runge-Kutta Order 4, or just RK4, which takes four samples of the
derivative.
In general, RK4 will provide a better approximation of the function. However,
it does come with the cost of more invocations of the derivative function, which
may be expensive. In addition, it still does not solve our problem with stiff equa-
tions. For particularly stiff equations, RK4 will still add enough energy into the
system to cause it to spiral out of control. Fortunately, there are other possibilities.
1.7.3
Implicit Methods
One method uses an alternative definition of the derivative:
x ( t )
âˆ’
x ( t
âˆ’
h )
x ( t ) = lim
hâ†’ 0
.
h
If we assume small h and again rearrange terms, we get
= x ( t
h )+ h x ( t ) .
x ( t )
âˆ’
Substituting t + h for t , we end up with
= x ( t )+ h x ( t + h ) .
x ( t + h )