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

by

where

The Butcher tableau for this ERK method is

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 *k*s 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 *k*s in second argument of *f*. Because this is an explicit method, each *k* only depends on the previous *k*s, 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

where

This method is summarized in the following Butcher tableau.

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

where

and the Butcher tableau is

## 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 *k*s.

Now

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

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

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

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

very nice blog. suggestion: IMEX, Additive Runge-Kutta

Some notes I made a few years ago: https://idontgetoutmuch.wordpress.com/2018/03/04/implicit-runge-kutta-and-gnu-scientific-library/