next | previous | forward | backward | up | top | index | toc | Macaulay2 website
RandomRationalPoints :: projectionToHypersurface

projectionToHypersurface -- Generic projection to a hypersurface

Synopsis

Description

This creates a projection to a hypersurface. It differs from genericProjection(codim I - 1, I) as it only tries to find a hypersurface equation that vanishes along the projection, instead of finding one that vanishes exactly at the projection. This can be faster, and can be useful for finding points.

i1 : R=ZZ/5[x,y,z];
i2 : I = ideal(random(3,R)-2, random(2,R));

o2 : Ideal of R
i3 : projectionToHypersurface(I)

              ZZ                             6     5      4 2       5    6  
o3 = (map (R, --[y..z], {x, y - 2z}), ideal(y  - 2y z - 2y z  - 2y*z  + z  -
               5
     ------------------------------------------------------------------------
       2       2
     2y z + y*z  - 1))

o3 : Sequence
i4 : projectionToHypersurface(R/I)

                                                                             
                                                                             
                                                   R                         
o4 = (map (------------------------------------------------------------------
                3       2     3    2     2        2       2     3            
           (- 2x  - 2x*y  - 2y  + x z - y z + 2x*z  - 2y*z  - 2z  - 2, - 2x*z
     ------------------------------------------------------------------------
                                               ZZ                            
                                               --[y..z]                      
                                                5                            
     --------------, --------------------------------------------------------
                 2    6    5      4 2     2 4      5     3    2       2    3 
      + 2y*z - 2z )  y  - y z + 2y z  - 2y z  - y*z  + 2y  - y z - y*z  + z  
     ------------------------------------------------------------------------
                                                      ZZ
                                                      --[y..z]
                                                       5
     ---, {y + 2z, x + z}), -------------------------------------------------
                             6    5      4 2     2 4      5     3    2       
     + 1                    y  - y z + 2y z  - 2y z  - y*z  + 2y  - y z - y*z
     ------------------------------------------------------------------------
     ----------)
     2    3
       + z  + 1

o4 : Sequence

If you already know the codimension is c, you can set Codimension=>c so the function does not compute it.

See also

Ways to use projectionToHypersurface :

For the programmer

The object projectionToHypersurface is a method function with options.