List of some known Runge-Kutta methods family

Back to main page
Last update: 2013-02-07

Here you can find some (known) families of Runge-Kutta (RK) methods in Maple (text) file.
For example, classical RK-methods of order 4 is represented by next procedure:
RK_44 := proc(c2, c3)::Matrix;
    local a,d;
	if c2=1/2 then ERROR(`RK_44: c2=1/2`); end if;
	if c2=c3  then ERROR(`RK_44: c2=c3`);  end if;
	if c2=1   then ERROR(`RK_44: c2=1`);   end if;
	if c3=1   then ERROR(`RK_44: c3=1`);   end if;
	d := factor(3-4*(c2+c3)+6*c2*c3);
	if d=0 then ERROR(`RK_set44: 3-4*(c2+c3)+6*c2*c3=0`); end if;
    a := Matrix(5,5);
    a[2,1] := c2;
    a[3,2] := c3*(c3-c2)/(2*c2*(1-2*c2));
    a[3,1] := c3-a[3,2];
    a[4,2] := (c2-1)*(2-c2-5*c3+4*c3*c3)/(2*c2*(c3-c2)*d); 
    a[4,3] := (1-2*c2)*(c3-1)*(c2-1)/(c3*(c3-c2)*d); 
    a[4,1] := 1 - a[4,3] - a[4,2];
    a[5,2] := (1-2*c3)/(12*c2*(c2-1)*(c3-c2)); 
    a[5,3] := (2*c2-1)/(12*c3*(c3-1)*(c3-c2)); 
    a[5,4] := (3-4*c2-4*c3+6*c2*c3)/(12*(c2-1)*(c3-1));
    a[5,1] := 1 - a[5,4] - a[5,3] - a[5,2];
end proc;

Name psReferenceFeature
Order 4
RK_44(c2,c3) 44 [1] Classical
RK_44a(b3) 44 [1] c2=c3=1/2
RK_44b(b4) 44 [1] c2=1, c3=1/2
RK_45(c2, c3, c4, c5, b2, a32, a42)45 ? dim = 7
Order 5
RK_56 (c2, c3, c4, c5, a43) 56 [1] Butcher, b2=0
RK_56a(c2, c3, c4, c5, b2, a43) 56 ? dim=6
Order 6
RK_67(c2, c3, c5, c6) 67 [1] Butcher, b2=0
RK_67a(c3, c5, c6) 67 ? b2<>0, b1=b7=1/12
RK_67b(c2, a32, b3) 67 ? b2<>0, c2=c3=c6
Order 7
RK_79(c4, c5) 79 [1] Butcher, b2=b3=0
RK_79d(c2,c3,c4,c5,a52,c7,ind) 79 - S.Khashin, b2=0, b3≠0
Order 8
RK_8_11(a105, b8)811[2] Assui Kouassi Richard, Seka Hippolyte
  1. Butcher, J. C., "Numerical Methods for Ordinary Differential Equations" Second Edition, J. Wiley, Chichester, (2008)
  2. Seka Hippolyte & Assui Kouassi Richard, 2019. "A New Eighth Order Runge-Kutta Family Method," Journal of Mathematics Research, Canadian Center of Science and Education, vol. 11(2), pages 190-199, April.

Methods of order 4


RK_44(c2,c3) - standart 4-stage RK method of order 4.
Restrictions: c2!=1/2, c2!=1, c3!=1, c3!=c2, 3-4(c2+c3)+6 c2 c3 !=0


c2=1/2, c3=1/2, c4=1.
Restrictions: b3!=0


c2=1, c3=1/2, c4=1.
Restrictions: b4!=0

RK_45(c2, c3, c4, c5, b2, a32, a42)

Methods of order 5

RK_56 (c2, c3, c4, c5, a43)


RK_56a(c2, c3, c4, c5, b2, a43)

b2 != 0

Be carefull! After

we obtain

RK_67(c2, c3, c5, c6)


RK_67a(c3, c5, c6)

b2 != 0
Let A be the extended matrix of the 7-stage RK-method of order 6, A is a lowertrianle matrix of size 8*8 with zero diagonal:
As usual, lets introduce variables ci:

Lets introduce variables d3, ..., d7 by formulas:

In our case c7=1, d7=1/2.
Some of order conditions contains only bi, ci, di:
for k,l > = 0, k+2l < p, or
Lets introduce variables e3, ..., e7 by formulas: ei=di-ci2/2:
(e7=0). So:
One can express variables e3,e4,e5,e6 from equations (6,8,9,10):
is elementary symmetric functions of variables x1, x2, x3.
With the substitution of found solutions in the complete system of orders conditions, it turns out that not every set of the above the free variables (c2,c3,c4,c5,c6), there is a solution of the full system. More exactly:

RK_67b(c2, a32, b3)

b2 != 0
c4 = c2/(15*c2^2 - 10*c2 + 2);
c5 = (9*c2-4)/(3*(5*c2-2));

RK_79(c4, c5)

Methods from J.Butcher's book (see reference above), page 178.

You may also use:

or even:
but be careful!


In separate Maple-text-file rk_79.txt, function RK_79d.

6-dimensional family of 9-step RK methods of order 7.

All parameters must be rational.

Arguments c2,c3,c4,c5,a52,c7 are obvious.

When finding the matrix, you have to solve the quadratic equation. We need to choose one of its two roots:
ind = 1: 1st root
ind = 2: 2nd root

All the coefficients of the result matrix are quadratic irrationalities.


Usually, all the coefficients of the result matrix are quadratic irrationalities. But it is possible to find a matrix with rational coefficients.

> read `\\w\\RUNGE_KU\\MAPLE\\rk_79.txt`:
> c3:=1/3: c4:=2/3: c5:=3/4: a52:=1:  
# Rational points on elliptic curve:
> eq17 := RK79_c7c8(c3,c4,c5,a52);
> P2:=ratPoints(eq17,10):
> for k from 1 to nops(P2) do
>   print(k, ` P2~=`, evalf(P2[k]), ` len=`, length(P2[k]), ` eq17=`, eq17(P2[k][1], P2[k][2]) );
> end do:
> c7 := P2[1][1]; c8 := P2[1][2];
> A  := RK_79a(c3,c4,c5,a52,c7,c8);
> evalf(A);
The point is that eq17 is a bi-quadratic function:
So the equation eq17=0 gives an elliptic curve in variables (c7,c8).
The function ratPoints (from rk_79.txt) using the group law find 10 rational points on this curve.
Unfortunately, the values are rising fast:

     [ 1836169365208  590253357997083915732956147028 ]
P1 = [ -------------, -------------------------------]
     [14375031772353  1006076034939621277811626968047]

     [191413646630639454100269817605058328881625109  590253357997083915732956147028 ]
P2 = [---------------------------------------------, -------------------------------]
     [158225722728039129214784412615341412861584569  1006076034939621277811626968047]


However, all the coefficients of the matrix are rational.

Methods of order 8


For b8 = 49/180 and a105 = 1/9, the Cooper-Verner obtained.

Main page

free counters