Triangularize - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim


RegularChains

  

Triangularize

  

compute the triangular decomposition of a polynomial system

 

Calling Sequence

Parameters

Description

Options

Examples

References

Calling Sequence

Triangularize(F, R)

Triangularize(F, H, R)

Triangularize(F, rc, R)

Triangularize(F, H, rc, R)

Triangularize(F, R, 'normalized'='yes')

Triangularize(F, R, 'radical'='yes')

Triangularize(F, R, 'output'='lazard')

Triangularize(F, R, 'probability'='prob')

Parameters

F

-

list or set of equations

R

-

polynomial ring

H

-

(optional) list or set of inequations

rc

-

(optional) regular chain

'normalized'='yes'

-

(optional) boolean flag

'radical'='yes'

-

(optional) boolean flag

'output'='lazard'

-

(optional) boolean flag

'probability'='prob'

-

(optional) numerical value

Description

• 

The command Triangularize(F,H,rc,R) returns a triangular decomposition of the set of the zeros of F that are zeros of rc but not zeros of H.

• 

If H is not specified, it is set to 1.

• 

If rc is not specified, it is set to the empty regular chain.

• 

If H=[1] and rc is empty, this command returns a triangular decomposition of the set of the zeros of F.

• 

Each element of this triangular decomposition is a regular chain.

• 

The concepts of a regular chain and a triangular decomposition are defined in the page RegularChains.

• 

The algorithm for the command Triangularize is described in the paper "On Triangular Decompositions of Algebraic Varieties" by Marc Moreno Maza, available on the author's web page.

• 

This command is part of the RegularChains package, so it can be used in the form Triangularize(..) only after executing the command with(RegularChains). However, it can always be accessed through the long form of the command by using RegularChains[Triangularize](..).

Options

• 

If 'normalized'='yes', each of the returned regular chains is normalized. If 'normalized'='strongly', each regular chain is strongly normalized. By default, each regular chain may not be normalized.

• 

If 'radical'='yes', the saturated ideal of each regular chain is radical. By default, the saturated ideal of each regular chain may not be radical.

  

This option is currently only supported if the characteristic of the polynomial ring R is zero.

• 

If 'output'='lazard', the decomposition is the sense of Lazard; otherwise, it is made in the sense of Kalkbrener. The latter is weaker but less expensive to compute. When F has only a finite number of solutions, both senses coincide.

  

As mentioned above, if this option is specified and if inequations (the input polynomial list H) are present, then the output is a constructible set. See the commands of the subpackage ConstructibleSetTools for operations on constructible sets.

  

If a non-empty regular chain rc is provided, then the decomposition is the sense of Lazard, whether 'output'='lazard' is specified or not.

• 

If 'probability'='prob', the probabilistic algorithm of Dahan, Moreno Maza, Schost, Wu, and Xie (ISSAC 2005) is used. This algorithm applies only to square systems in characteristic zero. In this implementation, it will fail if two primes such that the system modulo those primes is radical cannot be found after ten tries. This option is not compatible with any other options.

• 

The options 'output'='lazard' and 'normalized'='yes' cannot be mixed in the current implementation of this command. (This limitation will be solved in the next version of the RegularChains library).

• 

The commands BivariateModularTriangularize and ChangeOfOrder implement algorithms for computing triangular decompositions under particular circumstances. When they apply, they are likely to outperform Triangularize.

Examples

withRegularChains:

Define a ring of polynomials.

RPolynomialRingz,y,x

Rpolynomial_ring

(1)

Define a set of polynomials of R. Each of them will be viewed as an equality to 0.

sysx2+y+z1,x+y2+z1,x+y+z21

sysx2+y+z1,y2+x+z1,z2+x+y1

(2)

Ideally, you would like to decompose the set of the common solutions of sys into a list of points. The Triangularize command does this by using symbolic expressions. Sometimes several points are grouped together in a generic one, as in this example. These groups of points are called regular chains, and they are grouped together because they share some mathematical properties.

decTriangularizesys,R

decregular_chain,regular_chain,regular_chain,regular_chain

(3)

Since regular chains may contain large expressions, their output form is just a word. To view their members, use the Equations command.

mapEquations,dec,R

zx,yx,x2+2x1,z,y,x1,z,y1,x,z1,y,x

(4)

The last three regular chains are very simple: each of them clearly corresponds to a single point. The first regular chain corresponds to two points, because its univariate polynomial in the "smallest" variable x has two roots.

Consider now another polynomial ring and another polynomial system.

