restart:We load our package:with(IntegrableConnections);The library linalg is also needed. with(linalg):Consider the connection given by the two following matrices:C[1]:= Matrix(2, 2,[0,2/((x1+x2)*(-x2+x1)),-x1/(-x2+x1),-1/(x1+x2)]);
C[2]:= Matrix(2, 2,[-2/(x1+x2),-2/((x1+x2)*(-x2+x1)), (x2^2+2*x1^2-x1*x2)/((x1+x2)*(-x2+x1)), 1/(x1+x2)]);We use our procedure to compute the eigenring of the system:Eig:=Eigenring([C[1],C[2]],[x1,x2]);The eigenring contains a non-trivial element given by the following matrix:P:=Eig[1];We can thus use this matrix to decompose the system as follows. The matrices of the decomposed system are given by the diagonal matrices CC[1] and CC[2] below:jordan(P,'T'):The matrix giving the change of variable is T:evalm(T);we compute its inverse:invT:=inverse(T):We perform the change of variable that decompose the connection. Note that, we have to work over Q(I) with I^2=-1 to perform this decomposition.CC[1]:=map(normal,evalm(inverse(T)&*(C[1]&*T-map(diff,T,x1))));
CC[2]:=map(normal,evalm(inverse(T)&*(C[2]&*T-map(diff,T,x2))));LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYjLUkjbWlHRiQ2I1EhRic=TTdSMApJQVJUQUJMRV9TQVZFLzE4NDQ2NzQ0MDc4MDg5NTg4NDc4WCwlKWFueXRoaW5nRzYiRiVbZ2whIiUhISEjJSIjIiMiIiEsJComJSN4MUciIiIsJiUjeDJHISIiRilGKkYtRi0sJComLCZGKUYqRixGKkYtRitGLSIiIywkKiRGMEYtRi1GJQ==TTdSMApJQVJUQUJMRV9TQVZFLzE4NDQ2NzQ0MDc4MDg5NTg0NjM4WCwlKWFueXRoaW5nRzYiRiVbZ2whIiUhISEjJSIjIiMsJCokLCYlI3gxRyIiIiUjeDJHRiohIiIhIiMqKCwoKiRGKSIiI0YxKiZGKUYqRitGKkYsKiRGK0YxRipGKkYoRiwsJkYrRixGKUYqRiwsJComRihGLEY0RixGLUYnRiU=