Macaulay2 » Documentation
Packages » HolonomicSystems > gkz
next | previous | forward | backward | up | index | toc

gkz -- create the A-hypergeometric system of Gelfand, Kapranov and Zelevinsky (GKZ)

Synopsis

Description

The GKZ hypergeometric system of PDE's associated to a $d \times n$ integer matrix A is an ideal in the Weyl algebra $D_n$ over $\mathbb{C}$ with generators $x_1,\dots,x_n$ and $\partial_1,\dots,\partial_n$. It consists of the toric ideal $I_A$ in the polynomial subring $\mathbb{C}[\partial_1,...,\partial_n]$ and Euler relations given by the entries of the vector (A $\theta$ - b), where $\theta$ is the vector $(\theta_1,...,\theta_n)^t$, and $\theta_i = x_i \partial_i$. A field of characteristic zero may be used instead of $\mathbb{C}$. For more details, see [SST, Chapters 3 and 4].

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

o1 = | 1 1 1 |
     | 0 1 2 |

              2       3
o1 : Matrix ZZ  <-- ZZ
i2 : b = {3,4}

o2 = {3, 4}

o2 : List
i3 : I = gkz (A,b)

                                                         2
o3 = ideal (x D  + x D  + x D  - 3, x D  + 2x D  - 4, - D  + D D )
             1 1    2 2    3 3       2 2     3 3         2    1 3

o3 : Ideal of QQ[x ..x , D ..D ]
                  1   3   1   3
i4 : describe ring I

o4 = QQ[x ..x , D ..D , Degrees => {6:1}, Heft => {1}, WeylAlgebra => {{x , D }, {x , D }, {x , D }}]
         1   3   1   3                                                   1   1     2   2     3   3

The ambient Weyl algebra can be determined as an input.

i5 : D = makeWA(QQ[x_1..x_3])

o5 = D

o5 : PolynomialRing, 3 differential variable(s)
i6 : gkz(A,b,D)

                                                               2
o6 = ideal (x dx  + x dx  + x dx  - 3, x dx  + 2x dx  - 4, - dx  + dx dx )
             1  1    2  2    3  3       2  2     3  3          2     1  3

o6 : Ideal of D

One may separately produce the toric ideal and the Euler operators.

i7 : toricIdealPartials(A,D)

               2
o7 = ideal(- dx  + dx dx )
               2     1  3

o7 : Ideal of QQ[dx ..dx ]
                   1    3
i8 : eulerOperators(A,b,D)

o8 = {x dx  + x dx  + x dx  - 3, x dx  + 2x dx  - 4}
       1  1    2  2    3  3       2  2     3  3

o8 : List

Caveat

gkz(A,b) always returns a different ring and will use variables x_1,...,x_n, D_1,...D_n.

See also

Ways to use gkz :

For the programmer

The object gkz is a method function.