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

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

Synopsis

Description

Finds (approximate) implicit degree d equations for the image of a variety. This is done via a numerical interpolation computation for the image.

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.

We determine the defining quadrics of the twisted cubic. This is done with the option attemptExact, as follows:

i1 : R = CC[s,t];
i2 : F = {s^3,s^2*t,s*t^2,t^3};
i3 : extractImageEquations (F, ideal 0_R, 2, attemptExact => true)
-- warning: experimental computation over inexact field begun
--          results not reliable (one warning given per session)
Sampling image points ...
     -- used 0.00415783 seconds
Creating interpolation matrix ...
     -- used 0.00521326 seconds
Performing normalization preconditioning ...
     -- used 0.00142462 seconds
Computing numerical kernel ...
     -- used 0.000445649 seconds

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

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

Here is how to do the same computation symbolically:

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

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

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

We determine the 5 Plücker quadrics defining the Grassmannian Gr(3,5).

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, attemptExact => true)

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

                                                          5                                                    1
o9 : Matrix (CC  [y , y , y , y , y , y , y , y , y , y ])  <--- (CC  [y , y , y , y , y , y , y , y , y , y ])
               53  0   1   2   3   4   5   6   7   8   9            53  0   1   2   3   4   5   6   7   8   9

Caveat

The option attemptExact is experimental, and may result in inaccurate equations.

See also

Ways to use extractImageEquations :