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 |