Article 4ZAPQ Runge-Kutta methods and Butcher tableau

Runge-Kutta methods and Butcher tableau

by
John
from John D. Cook on (#4ZAPQ)

If you know one numerical method for solving ordinary differential equations, it's probably Euler's method. If you know two methods, the second is probably 4th order Runge-Kutta. It's standard in classes on differential equations or numerical analysis to present Euler's method as conceptually simple but inefficient introduction, then to present Runge-Kutta as a complicated but efficient alternative.

Runge-Kutta methods are a huge family of numerical methods with a wide variety of trade-offs: efficiency, accuracy, stability, etc. Euler's method is a member of the Runge-Kutta family as are countless other variations. You could devote a career to studying Runge-Kutta methods, and some people have.

Beneath the complexity and variety, all Runge-Kutta methods have a common form that can be summarized by a matrix and two vectors. For explicit Runge-Kutta methods (ERK) the matrix is triangular, and for implicit Runge-Kutta methods (IRK) the matrix is full.

This summary of an RK method is known as a Butcher tableau, named after J. C. Butcher who classified RK methods.

"The" Runge-Kutta method

For example, let's start with what students often take to be "the" Runge-Kutta method. This method approximates solutions to a differential equation of the form

first_order_ode.svg

by

rk4.svg

where

rk4k.svg

The Butcher tableau for this ERK method is

rk4_tableau.svg

The numbers along the left side are the coefficients of h in the first argument of f.

The numbers along the bottom are the coefficients of the ks in the expression for the value of y at the next step.

The numbers in the middle of the array are the coefficients of the ks in second argument of f. Because this is an explicit method, each k only depends on the previous ks, and so the table of coefficients has a triangular form.

Runge-Kutta 3/8 rule

The method above is the most common 4th order ERK rule, there is another known as the 3/8 rule. It is a little less efficient and a little more accurate. A step of this rule is given by

rk_38_rule.svg

where

rk_38_ks.svg

This method is summarized in the following Butcher tableau.

rk_38_tableau.svg

This example makes it a little easier to see what's going on since none of the coefficients in the triangular array are zero. Full detail is given in the section below.

General Explicit Runge-Kutta

The most general form of an ERK rule with s steps is

erk_general_rule.svg

where

erk_general_ks.svg

and the Butcher tableau is

erk_general_tableau.svg

General implicit Runge-Kutta

With explicit (ERK) methods, each k depends only on its predecessors. With implicit (IRK) methods each k potentially depends on each of the others. The matrix in the tableau is full, not triangular, and one must solve for the ks.

Now

irk_general_ks.svg

with the sum going all the way up to s, and the Butcher tableau is

irk_general_tableau.svg

Implicit methods are more complicated to implement, and require more computation for a given step size. However, they are more stable for stiff differential equations and may allow larger steps. Implicit methods are less efficient when they're not needed, and more efficient when they are needed.

Back to Euler's method

I said at the top of the post that Euler's method was a special case of Runge-Kutta. The Butcher tableau for the explicit (forward) Euler method is simply

forward_euler_tableau.svg

and the tableau for the implicit (backward) Euler method is just

backward_euler_tableau.svg

In this post I say more about these two methods and compare their stability.

More on differential equations81MAFyyXaCY
External Content
Source RSS or Atom Feed
Feed Location http://feeds.feedburner.com/TheEndeavour?format=xml
Feed Title John D. Cook
Feed Link https://www.johndcook.com/blog
Reply 0 comments