What is the difference between Runge-Kutta-Fehlberg method, and the Runge-Kutta-4th order method?

Any information on Runge-Kutta-Fehlberg would be appreciated.

# Runge-Kutta-Fehlberg

Page 1 of 1## 2 Replies - 11084 Views - Last Post: 07 May 2009 - 02:07 PM

##
**Replies To:** Runge-Kutta-Fehlberg

### #2

## Re: Runge-Kutta-Fehlberg

Posted 24 April 2009 - 07:30 PM

### #6

## Re: Runge-Kutta-Fehlberg

Posted 07 May 2009 - 02:07 PM

The wikipedia link already posted is a good start, however it only describes the Runge-Kutta-Fehlberg 4/5 method (which seems to be pretty commonly described on the web). There are also other higher order RKF methods, such as the RKF 7/8 which is actually what I was looking for info on when I came across this question. Since I've been fiddling around with this lately, I'll add a bit.

The common workhorse Runge-Kutta 4th order (RK4) method makes 4 evaluations of the derivative function per integration step. One at the start, to compute a first trial midpoint value, then an updated trial midpoint value, then the endpoint.

As described in the Wiki page, the RKF45 method makes 6 derivative evaluations per step and offers both a 4th and 5th order correct evaluation (and also can use the difference between these to estimate an "optimal" stepsize). As a result, you are doing more computations per step, but this allows you to take longer steps with less loss of accuracy; meaning you might be able to evaluate your complete integral with a net total of fewer derivative evaluations.

As an example of this accuracy difference (as part of work I'm doing anyway), I did a propagation of a basic 2-body satellite orbit using both an RK4 and an RKF45 integrator with fixed stepsizes and compared the results to the "true" answer. The basic differential equation was the vector equation (16) here. I used several orbit geometries but a representative one was a Molniya orbit. Here are the initial values:

GM = 398600.4418 (km^3/sec^2)

r0 = (-38.579423163318772, -3079.5067011131969, -6150.1153401116208) km

v0 = (10.043728537553161, -.12582575425073264, 0.0) km/sec

This orbit has the following classical orbital elements:

Semi-major Axis = 26553.374572 km

Eccentricity = 0.74096938

Inclination = 63.4 degrees

Right Ascension of Ascending Node = -0.71775213 degrees

Arg of Periapsis = 270.0 degrees

True Anomaly (initial) = 0.0 degrees

After propagating forward 24 hours (86400 seconds), the "correct" position should be:

rf = (2700.5334624649154, -2972.8615768087243, -5868.6464836395999) km

vf=(9.6115971235305722, 0.874136859652542731, 1.9859125480560684)km/s

Propagating with a straight RK4 integrator with a 30 second stepsize gave me a final vector that was off from this by about

The common workhorse Runge-Kutta 4th order (RK4) method makes 4 evaluations of the derivative function per integration step. One at the start, to compute a first trial midpoint value, then an updated trial midpoint value, then the endpoint.

As described in the Wiki page, the RKF45 method makes 6 derivative evaluations per step and offers both a 4th and 5th order correct evaluation (and also can use the difference between these to estimate an "optimal" stepsize). As a result, you are doing more computations per step, but this allows you to take longer steps with less loss of accuracy; meaning you might be able to evaluate your complete integral with a net total of fewer derivative evaluations.

As an example of this accuracy difference (as part of work I'm doing anyway), I did a propagation of a basic 2-body satellite orbit using both an RK4 and an RKF45 integrator with fixed stepsizes and compared the results to the "true" answer. The basic differential equation was the vector equation (16) here. I used several orbit geometries but a representative one was a Molniya orbit. Here are the initial values:

GM = 398600.4418 (km^3/sec^2)

r0 = (-38.579423163318772, -3079.5067011131969, -6150.1153401116208) km

v0 = (10.043728537553161, -.12582575425073264, 0.0) km/sec

This orbit has the following classical orbital elements:

Semi-major Axis = 26553.374572 km

Eccentricity = 0.74096938

Inclination = 63.4 degrees

Right Ascension of Ascending Node = -0.71775213 degrees

Arg of Periapsis = 270.0 degrees

True Anomaly (initial) = 0.0 degrees

After propagating forward 24 hours (86400 seconds), the "correct" position should be:

rf = (2700.5334624649154, -2972.8615768087243, -5868.6464836395999) km

vf=(9.6115971235305722, 0.874136859652542731, 1.9859125480560684)km/s

Propagating with a straight RK4 integrator with a 30 second stepsize gave me a final vector that was off from this by about

**97 meters**. Doing the same prop with the same stepsize with the RKF45 5th order accurate result gave a final error of about**4.4 meters**. That's the difference. A higher order integrator would probably give an even lower error still with the same step size.
Page 1 of 1