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

NumericalImplicitization -- implicitization using numerical algebraic geometry


This package supports user-friendly calculation of basic invariants of the image of a polynomial map. The computational techniques (interpolation, homotopy continuation and monodromy) come from numerical algebraic geometry.

Many varieties of interest in algebraic geometry and its applications are usefully described as images of polynomial maps, via a parametrization. Implicitization is the process of converting a parametric description of a variety into an intrinsic, or implicit, description. Classically, implicitization refers to the procedure of computing the defining equations of a parametrized variety, and in theory this is accomplished by finding the kernel of a ring homomorphism, via Gröbner bases. In practice however, symbolic Gröbner basis computations are often time consuming, even for medium scale problems, and do not scale well with respect to the size of the input.

Despite this, one would often like to know basic information about a parametrized variety, even when symbolic methods are prohibitively expensive. Examples of such information are discrete invariants such as the dimension, the degree, or Hilbert function values. Other examples include Boolean tests, for example whether a particular point lies on a parametrized variety. The goal of this package is to provide such information; in other words to numerically implicitize a parametrized variety.

NumericalImplicitization builds on existing numerical algebraic geometry software: NAG4M2, Bertini and PHCpack. The user may specify any of these to use for path tracking and point sampling; by default, the native software NAG4M2 is used. Currently, all methods are implemented for reduced and irreducible varieties.


[1] A.J. Sommese and C.W. Wampler, The numerical solution of systems of polynomials. World Scientific Publishing (2005).



This documentation describes version 2.1.0 of NumericalImplicitization.

Source code

The source code from which this documentation is derived is in the file NumericalImplicitization.m2.