[76] in mathematical software users group
Re: Favourite diffeq algorithms?
daemon@ATHENA.MIT.EDU (alexp@Athena.MIT.EDU)
Tue Mar 30 10:59:53 1993
From: alexp@Athena.MIT.EDU
To: msug@Athena.MIT.EDU
Date: Tue, 30 Mar 93 10:58:59 EST
My personal favorite is called the "LPA" method, or "Last Point Approximation".
It is very close to the lowest order Euler approximation; the only difference
is that the velocity used to calculate the "next position" is evaluated at
the end of the time stepping interval instead of the beginning (I am using
a physics model of course). This apparently trivial difference makes a huge
difference in results though, as the LPA method has been shown to be stable
when motion is integrated over large numbers of circular orbits (in the
sense that energy is "numerically conserved", unlike the Euler method,
where the energy increases monotonically, due to cumulative approximation
errors). By its nature, the method applies to initial value problems.
What this means in practice is that it is possible to get accurate results
for all sorts of orbital and oscillatory motions that can be computed very
rapidly because the method is so simple (I have done a number of examples in
Turbo Pascal for my own entertainment).
The "discovery" of the method is credited to Abby Aspel, a student at Newton
North High School, who accidentally transposed two lines in a BASIC program
while trying to write a program using the Euler method (really!). What is
pretty surprising (besides the fact that no one seems to have noticed this
until 1981) is that it still seems to be relatively unknown, despite the
fact that it is very simple and quite useful. It is only first order, and
it may have been generalized by now to higher orders - I don't know about
that.
For more details see "Stable solutions using the Euler approximation" by
A. Comer, Am. J. Phys. 49(5), May 81, p. 455.