
7.5.20.0. ratSol
Procedure from library dmodloc.lib (see dmodloc_lib).
 Usage:
 ratSol(I); I ideal
 Assume:
 The basering is the nth Weyl algebra W over a field of
characteristic 0 and for all 1<=i<=n the identity
var(i+n)*var(i)=var(i)*var(i+1)+1 holds, i.e. the sequence of
variables is given by x(1),...,x(n),D(1),...,D(n), where D(i) is the
differential operator belonging to x(i).
Moreover, assume that I is holonomic.
 Return:
 module, a basis of the rational solutions to the given system of
linear PDEs with polynomial coefficients, encoded via I
Note that each entry has two components, the first one standing for
the enumerator, the second one for the denominator.
 Remarks:
 Reference: (OTT), Algorithm 3.10
 Note:
 If printlevel=1, progress debug messages will be printed,
if printlevel>=2, all the debug messages will be printed.
Example:
 LIB "dmodloc.lib";
ring r = 0,(x,y,Dx,Dy),dp;
def W = Weyl();
setring W;
poly tx,ty = x*Dx, y*Dy;
ideal I = // Appel F1 with parameters (3,1,1,1) is a solution
tx*(tx+ty)x*(tx+ty+3)*(tx1),
ty*(tx+ty)y*(tx+ty+3)*(ty+1);
module M = ratSol(I);
// We obtain a basis of the rational solutions to I represented by a
// module / matrix with two rows.
// Each column of the matrix represents a rational function, where
// the first row correspond to the enumerator and the second row to
// the denominator.
print(M);
==> xy, x,
==> y^43*y^3+3*y^2y,y
 See also:
polSol;
polSolFiniteRank.