RPolynomialRingx,y,a,b,c,d,g,h

Rpolynomial_ring

(5)

sysax+byg,cx+dyh

sysax+byg,cx+dyh

(6)

In the polynomial ring, the ordering on the variables is such that x>y>a>b>c>d>g>h. Solving sys with this ordering implies that you want to express x and y as functions of the other variables. Hence you can view the system sys as a parametric linear system with two equations and two unknowns, x and y. Applying RegularChains[Triangularize] displays the generic solution, which is similar to the solution given by Groebner[Solve].

decTriangularizesys,R;mapEquations,dec,R

decregular_chain

cx+ydh,adbcyah+cg

(7)

Groebner:-Solvesys,a,b,c,d,g,h,x,y

xayb+g,cxyd+h,plexh,g,d,c,b,a,y,x,

(8)

This generic solution assumes that the determinant of the system is not zero. With the option output=lazard, Triangularize gives all of the solutions, including those that cancel the determinant of the input system.

declTriangularizesys,R,output=lazard

declregular_chain,regular_chain,regular_chain,regular_chain,regular_chain,regular_chain,regular_chain,regular_chain,regular_chain,regular_chain,regular_chain

(9)

mapEquations,decl,R

cx+dyh,dabcyha+cg,cx+dyh,dabc,hbdg,ax+byg,dyh,c,dyh,a,hbdg,c,cxh,hacg,b,d,ax+byg,c,d,h,cx+dy,dabc,g,h,byg,a,c,d,h,y,a,c,g,h,x,b,d,g,h,a,b,c,d,g,h

(10)

nopsdecl

11

(11)

You already know that each regular chain is associated with a set of equations. It is also associated with a set of inequations.

rcdecl1;Equationsrc,R;Inequationsrc,R

rcregular_chain

cx+dyh,dabcyha+cg

c,dabc

(12)

The inequations of a regular chain rc are the set of the initials of the polynomials of rc. In the first regular chain above, the inequations are dabc and c. Hence, for this regular chain, none of these two polynomials should vanish. The solutions of sys that cancel either c or the determinant dabc are given by the other regular chains of decl. Below, for each regular chain of decl, we print its list of equations together with its set of inequations.

seqeq=Equationsdecli,R,ineq=Inequationsdecli,R,i=1..nopsdecl

eq=cx+dyh,dabcyha+cg,ineq=c,dabc,eq=cx+dyh,dabc,hbdg,ineq=c,d,h,eq=ax+byg,dyh,c,ineq=a,d,eq=dyh,a,hbdg,c,ineq=d,h,eq=cxh,hacg,b,d,ineq=c,h,eq=ax+byg,c,d,h,ineq=a,eq=cx+dy,dabc,g,h,ineq=c,d,eq=byg,a,c,d,h,ineq=b,eq=y,a,c,g,h,ineq=,eq=x,b,d,g,h,ineq=,eq=a,b,c,d,g,h,ineq=

(13)

Assume now that you want to see g and h as transcendental quantities; that is, quantities that cannot satisfy any polynomial equations. Then you need to redefine the polynomial ring as follows.

R2PolynomialRingx,y,a,b,c,d,g,h

R2polynomial_ring

(14)

dec2Triangularizesys,R2,output=lazard

dec2regular_chain,regular_chain,regular_chain,regular_chain,regular_chain

(15)

seqeq=Equationsdec2i,R2,ineq=Inequationsdec2i,R2,i=1..nopsdec2

eq=cx+dyh,dabcyha+cg,ineq=c,dabc,eq=cx+dyh,dabc,hbdg,ineq=c,d,eq=ax+ybg,dyh,c,ineq=a,d,eq=dyh,a,hbdg,c,ineq=d,eq=cxh,hacg,b,d,ineq=c

(16)

nopsdec2

5

(17)

Now, you can obtain five regular chains, none of them imposing a condition on g or h. The following example uses the option probability, by which a triangular decomposition is done by using a modular algorithm.

RPolynomialRingx,y,z

Rpolynomial_ring

(18)

sys5y43,20x+yz,x5+y53y1

sys20x+yz,5y43,x5+y53y1

(19)

Triangularizesys,R,probability=0.9

regular_chain

(20)

References

  

Moreno Maza, M. "On Triangular Decompositions of Algebraic Varieties." MEGA-2000 conference. Bath, UK, England.

See Also

BivariateModularTriangularize

ChangeOfOrder

ConstructibleSetTools

Equations

Inequations

Intersect

PolynomialRing

RegularChains