Macaulay2 » Documentation
Packages » TriangularSets :: triangularize
next | previous | forward | backward | up | index | toc

triangularize -- triangular decomposition of polynomial systems

Synopsis

Description

Computes a triangular decomposition of a polynomial system. The package implements algorithms for monomial and binomial sets. For arbitrary systems we interface to Maple.

A polynomial system is a pair $(F,H)$, where $F\subset k[x]$ is a list of equations and and $H\subset k[x]$ is a list of inequations. The zero set of the system is $$Z(F/H) = \{x : f(x)= 0 for f\in F, h(x)\neq 0 for h\in H\}.$$ A triangular decomposition of $(F,H)$ is a collection of "simpler" polynomial systems $(T_1,U_1),\ldots,(T_r,U_r)$ such that $$Z(F/H) = Z(T_1/U_1)\cup\cdots\cup Z(T_r/U_r).$$ These simpler sets, called triangular systems, have very nice algorithmic properties.

As a first example we consider a case without inequations ($H=\emptyset$).

i1 : R = QQ[a..h, MonomialOrder=>Lex];
i2 : F = {a*d - b*c, c*f - d*e, e*h - f*g};
i3 : TT = triangularize(R,F,{})

o3 = {{c, d, e, f}, {a*d - b*c, c*f - d*e, g, h} / {d, f}, {b, d, f, h}, {c,
     ------------------------------------------------------------------------
     d, g, h}, {c, d, f, h}, {b, d, e, f}, {a*d - b*c, e, f} / d, {a*d - b*c,
     ------------------------------------------------------------------------
     c*f - d*e, e*h - f*g} / {d, f, h}, {c, d, e*h - f*g} / h}

o3 : List
i4 : first TT

o4 = {c, d, e, f}

o4 : TriaSystem

We now include some inequations.

i5 : H = {b,d};
i6 : triangularize(R,F,H)

o6 = {{a*d - b*c, c*f - d*e, g, h} / {b, d, f}, {a*d - b*c, c*f - d*e, e*h -
     ------------------------------------------------------------------------
     f*g} / {b, d, f, h}, {a*d - b*c, e, f} / {b, d}}

o6 : List

      

See also

Ways to use triangularize:

For the programmer

The object triangularize is a method function with options.