RegularChains
SuggestVariableOrder
Suggests a variable order for decomposing a polynomial system efficiently
Calling Sequence
Parameters
Options
Description
Examples
Compatibility
SuggestVariableOrder(sys)
SuggestVariableOrder(sys, vars)
SuggestVariableOrder(sys, 'decomposition'='cad')
sys
-
polynomial system
vars
list of set of variables
'decomposition'='cad'
(optional) boolean flag
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.
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.
with⁡RegularChains:with⁡SemiAlgebraicSetTools:
Define a set of equations.
sys≔v4+4⁢x⁢u⁢v2−2⁢y2⁢v2−4⁢x2⁢v2−4⁢y2⁢u2+4⁢x⁢y2⁢u+y4,4⁢u2−4⁢x⁢u−y2,4⁢u2−4⁢x⁢u−y2
sys≔−4⁢u2⁢y2+4⁢u⁢v2⁢x+4⁢u⁢x⁢y2+v4−4⁢v2⁢x2−2⁢v2⁢y2+y4,4⁢u2−4⁢u⁢x−y2,4⁢u2−4⁢u⁢x−y2
Compute a variable order for it.
SuggestVariableOrder⁡sys
x,u,v,y
Use the 'decomposition'='cad' option to confirm that this order is suitable for
lv≔SuggestVariableOrder⁡sys,decomposition=cad
lv≔x,u,v,y
Building a polynomial ring
R≔PolynomialRing⁡lv
R≔polynomial_ring
Computing a cylindrical algebraic decomposition of this challenging example
cad≔CylindricalAlgebraicDecompose⁡sys,R
cad≔c_a_d
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
SamplePoints
Triangularize
Download Help Document