Home Online Manual
Top
Back: rootIsolationNoPreprocessing
Forward: rootIsolationPrimdec
FastBack:
FastForward:
Up: rootisolation_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

D.15.30.11 rootIsolation

Procedure from library rootisolation.lib (see rootisolation_lib).

Usage:
rootIsolation(I, [start, eps]); I ideal, start box, eps number

Assume:
I is a zero-dimensional radical ideal

Return:
(L1, L2), where L1 contains boxes smaller than eps which may contain an element of V(I), i.e. a root and L2 contains boxes which contain exactly one element of V(I)

Purpose:
same as rootIsolationNoPreprocessing, but speeds up computation by preprocessing starting box

Theory:
As every root of I is a root of the polynomials I[i], we use Groebner elimination to find univariate polynomials for every variable which have these roots as well. Using that I is zero-dimensional these Groebner bases may be quickly computed using FGLM. Applying root isolation to these univariate polynomials then provides smaller starting boxes which speed up computations in the multivariate case.

Note:
This algorithm and some procedures used therein perform Groebner basis computations in basering. It is thus advised to define I w.r.t. a fast monomial ordering.
The algorithm performs checks on I to prevent errors. If I does not have the right number of generators, we first try to find a suitable Groebner basis. If this fails we apply the algorithm to the triangular decomposition of I.

Example:
 
LIB "rootisolation.lib";
ring R = 0,(x,y),dp;
ideal I = 2x2-xy+2y2-2,2x2-3xy+3y2-2;  // V(I) has four elements
interval i = bounds(-3/2,3/2);
box B = list(i, i);
list result = rootIsolation(I, B);
result;
==> [1]:
==>    empty list
==> [2]:
==>    [1]:
==>       [-1, -1] x [0, 0]
==>    [2]:
==>       [-1/2, -1/2] x [-1, -1]
==>    [3]:
==>       [1/2, 1/2] x [1, 1]
==>    [4]:
==>       [1, 1] x [0, 0]