This program can compute the homomorphisms (includes gauge transformations) between two differential operators, if such transformation exists. It is part of newer versions of Maple, namely the Homomorphisms command in the DEtools package. Here is the help page (type ?DEtools[Homomorphisms] in Maple): -------------------------------------------------------------------------------- DEtools[Homomorphisms] - compute the homomorphisms between two solution spaces Calling Sequence Homomorphisms(L1, L2, domain) Parameters L1 - differential operator L2 - differential operator domain - list containing two names Description - The input L1, L2 are differential operators. Denote V(L1) and V(L2) as the solution spaces of these two operators. If a map from V(L1) to V(L2) can be given in the form of a differential operator, then we call that map a homomorphism from V(L1) to V(L2). The command Homomorphisms computes a basis (as vector space) of all such homomorphisms, that is, it computes a basis of all operators r for which r(V(L1)) is a subset of V(L2). - In the special case L1=L2 the same can also be calculated with the command DEtools[eigenring]. - Invertible homomorphisms (isomorphisms) from V(L1) to V(L2) are also called gauge transformations. If L1 and L2 belong to the same family of differential operators and differ only in their parameter values, then the name ladder operators is used as well. - The argument domain describes the differential algebra. If this argument is the list [Dt,t] then the differential operators are notated with the symbols Dt and t. They are viewed as elements of the differential algebra C(t)[Dt] where C is the field of constants, and Dt refers to the differentiation operator d/dt. - If the argument domain is omitted then the differential specified by the environment variable _Envdiffopdomain will be used. If this environment variable is not set, then the argument domain may not be omitted. - This function is part of the DEtools package, and so it can be used in the form Homomorphisms(..) only after executing the command with(DEtools). However, it can always be accessed through the long form of the command by using DEtools[Homomorphisms](..). Examples > with(DEtools): # Take the differential ring C(x)[Dx]: > _Envdiffopdomain := [Dx,x]; _Envdiffopdomain := [Dx, x] > L1 := (x^2-x)*Dx^2+(a*x+b*x+x-c)*Dx+a*b; 2 2 L1 := (x - x) Dx + (a x + b x + x - c) Dx + a b > L2 := subs(c = c+1, L1); 2 2 L2 := (x - x) Dx + (a x + b x + x - c - 1) Dx + a b # Compute a basis for the homomorphisms r: V(L1) -> V(L2). > v := Homomorphisms(L1, L2); v := [(x - 1) Dx - c + a + b] # Since this basis has precisely one element, there is, up to multiplication by # constants, precisely one map V(L1) -> V(L2) that can be presented by an operator r in # C(x)[Dx]. # In the following example, every linear map V(L1) -> V(L2) can be presented by an # operator. Thus, the dimension of all such maps will be order(L1)*order(L2) = 3*2 = 6. # Since the output is a basis of these maps, it must have 6 elements. > L1 := Dx^3; L2 := Dx^2; 3 L1 := Dx 2 L2 := Dx > Homomorphisms(L1, L2); 2 2 2 2 3 2 2 [Dx, x Dx - 2, Dx , x Dx - Dx, x Dx - 2 x Dx + 2, x Dx - 2 x Dx + 2 x] See Also DEtools[eigenring], diffop References [1] van der Put, M. and Singer, M. F. Galois Theory of Linear Differential Equations, Volume 328. Springer: 2003. An electronic version of this book is available at http://www4.ncsu.edu/~singer/ms_papers.html. [2] van Hoeij, M. "Rational Solutions of the Mixed Differential Equation and its Application to Factorization of Differential Operators." ISSAC '96 Proceedings (1996): 219-225.