Types of N-body ODE Integration Methods

June 9, 1996

32

By using some auxiliary equations, an under determined systems of equations

1

can

be found. Then, by choosing the values of a few of the constants
or
, the other con-

stants can be solved for. Some values of the constants have better properties than others. In

particular, by using different combinations of

*a*

*i*

constants and

*k*

-terms, it is possible to

obtain two different Runge-Kutta formulas. As will be discussed in Section
3.0 on

page
40, this has certain advantages.

The error term for Runge-Kutta's method can be hard, but not impossible to deter-

mine. It can be shown that the order of the error term is always going to be less than or

equal to the number of

*k*

terms and if there are more than four

*k*

terms, the order must be

strictly less than the number of

*k*

terms. So, using five

*k*

terms can not increase the order of

the method, although it can reduce the constant in the error term. Thus, using four

*k*

terms

is often the most efficient of the Runge-Kutta methods.

The most popular constants for the 4

th

order Runge-Kutta method yield:

where:

The Runge-Kutta method uses a series of Euler like steps to create trial points into

the interval that is being integrated. As is shown in FIGURE 22., the first evaluation of

*f()*

gets the slope of the path at time

*t*

and this slope is used to get a trial evaluation at the mid

point of the interval. The second evaluation of

*f()*

is used to get a different evaluation at the

mid point. The trial points are always taken at the location that is the result of starting at

*x(t)*

and moving along the given slope for the desired length of time. Even though

*k*

*2*

and

*k*

*3*

are both taken at the mid point,

*k*

*2*

will have (in this example) a worse approximation of

1. A list of equations that has more variables (unknowns) than equations. When the system of equations is

under determined you will always be free to pick (or be forced to pick depending on how you look at it) the

values for some of the variables in order to find the value of the rest of the variables.

*a*

*i*

*b*

*j*

*x*
*t*
*h*

+

(

)

*x*
*t*

(
)

16

*k*

1

2

*k*

2

2

*k*

3

*k*

4

+

+

+

(

)

+

=

*k*

1

*h**f*
*x*
*t*

(
)

(

)

=

*k*

2

*h**f*
*x*
*t*
*h*

2

+

(

)

12

*k*

1

+

(

)

=

*k*

3

*h**f*
*x*
*t*
*h*

2

+

(

)

12

*k*

2

+

(

)

=

*k*

4

*h**f*
*x*
*t*
*h*

+

(

)

*k*

3

+

(

)

=

*E*

*O*
*h*

5

(
)

=

This document is best viewed as n-body.pdf because the translation to html was buggy.