Load the Package

<<InHouse`RungeKutta`

?RungeKutta

Check the RKConditions routine

First a 4-th order method with undefined Butcher array.

Clear[a,b,c];
RKConditions[4, c, a, b]

?cond

cond[2]

cond[{2,3,5}]

First a 3-rd order continuous method with 4-th order at the end points.  Undefined Butcher array.

Clear[a,b,c];
RKConditions[3, c, a, b, Continuous->t]

?cond

cond[2]

cond[{2,3,5}]

Next a 6-th order ERK method (non-continuous/continuous)

a={a1,a2,a3,a4,a5,a6,a7};
b={{0,0,0,0,0,0,0},
   {b21,0,0,0,0,0,0},
   {b31,b32,0,0,0,0,0},
   {b41,b42,b43,0,0,0,0},
   {b51,b52,b53,b54,0,0,0},
   {b61,b62,b63,b64,b65,0,0},
   {b71,b72,b73,b74,b75,b76,0}};
c={c1,c2,c3,c4,c5,c6,c7};
d={{0,1,d12,d13,d14,d15,d16},
   {0,0,d22,d23,d24,d25,d26},
   {0,0,d32,d33,d34,d35,d36},
   {0,0,d42,d43,d44,d45,d46},
   {0,0,d52,d53,d54,d55,d56},
   {0,0,d62,d63,d64,d65,d66},
   {0,0,d72,d73,d74,d75,d76}};
w[i_,t_]:=d[[i,1]]+Sum[ d[[i,j]] t^(j-1),{j,2,7}];
W[t_]:={w[1,t],w[2,t],w[3,t],w[4,t],w[5,t],w[6,t],w[7,t]};

Here is the structure of W[t]

W[t]

RKConditions[6, a, b, c]

A look at the quadrature conditions

qcond[{1,2,3,4,5,6}]

A look at the first order row simplifying assumptions and then at the second of these.

rcond[1]
rcond[1,2]

A look at the squaring conditions and the squaring condition in the thrid column.

ccond[2]
ccond[2,3]

Now the continuous version

RKConditions[5, a, b, W[t], Continuous->t]

qcond[{1,2,3,4,5,6}]

Finally a test of an actual method.
The method is the Dormand & Prince 5(4) method given in Hairer/Norsett/Wanner P.178/192

c = {0,1/5,3/10,4/5,8/9,1,1};
a = {{0,0,0,0,0,0,0},
	 {1/5,0,0,0,0,0,0},
	 {3/40,9/40,0,0,0,0,0},
	 {44/45,-56/15,32/9,0,0,0,0},
	 {19372/6561,-25360/2187,64448/6561,-212/729,0,0,0},
	 {9017/3168,-355/33,46732/5247,49/176,-5103/18656,0,0},
	 {35/384,0,500/1113,125/192,-2187/6784,11/84,0}
	};
b = {35/384,0,500/1113,125/192,-2187/6784,11/84,0};
w1[t_] = t^2(3-2t)b[[1]] + t(t-1)^2 - 5t^2(t-1)^2(2558722523-31403016t)/11282082432;
w2[t_] = 0;
w3[t_] = t^2(3-2t)b[[3]] + 100t^2(t-1)^2(882725551-15701508t)/32700410799;
w4[t_] = t^2(3-2t)b[[4]] - 25t^2(t-1)^2(443332067-31403016t)/1880347072;
w5[t_] = t^2(3-2t)b[[5]] + 32805t^2(t-1)^2(23143187-3489224t)/199316789632;
w6[t_] = t^2(3-2t)b[[6]] - 55t^2(t-1)^2(29972135-7076736t)/822651844;
w7[t_] = t^2(t-1) + 10t^2(t-1)^2(7414447-829305t)/29380423;
w[t_] = {w1[t],w2[t],w3[t],w4[t],w5[t],w6[t],w7[t]};

RKConditions[5, c, a, b]

Do[Print[d,": ",Simplify[cond[d]]], {d,17}]

RKConditions[4,c,a,w[t], Continuous->t]

Do[Print[i,": ",Simplify[cond[i]]], {i,17}]

Check the tree drawing routine

Display the trees for 6-th order (the first 37 trees)

ShowTree[Range[37], Columns->5, FontSize->12, NodeSize->.08, AspectRatio->1.3]

Display the trees for 8-th order (the first 200 trees) without the accompanying text.

ShowTree[Range[200], Columns->15, AspectRatio->1, ShowText->None]

Check the tree functions

Find the currently defined trees with density 12 and view them

list = FindDensity[12]

ShowTree[list]

A look at Order,Density,Symmetry, Height, Width, Alpha, Beta and BetaBar values of these two trees.

Order[list]

Density[list]

Symmetry[list]

Height[list]

Width[list]

Alpha[list]

Beta[list]

BetaBar[list]

How many trees are there of order 1, 2, 3, 4, 5, 6, 7, 8, 9, 10?

NumberOfTrees[10]

Check the number to tree conversion

NumberToTree[167]

ShowTree[167]

Check the tree to number conversion

TreeToNumber[{{1}, {{2}}, 1}]

ShowTree[111]