next | previous | forward | backward | up | top | index | toc | Macaulay2 website
NumericalImplicitization :: extractImageEquations

extractImageEquations -- finds implicit equations in a fixed degree for the image of a variety

Synopsis

Description

This method finds (approximate) implicit degree $d$ equations for the image of a variety, by numerical interpolation. The option AttemptZZ specifies whether to use the LLL algorithm to compute "short" equations over ZZ. The default value is false.

If a numerical interpolation table has already been computed, then to avoid repetitive calculation one may run this function with the interpolation table as input.

For example, we determine the defining quadrics of the twisted cubic, as follows.

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 : extractImageEquations(F, ideal 0_R, 2, AttemptZZ => true)
Sampling image points ...
     -- used .0065983 seconds
Creating interpolation matrix ...
     -- used .00602396 seconds
Performing normalization preconditioning ...
     -- used .00125006 seconds
Computing numerical kernel ...
     -- used .000371145 seconds

o3 = | y_1^2-y_0y_2 y_1y_2-y_0y_3 y_2^2-y_1y_3 |

                          1                    3
o3 : Matrix (CC  [y ..y ])  <--- (CC  [y ..y ])
               53  0   3            53  0   3

Here is how to do the same computation symbolically.

i4 : gens ker map(QQ[s,t], QQ[y_0..y_3], {s^3,s^2*t,s*t^2,t^3})

o4 = | y_2^2-y_1y_3 y_1y_2-y_0y_3 y_1^2-y_0y_2 |

                        1                  3
o4 : Matrix (QQ[y ..y ])  <--- (QQ[y ..y ])
                 0   3              0   3

We determine the $5$ Pl&uuml;cker quadrics defining the Grassmannian $Gr(3,5)$ of $P^2$'s in $P^4$, in the ambient space $P^9$.

i5 : R = CC[x_(1,1)..x_(3,5)]; I = ideal 0_R;

o6 : Ideal of R
i7 : F = (minors(3, genericMatrix(R, 3, 5)))_*;
i8 : T = numericalHilbertFunction(F, I, 2, Verbose => false);
i9 : extractImageEquations(T, AttemptZZ => true)

o9 = | y_3y_5-y_2y_6+y_0y_9 y_2y_4-y_1y_5+y_0y_7 y_3y_4-y_1y_6+y_0y_8
     ------------------------------------------------------------------------
     y_3y_7-y_2y_8+y_1y_9 y_6y_7-y_5y_8+y_4y_9 |

                          1                    5
o9 : Matrix (CC  [y ..y ])  <--- (CC  [y ..y ])
               53  0   9            53  0   9

The option Threshold sets the threshold for rounding the interpolation matrix. If this option has value $n$, then the interpolation matrix will be rounded to $n$ decimal digits, after which LLL will be performed. The default value is $5$.

See also

Ways to use extractImageEquations :

For the programmer

The object extractImageEquations is a method function with options.