Game Development Reference

In-Depth Information

Figure 7-5. Unstable results using Euler's method

It's clear from the figure that using Euler's method yields terribly unstable results. You

can see how the motion amplitude continues to grow. If this were a game, say, where

you have a few objects connected by springs interacting with one another, then this sort

of instability would manifest itself by wildly unrealistic motion of those objects. Worse

yet, the simulation could blow up, numerically speaking.

Often, your choice of step size affects stability where smaller step sizes tend to eliminate

or minimize instability and larger steps aggravate the problem. If you're working with

a particularly unwieldy function, you might find that you have to decrease your step

size substantially in order to achieve stability. This, however, increases the number of

computations you need to make. One way around this difficulty is to employ what's

called an
adaptive step size method
, in which you change your step size on the fly de‐

pending on the magnitude of a predicted amount of truncation error from one step to

the next. If the truncation error is too large, then you back up a step, decrease your step

size, and try again.

One way to implement this for Euler's method is to first take a step of size ∆
t
to obtain

an estimate at time
t
+ ∆
t
, and then take two steps (starting from time
t
again) of size

∆
t
/
2
to obtain another estimate at time
t
+ ∆
t
. Since we've been talking velocity in the