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

Online Help

All Products    Maple    MapleSim


RegularChains

  

SuggestVariableOrder

  

Suggests a variable order for decomposing a polynomial system efficiently

 

Calling Sequence

Parameters

Options

Description

Examples

Compatibility

Calling Sequence

SuggestVariableOrder(sys)

SuggestVariableOrder(sys, vars)

SuggestVariableOrder(sys, 'decomposition'='cad')

Parameters

sys

-

polynomial system

vars

-

list of set of variables

'decomposition'='cad'

-

(optional) boolean flag

Options

The decomposition option controls the targeted type of decomposition.

– 

If 'decomposition'='cad' is specified and vars not supplied, then the method is best appropriate for computing a cylindrical algebraic decomposition, see CylindricalAlgebraicDecompose.

Description

• 

The command SuggestVariableOrder(sys) computes a variable order which is expected to speed up the decomposition of the polynomial system sys when passed to one of the commands Triangularize, RealTriangularize, LazyRealTriangularize, SamplePoints, ComprehensiveTriangularize, RealComprehensiveTriangularize, CylindricalAlgebraicDecompose, RealRootClassification, PartialCylindricalAlgebraicDecomposition, GeneralConstruct.

• 

The input argument sys is a list of constraints which can be any polynomial equation, inequation or inequality. Each constraint consisting of a polynomial (with no equality or inequality sign) is interpreted as an equation.

• 

The output of SuggestVariableOrder(sys)  is a variable list which can then be passed as argument to PolynomialRing.

• 

If vars is given as an input argument, the following rules apply: (1) each indeterminate not appearing in sys or vars will be treated as parameters and therefore will be present in SuggestVariableOrder(sys) with a smaller rank than any indeterminate appearing in both sys and vars. (2) In addition, if vars is given as a list, then the orders among variables appearing in both vars and sys remain unchanged.

• 

The command SuggestVariableOrder(sys) computes this variable list by means of combinatorial arguments only, say by comparing vertex degrees in a suitable graph. No algebraic computations are performed. Therefore, this variable order is determined heuristically and there is no guarantee of optimality.

Examples

withRegularChains:withSemiAlgebraicSetTools:

Define a set of equations.

sysv4+4xuv22y2v24x2v24y2u2+4xy2u+y4,4u24xuy2,4u24xuy2

sys4u2y2+4uv2x+4uxy2+v44v2x22v2y2+y4,4u24uxy2,4u24uxy2

(1)

Compute a variable order for it.

SuggestVariableOrdersys

x,u,v,y

(2)

Use the 'decomposition'='cad' option to confirm that this order is suitable for

lvSuggestVariableOrdersys,decomposition=cad

lvx,u,v,y

(3)

Building a polynomial ring

RPolynomialRinglv

Rpolynomial_ring

(4)

Computing a cylindrical algebraic decomposition of this challenging example

cadCylindricalAlgebraicDecomposesys,R

cadc_a_d

(5)

Compatibility

• 

The RegularChains[SuggestVariableOrder] command was introduced in Maple 16.

• 

For more information on Maple 16 changes, see Updates in Maple 16.

See Also

ComprehensiveTriangularize

CylindricalAlgebraicDecompose

GeneralConstruct

LazyRealTriangularize

PartialCylindricalAlgebraicDecomposition

PolynomialRing

RealComprehensiveTriangularize

RealRootClassification

RealTriangularize

RegularChains

SamplePoints

Triangularize