restart:We load our package:with(IntegrableConnections);The library linalg is also needed. with(linalg):We load OreModules in order to use the procedure to write a D-finite partial differential system as an integrable connection.with(OreModules):
Consider Example 3.2 in Z. Li, F. Schwarz, and S. Tsarev.Factoring systems of pde's with finite-dimensional solution space, Journal of Symbolic Computation, 36:443--471, 2003.We define the OreAlgebra (needed for OreModules):Alg:=DefineOreAlgebra(diff=[d1,x1],diff=[d2,x2],polynom=[x1,x2],comm=[]):We give the equations of the system:R:=matrix(2,1,[d1^3+(x2^2+6*x1^2-6*x1*x2)/(2*x1^3-x2*x1^2)*d1^2,d2^3+(3*x1-2*x2)/(x1^2-x1*x2)*d2^2+(2*x1-x2)/(x1^3-x1^2*x2)*d2]);We write the system as an integrable connection:C:=OreModules[Connection](R,Alg);If we want to know the basis of the associated module in which the connection is written, we can use the procedure KBasis of OreModules:OreModules[KBasis](R,Alg);We use our procedure for computing rational solutions of the integrable connection: RatSols:=RationalSolutions(C,[x1,x2]);The rational solutions are given by the columns of the previous matrix. This means the original system admits two non-zero rational solutions
given by 1 and x1.
Consider Example 3.3 in Z. Li, F. Schwarz, and S. Tsarev.Factoring systems of pde's with finite-dimensional solution space, Journal of Symbolic Computation, 36:443--471, 2003.We define the OreAlgebra (needed for OreModules):Alg:=DefineOreAlgebra(diff=[d1,x1],diff=[d2,x2],diff=[d3,x3],polynom=[x1,x2,x3],comm=[]):We give the equations of the system:R:=matrix(3,1,[d1^2-x1/(x1-1)*d1+1/(x1-1),d2+x1/(x2*(x1*x2-x2))*d1-x1/(x2*(x1*x2-x2)),d3-(2*x1*x3+1/2*x1)/(x1*x3-x3)*d1+(2*x3+1/2*x1)/(x1*x3-x3)]);We write the system as an integrable connection:C:=OreModules[Connection](R,Alg):If we want to know the basis of the associated module in which the connection is written, we can use the procedure KBasis of OreModules:OreModules[KBasis](R,Alg);We use our procedure for computing rational solutions of the integrable connection: RatSols:=RationalSolutions(C,[x1,x2,x3]);The system does not admit any non-zero rational solution.
Consider Example 3.4 in Z. Li, F. Schwarz, and S. Tsarev.Factoring systems of pde's with finite-dimensional solution space, Journal of Symbolic Computation, 36:443--471, 2003.We define the OreAlgebra (needed for OreModules):Alg:=DefineOreAlgebra(diff=[d1,x1],diff=[d2,x2],diff=[d3,x3],polynom=[x1,x2,x3],comm=[]):We give the equations of the system:v:=x1^2-x1*x3+x2^2+2*x2*x3+x3^2;w:=-2*x2^4-8*x3*x2^3-12*x2^2*x3^2-8*x2*x3^3+2*x1*x3^3+2*x1^3*x2-3*x1^2*x3^2-4*x1^2*x2*x3-2*x3^4+x1^4+2*x1*x2*x3^2;R:=matrix(4,1,[
x1*v*d1-x2*v*d2+x1*(2*x1*x2+x1*x3+x2^2)*d3-2*x1*x2-x1*x3+x1^2,
x1*(x1-x3)*(2*x2-x1+2*x3)*d3+(x2+x3)^2*v*d2^2+2*x1*v*d2+x1*(-2*x2+x1-2*x3),
(x2+x3)^2*v*d2*d3+x1*v*d2+2*x1*(x2+x3)*(x1-x3)*d3-2*x1*(x2+x3),
(x2+x3)^2*(x1-x3)*v*d3^2+w*d3-2*x1*x2^2-2*x1^2*x2-2*x1*x2*x3-x1^3-x3*x1^2
]);We write the system as an integrable connection:C:=OreModules[Connection](R,Alg):If we want to know the basis of the associated module in which the connection is written, we can use the procedure KBasis of OreModules:OreModules[KBasis](R,Alg);We use our procedure for computing rational solutions of the integrable connection: RatSols:=RationalSolutions(C,[x1,x2,x3]);The system admits one non-zero rational solution, namely 1/(x1-x3).
Consider Example 4.1 in Z. Li, F. Schwarz, and S. Tsarev.Factoring systems of pde's with finite-dimensional solution space, Journal of Symbolic Computation, 36:443--471, 2003.We define the OreAlgebra (needed for OreModules):Alg:=DefineOreAlgebra(diff=[d1,x1],diff=[d2,x2],diff=[d3,x3],polynom=[x1,x2,x3],comm=[]):We give the equations of the system (be careful there is a typo in the fifth equation in the paper):R:=matrix(6,2,[
(x1*x3-x1*x2)+(x1*x2-1)*d2+(1-x1*x3)*d3,0,(x2*x3-x1*x2)+(x1*x2-1)*d1+(1-x2*x3)*d3,0,-x2*x3,d1-x2*x3,-x1*x3,d2-x1*x3,d3^2-(x1*x2+1)*d3+x1*x2,0,-x1*x2,d3-x1*x2
]);We write the system as an integrable connection:C:=OreModules[Connection](R,Alg);If we want to know the basis of the associated module in which the connection is written, we can use the procedure KBasis of OreModules:OreModules[KBasis](R,Alg);We use our procedure for computing rational solutions of the integrable connection: RatSols:=RationalSolutions(C,[x1,x2,x3]);The system does not admit any non-trivial rational solution.LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYjLUkjbWlHRiQ2I1EhRic=