restart; # IRK method by collocation with(LinearAlgebra): c:=Vector([1/4,1/2,3/4]); nu:=Dimension(c); q:=1: for i from 1 to nu do q:=q*(t-c[i]); od: qi:=(n,tau)->unapply(q/(t-c[n]),t)(tau); A:=Matrix(3,3): for i from 1 to nu do for j from 1 to nu do A[j,i]:=int(qi(i,tau)/qi(i,c[i]),tau=0..c[j]); od: od: b:=Vector(3): for j from 1 to nu do b[j]:=int(qi(j,tau)/qi(j,c[j]),tau=0..1); od: simplify(A); simplify(b); for j from 0 to nu do ri:=int(q*t^j,t=0..1); if ri <> 0 then break; fi od; m:=j; #The order of this method is m+nu;