This method computes values of the Hilbert function of the image of a variety, by numerical interpolation. In more detail, given a list $S$ of general points on $F(V(I))$ and a degree $d$, the method forms a matrix whose entries are the evaluations of monomials of degree $d$ at points in $S$. The kernel of this interpolation matrix gives degree $d$ equations of the image (provided the number of points in $S$ is at least the number of degree $d$ monomials). This technique circumvents the calculation of the kernel of the associated ring map.
In order to speed up computation, the list $S$ of points can be precomputed (see numericalImageSample). This list of points can then be re-used in multiple interpolation computations (which can yield a large speedup over performing separate sampling instances, if the ideal $I$ is not the zero ideal).
For a further speedup, the option UseSLP allows for the usage of straight-line programs in creating the interpolation matrix.
In the following, we compute the dimension of the space of quartics in the ideal of the twisted cubic and obtain the expected answer, $22$. Note that one can verify this by dimension counting: quartics in the coordinate ring pull back to forms of degree $12$ on $P^1$, of which there is a $13$-dimensional space; thus the space of quartics in the defining ideal has dimension $35 - 13 = 22$.
i1 : R = CC[s,t] o1 = R o1 : PolynomialRing |
i2 : F = basis(3, R) -- warning: experimental computation over inexact field begun -- results not reliable (one warning given per session) o2 = | s3 s2t st2 t3 | 1 4 o2 : Matrix R <--- R |
i3 : numericalHilbertFunction(F, ideal 0_R, 4) Sampling image points ... -- used .0206623 seconds Creating interpolation matrix ... -- used .0616166 seconds Performing normalization preconditioning ... -- used .0118855 seconds Computing numerical kernel ... -- used .00207932 seconds o3 = a numerical interpolation table, indicating the space of degree 4 forms in the ideal of the image has dimension 22 o3 : NumericalInterpolationTable |
The following example computes the dimension of Plücker quadrics in the defining ideal of the Grassmannian $Gr(2,4)$ of $P^1$'s in $P^3$, in the ambient space $P^5$.
i4 : R = CC[x_(1,1)..x_(2,4)]; |
i5 : F = (minors(2, genericMatrix(R, 2, 4)))_*; |
i6 : S = numericalImageSample(F, ideal 0_R, 60); |
i7 : numericalHilbertFunction(F, ideal 0_R, S, 2, UseSLP => true) Creating interpolation matrix ... -- used .00442532 seconds Performing normalization preconditioning ... -- used .0140568 seconds Computing numerical kernel ... -- used .00163946 seconds o7 = a numerical interpolation table, indicating the space of degree 2 forms in the ideal of the image has dimension 1 o7 : NumericalInterpolationTable |
The object numericalHilbertFunction is a method function with options.