next | previous | forward | backward | up | top | index | toc | Macaulay2 web site
NumericalImplicitization :: numericalHilbertFunction

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

Synopsis

Description

Computes values of the Hilbert function of the image of a variety, by numerical interpolation. 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 dramatic speedup over performing separate sampling instances, if the ideal I is not the zero ideal).

We compute the number of quartics in the ideal of the twisted cubic to be 22. One can verify this by inspection as follows: quartics in the coordinate ring pull back to forms of degree 12 on P1, of which there are 13; thus there are 35 - 13 = 22 quartics in the defining ideal.

i1 : R = CC[s,t];
i2 : F = {s^3,s^2*t,s*t^2,t^3};
i3 : numericalHilbertFunction(F, ideal 0_R, 4)
-- warning: experimental computation over inexact field begun
--          results not reliable (one warning given per session)
Sampling image points ...
     -- used 0.0212652 seconds
Creating interpolation matrix ...
     -- used 0.0397829 seconds
Performing normalization preconditioning ...
     -- used 0.0129601 seconds
Computing numerical kernel ...
     -- used 0.00167863 seconds

o3 = a numerical interpolation table, indicating
     the number of degree 4 forms in the ideal of the image is 22

o3 : NumericalInterpolationTable

The following computes the number of Plücker quadrics in the defining ideal of the Grassmannian Gr(3,5) of P2’s in P4.

i4 : R = CC[x_(1,1)..x_(3,5)];
i5 : F = (minors(3, genericMatrix(R, 3, 5)))_*;
i6 : S = numericalImageSample(F, ideal 0_R, 60);
i7 : numericalHilbertFunction(F, ideal 0_R, S, 2)
Creating interpolation matrix ...
     -- used 0.0569642 seconds
Performing normalization preconditioning ...
     -- used 0.0454417 seconds
Computing numerical kernel ...
     -- used 0.00394586 seconds

o7 = a numerical interpolation table, indicating
     the number of degree 2 forms in the ideal of the image is 5

o7 : NumericalInterpolationTable

The option Threshold specifies the minimal gap (= ratio of consecutive singular values) for determining the numerical rank of a matrix. If the largest gap is greater than this threshold, then all singular values after the largest gap are considered as numerically zero; if all gaps are less than this threshold, then the matrix is considered numerically full rank. The default value is 200.

Caveat

The option Threshold may require tuning by the user. If the value of Threshold is too small, the numerical rank may be smaller than the true rank (and vice versa if the value of Threshold is too large).

See also

Ways to use numericalHilbertFunction :