Macaulay2 » Documentation
Packages » K3Carpets :: hankelMatrix
next | previous | forward | backward | up | index | toc

# hankelMatrix -- matrix with constant anti-diagonal entries

- Usage:
    `m = hankelMatrix(r,p,q)`
    `m = hankelMatrix(R,x,p,q)`
    `m = hankelMatrix(R,p,q)`
    `m = hankelMatrix(p,q)`
- Inputs:
  - r, a matrix, matrix whose first row will be the entries of m
  - R, a ring, in this case, hankelMatrix will use the variables of R
  - x, a ring element, if present, hankelMatrix will use the variables of R starting with x
  - p, an integer, number of rows
  - q, an integer, number of columns

## Description

A Hankel matrix (or catalecticant matrix) is a matrix with a repeated element on each anti-diagonal, that is m_(i,j) depends only on i+j. If the matrix r is given, then we set m_(i,j) = r_(0,i+j) if i+j<numcols r, and 0 otherwise. The degrees of the rows of m are set to 0, and the degrees of the columns are set to the degree of r_(0,0); thus the Hankel matrix is homogeneous iff all the entries of the first row of r have the same degree.

If no ring or matrix is given, hankelMatrix defines a new ring S with p+q-1 variables X_i, and then calls hankelMatrix(vars S, p,q).

    i1 : p = 2;q=3;

    i3 : S = ZZ/101[x_0..x_(p+q-2)]

    o3 = S

    o3 : PolynomialRing

    i4 : hankelMatrix(vars S, p,q)

    o4 = | x_0 x_1 x_2 |
         | x_1 x_2 x_3 |

                 2      3
    o4 : Matrix S  <-- S

    i5 : r = vars S ** transpose vars S

    o5 = {-1} | x_0^2  x_0x_1 x_0x_2 x_0x_3 |
         {-1} | x_0x_1 x_1^2  x_1x_2 x_1x_3 |
         {-1} | x_0x_2 x_1x_2 x_2^2  x_2x_3 |
         {-1} | x_0x_3 x_1x_3 x_2x_3 x_3^2  |

                 4      4
    o5 : Matrix S  <-- S

    i6 : hankelMatrix(r, p,q)

    o6 = | x_0^2  x_0x_1 x_0x_2 |
         | x_0x_1 x_0x_2 x_0x_3 |

                 2      3
    o6 : Matrix S  <-- S

    i7 : hankelMatrix(S,p,q)

    o7 = | x_0 x_1 x_2 |
         | x_1 x_2 x_3 |

                 2      3
    o7 : Matrix S  <-- S

    i8 : hankelMatrix(r, p,q+2)

    o8 = | x_0^2  x_0x_1 x_0x_2 x_0x_3 0 |
         | x_0x_1 x_0x_2 x_0x_3 0      0 |

                 2      5
    o8 : Matrix S  <-- S

    i9 : hankelMatrix(p,q+2)

    o9 = | X_0 X_1 X_2 X_3 X_4 |
         | X_1 X_2 X_3 X_4 X_5 |

                   ZZ          2        ZZ          5
    o9 : Matrix (-----[X ..X ])  <-- (-----[X ..X ])
                 32003  0   5         32003  0   5

## Ways to use hankelMatrix:

- `hankelMatrix(Matrix,ZZ,ZZ)`
- `hankelMatrix(Ring,RingElement,ZZ,ZZ)`
- `hankelMatrix(Ring,ZZ,ZZ)`
- `hankelMatrix(ZZ,ZZ)`

## For the programmer

The object hankelMatrix is a method function.

The source of this document is in /build/macaulay2-88fgJW/macaulay2-1.25.11+ds/M2/Macaulay2/packages/K3Carpets.m2:1929:0.