Macaulay2 » Documentation
Packages » NumericalImplicitization :: numericalHilbertFunction
next | previous | forward | backward | up | index | toc

numericalHilbertFunction -- computes the values of the Hilbert function for the image of a variety

Synopsis

Description

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 .0103738 seconds
Creating interpolation matrix ...
     -- used .0114693 seconds
Performing normalization preconditioning ...
     -- used .0138196 seconds
Computing numerical kernel ...
     -- used .000598503 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&uuml;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 .00193969 seconds
Performing normalization preconditioning ...
     -- used .00626704 seconds
Computing numerical kernel ...
     -- used .000616182 seconds

o7 = a "numerical interpolation table", indicating
     the space of degree 2 forms in the ideal of the image has dimension 1

o7 : NumericalInterpolationTable

See also

Ways to use numericalHilbertFunction :

For the programmer

The object numericalHilbertFunction is a method function with options.