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 Xi, 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 , X , X ]) <--- (-----[X , X , X , X , X , X ])
32003 0 1 2 3 4 5 32003 0 1 2 3 4 5
|