Macaulay2 » Documentation
Packages » HolonomicSystems » Canonical Series Tutorial
next | previous | forward | backward | up | index | toc

# Canonical Series Tutorial -- Computing series solutions to regular holonomic systems

If D/I is a regular holonomic D-module, the solutions of the system of differential equations I can be written as Nilsson series (Puiseux series with logarithms). The constructive version of this result is the canonical series method [SST, Sections 2.5, 2.6]. In this tutorial, we illustrate an implementation of this method.

If the input ideal I is not regular, this method is not guaranteed to produce convergent series, or even holonomicRank(I) formal power series solutions of I. There currently exists no computational method to verify whether D/I is a regular holonomic D-module. In the case of GKZ systems, regularity has been characterized in terms of the input matrix.

Contains the following functions:

Currently, this contains the computation of exponents with respect to a weight vector. Completing the canonical series computation is in the future. To compute the exponents for a D-ideal I with respect to w, do as follows. Compute the initial ideal of I with respect to w. Introduce the subring of D consisting of polynomials in $\theta_1 = x_1 \partial_1, ... , \theta_n= x_n \partial_n$. This is a commutative polynomial subring of D, referred to here as thetaRing. The indicial ideal of I with respect to w is produced by extending the initial ideal to the ring of differential operators with rational function coefficients, and contract to thetaRing. The exponents of I with respect to w are the roots of the indicial ideal, counted with multiplicities.

    i1 : R1 = QQ[z]

    o1 = R1

    o1 : PolynomialRing

    i2 : W1 = makeWA R1

    o2 = W1

    o2 : PolynomialRing, 1 differential variable(s)

    i3 : a=1/2

         1
    o3 = -
         2

    o3 : QQ

    i4 : b=3

    o4 = 3

    i5 : c=5/3

         5
    o5 = -
         3

    o5 : QQ

    i6 : J = ideal(z*(1-z)*dz^2+(c-(a+b+1)*z)*dz-a*b) -- the Gauss hypergeometric equation, exponents 0, 1-c

                  2  2       2   9       5     3
    o6 = ideal(- z dz  + z*dz  - -z*dz + -dz - -)
                                 2       3     2

    o6 : Ideal of W1

    i7 : cssExpts(J,{1})

                  2
    o7 = {{0}, {- -}}
                  3

    o7 : List

    i8 : inw(J,{-1,1})

                    2
    o8 = ideal(6z*dz  + 10dz)

    o8 : Ideal of W1

    i9 : distraction(oo,QQ[s])

                 2
    o9 = ideal(6s  + 4s)

    o9 : Ideal of QQ[s]

    i10 : factor oo_0

    o10 = (s)(3s + 2)(2)

    o10 : Expression of class Product

    i11 : c=1  -- Now we have a single exponent of multiplicity 2

    o11 = 1

    i12 : J = ideal(z*(1-z)*dz^2+(c-(a+b+1)*z)*dz-a*b)

                   2  2       2   9            3
    o12 = ideal(- z dz  + z*dz  - -z*dz + dz - -)
                                  2            2

    o12 : Ideal of W1

    i13 : cssExpts(J,{1})

    o13 = {{0}}

    o13 : List

    i14 : cssExptsMult(J,{1})

    o14 = {{2, {0}}}

    o14 : List

The first step is to rewrite elements of the initial ideal in a terms of the thetaRing, in a way that will allow us to easily extend and contract see [SST]

    i15 : R2 = QQ[x_1..x_3]

    o15 = R2

    o15 : PolynomialRing

    i16 : W2 = makeWA R2

    o16 = W2

    o16 : PolynomialRing, 3 differential variable(s)

    i17 : gens W2

    o17 = {x , x , x , dx , dx , dx }
            1   2   3    1    2    3

    o17 : List

    i18 : thetaRing = QQ[t_1,t_2,t_3] -- sets variable names t_i = x_i\dx_i

    o18 = thetaRing

    o18 : PolynomialRing

    i19 : f1= x_1*dx_1 -- this element already belongs to thetaRing

    o19 = x dx
           1  1

    o19 : W2

    i20 : distraction(f1,thetaRing)  -- checks out

    o20 = t
           1

    o20 : thetaRing

    i21 : f2 = x_1^3*dx_1^3 -- this is a descending factorial in the theta variables

           3  3
    o21 = x dx
           1  1

    o21 : W2

    i22 : distraction(f2,thetaRing)

           3     2
    o22 = t  - 3t  + 2t
           1     1     1

    o22 : thetaRing

    i23 : factor oo	  -- now it looks like a descending factorial

    o23 = (t )(t  - 2)(t  - 1)
            1   1       1

    o23 : Expression of class Product

    i24 : f = x_1^2*x_2^2*x_3*dx_1*dx_2^2*dx_3^2

           2 2       2  2
    o24 = x x x dx dx dx
           1 2 3  1  2  3

    o24 : W2

    i25 : distraction(f,thetaRing)

             2 2      2          2
    o25 = t t t  - t t t  - t t t  + t t t
           1 2 3    1 2 3    1 2 3    1 2 3

    o25 : thetaRing

Here is an example that can be continued when more functions are implemented. This is worked out as [page 138, ex 3.5.3, SST].

    i26 : A = matrix{{1,1,1},{0,1,2}}

    o26 = | 1 1 1 |
          | 0 1 2 |

                   2       3
    o26 : Matrix ZZ  <-- ZZ

    i27 : I = gkz(A,{10,8})

                                                               2
    o27 = ideal (x D  + x D  + x D  - 10, x D  + 2x D  - 8, - D  + D D )
                  1 1    2 2    3 3        2 2     3 3         2    1 3

    o27 : Ideal of QQ[x ..x , D ..D ]
                       1   3   1   3

    i28 : holonomicRank(I)

    o28 = 2

    i29 : cssExpts(I,{1,0,0})

    o29 = {{2, 8, 0}, {0, 12, -2}}

    o29 : List

In this case, the series corresponding to the exponent (2,8,0) is logarithm-free (actually, this is a hypergeometric polynomial), while the series corresponding to (0,12,-2) has logarithms. [SST, page 138] has the polynomial, and four terms of the logarithmic series.

### Menu

- cssExpts -- the exponents of the canonical series solutions of I in the direction of a weight vector
- cssExptsMult -- the exponents and multiplicities of the canonical series solutions
- cssLeadTerm -- lead term of the canonical series solutions of I
- distraction -- the image in the thetaRing of a torus-fixed element or ideal in a Weyl algebra
- indicialIdeal -- the image in the thetaRing of an indicial ideal in a Weyl algebra
- isTorusFixed -- checks if an ideal in a Weyl algebra is torus-fixed
- solveFrobeniusIdeal -- solving Frobenius ideals

The source of this document is in /build/macaulay2-88fgJW/macaulay2-1.25.11+ds/M2/Macaulay2/packages/HolonomicSystems/DOC/canonicalSeries.m2:86:0.