Maple の動向(その1)

 まず,RootFinding は,Isolate 関数のような方程式の数値解計算を主としたパッケージですが,Maple 12 で追加されたサブパッケージ Parametric は,不等式制約を許す連立方程式の open CAD(パラメータ=自由変数空間の開集合による分解 http://www.sigsam.org/bulletin/articles/169/liang.pdf)データを出力する CellDecomposition 関数(RootFinding[Parametric] - Maple Programming Help)をメインとしたものです.
 先の例の自由変数空間の分解を得るには

with(RootFinding[Parametric]):
ocad:=CellDecomposition([a

と入力すれば

Record(
 Equations = [x^2 - 2 x + a],
 Inequalities = [x - a, a + 2 - x], Filter = (0 <> 1),
 Variables = [x], Parameters = [a],
 DiscriminantVariety = [ [a], [a - 1], [a + 3] ],
 ProjectionPolynomials = [ [a, a - 1, a + 3] ],
 SamplePoints = [ [a = -4], [a = -2], [a = 1/2], [a = 2] ] )

のように出力され,例えば,各 cell を表す式は

seq([k,CellDescription(ocad,k) ],k=1..4);
[1, [ [-infinity, 0, a, a + 3, 1] ] ],
[2, [ [a + 3, 1, a, a, 1] ] ],
[3, [ [a, 1, a, a - 1, 1] ] ],
[4, [ [a - 1, 1, a, infinity, 0] ] ]

さらに,各 cell 内のパラメータに対する連立方程式の実数解(束縛変数を満たす実数の組)の個数も

NumberOfSolutions(ocad);
[ [1, 0], [2, 1], [3, 1], [4, 0] ]

のように出力されます.そして,自由変数が 2 個なら,CellPlot 関数で変数空間の分割を視覚化することもできます.
 ただし,開集合への分割なので,境界の条件は無視され,例えば

CellDecomposition([x^2+2*a*x+b=0],[x]):
seq([k,CellDescription(%,k)],k=1..4);
[1, [[-infinity, 0, b, b, 1], [-infinity, 0, a, infinity, 0] ] ],
[2, [[b, 1, b, infinity, 0], [-infinity, 0, a, a^2-b, 1] ] ],
[3, [[b, 1, b, infinity, 0], [a^2-b, 1, a, a^2-b, 2] ] ],
[4, [[b, 1, b, infinity, 0], [a^2-b, 2, a, infinity, 0] ] ]
NumberOfSolutions(%%);
[ [1, 2], [2, 2], [3, 0], [4, 2] ]

のように,解の個数が 1 となる条件は出力されません.
 また,あくまで連立方程式の実数解の個数を調べるものであり
・(方程式の個数)≧(束縛変数の個数)
>の場合,指定しなかった束縛変数は自由変数として処理される
・自由変数の殆ど全ての値に対して,束縛変数のとり得る値は有限個
従って,解に連続的な自由度があるような連立方程式は扱えない
・自由変数の殆ど全ての値に対して,束縛変数のとり得る値の代数的重複度は 2 以上でない
といった制約があります.

• The input system must satisfy the following properties:
– The number of equations is equal to or greater than the number of indeterminates
– At most finitely many complex solutions exist for almost all complex parameter values (that is, the system is generically zero-dimensional)
– For almost all complex parameter values, there are no solutions of multiplicity greater than 1 (that is, the system is generically radical); in particular, the input equations are square-free
An error occurs if one of these conditions is violated.

 ちなみに,http://www.cybernet.co.jp/maple/documents/pdf/product/maple/maple12/M12_ReleaseNote.pdf の紹介文は...