RootFinding[Parametric][CellDecomposition] - パラメータ空間からオープンセルへの分解
|
使い方
|
|
CellDecomposition(sys, vars, pars, output=cad|witnesspoints)
CellDecomposition(eqs, posineqs, vars, pars)
CellDecomposition(eqs, posineqs, nzineqs, vars, pars)
|
|
パラメータ
|
|
sys
|
-
|
方程式、絶対方程式および有理多項式間の絶対不等式のリスト
|
vars
|
-
|
名前のリスト; 変数
|
pars
|
-
|
(先頭 2 つの呼出手順ではオプション) 名前のリスト; パラメータ
|
output
|
-
|
(オプション) cad または witnesspoints; 分解の型
|
eqs
|
-
|
=0 の形式の方程式を表す有理多項式 のリスト
|
posineqs
|
-
|
の形式の制約不等式を表す有理多項式 のリスト
|
nzineqs
|
-
|
の形式の制約不等式を表す有理多項式 のリスト
|
|
|
|
|
モデルの説明
|
|
•
|
CellDecomposition コマンドはパラメトリック多項式システムのパラメータ空間を、元のシステムに対する解の数が一定となるセルに分解します。
|
•
|
コマンドは、以下のような用途に使用可能なデータ構造を返します:
|
–
|
システムに対して与えられた数の解が存在するパラメータ空間領域をプロットする (CellPlot 参照)
|
•
|
出力は Equations、Inequalities、NonEquations、Variables、Parameters、DiscriminantVariety、ProjectionPolynomials (任意)、SamplePoints および Boxes (任意) の 7 つまたは 8 つのフィールドで構成されるsolution record です。
|
•
|
レコードには以下を含め、パラメータ値によるシステムの解に関して得られた情報が返されます:
|
–
|
各最大次元のオープンセルで、完全にセルの内部に位置するサンプル点。サンプル点の座標は可能な限り整数になるように選択されます。
|
•
|
入力システムは以下の特性を満たす必要があります:
|
–
|
ほとんどの複素パラメータ変数に対して、最大で有限個の複素解が存在する (すなわち、システムは一般的に 0 次元である)。
|
–
|
ほとんどすべての複素パラメータ値に対して解の重複度は を上回らない (すなわち、システムは一般的に根基である)。具体的には、入力方程式に平方因子は含まれていない。
|
|
上記のいずれかの条件に違反すると、エラーメッセージが返されます。
|
•
|
が省略されている場合、 における変数ではないすべての名前がデフォルトで使用されます。
|
•
|
このコマンドは RootFinding[Parametric] パッケージの一部であるため、CellDecomposition(..) 形式での利用はその前に with(RootFinding[Parametric]) コマンドが実行されている場合に限ります。ただしコマンドをロングフォーム RootFinding[Parametric][CellDecomposition](..) で指定すると、いつでも利用可能です。
|
|
|
オプション
|
|
•
|
また、output が cad に設定されている場合、コマンドはパラメータ空間の開円筒代数分解 (Cylindrical Algebraic Decomposition,CAD) を計算します。レコードには、分解による各最大次元のオープンセルで入力システムに対する解の数が一定となるパラメータ空間の CAD を表す射影多項式が追加されます。
|
•
|
オプション output はデフォルトで cad に設定されています。
|
•
|
オプション output=witnesspoints は内部的にコマンド RootFinding[WitnessPoints] を使用することで、CAD の計算が実行されないようにします。
|
|
|
アプリケーションと例題
|
|
下記 1 変数の例において 2 次多項式の既知の判別式を求めます。
>
|
with(RootFinding[Parametric]):
|
>
|
m1 := CellDecomposition([x^2+a*x+b=0],[x]);
|
| (5.1) |
描画可能な最大次元のオープンセルが 4 つ存在します。
>
|
CellPlot(m1, 'samplepoints');
|
それぞれのセルにおける に対する解の数は以下のコマンドで求まります。
| (5.2) |
この 1 変数方程式には放物線の下側に位置する黄色およびピンクのセルにちょうど 2 つの解が存在しますが、放物線の上側に位置する青のセルには存在しません。実際には、重複度 の解が 1 つちょうど放物線上に存在しますが、これは低次元の部分多様体で本コマンドの対象外です。
次の 2 つの例は別形式でのコマンドの使用例です。代入の出力は m2 の場合も m3 の場合も同じであるため、CellPlot コマンドを使用してこれらを描画すると、同じプロットが得られます。
>
|
m2 := CellDecomposition([x^6-a*x^2+b=0, b>0],[x]);
|
| (5.3) |
>
|
CellPlot(m2, 'samplepoints');
|
>
|
m3 := CellDecomposition(m2:-Equations, m2:-Inequalities, m2:-Variables, m2:-Parameters);
|
| (5.4) |
完全に負の八分円に位置するサンプル点は除外されます。たとえば、m4:-SamplePoints のサンプル点 および で表されるオープンセルは m3:-SamplePoints には含まれていません。
>
|
m4:=CellDecomposition([x^6-a*x^2+b=0],[x]);
|
| (5.5) |
>
|
CellPlot(m4, 'samplepoints');
|
下記システムでは、ほとんどのパラメータ値において解が存在しません。
>
|
m5:=CellDecomposition([x^6+a*y^2-a=0,x^6+a*y^2-b=0],[x,y]);
|
| (5.6) |
| (5.7) |
>
|
CellPlot(m5, 'samplepoints');
|
この例では、2 つの異なる方法を使用してサンプル点を計算します。
>
|
m6:=CellDecomposition([x^6+a*y^2-a=0,a^3*x^6+a*y^2-b=0],[x,y]);
|
| (5.8) |
>
|
m7:=CellDecomposition([x^6+a*y^2-a=0,a^3*x^6+a*y^2-b=0],[x,y],'output'='witnesspoints');
|
| (5.9) |
witnesspoints 法を使用した場合、レコード m7 に ProjectionPolynomials は含まれません。
m6 と m7 は CellPlot を使用して可視化することができます。
解に EnclosingBox が適用されると、それらも CellPlot によって表示されます。
>
|
CellPlot(m7,'samplepoints','cellcolor'=[white,grey],'boxcolor'="DeepSkyBlue");
|
オプション output=witnesspoints は通常、より少ない数の点を返します。
>
|
p := (-51*a+77*b+95*c+1)*x^3+(a+55*b-28*c+16)*x^2+(30*a-27*b-15*c-59)*x-96*a+72*b-87*c+47;
|
| (5.10) |
>
|
m8:=CellDecomposition([p=0],[x]):
|
>
|
m9:=CellDecomposition([p=0],[x],'output'='witnesspoints'):
|
>
|
nops(m8:-SamplePoints);
|
| (5.11) |
>
|
nops(m9:-SamplePoints);
|
| (5.12) |
以下は無効な入力の例です。
下記システムは解がすべてのパラメータ値においてそれぞれ、重複度が より大きいか無限に存在するケースです。
>
|
CellDecomposition([x^2+y^2=a^2,x=a],[x,y]);
|
Error, (in RootFinding:-Parametric:-CellDecomposition) cannot solve the system: either there are infinitely many complex solutions, or there are solutions of multiplicity > 1, for almost all parameter values
| |
>
|
CellDecomposition([x=a*y,y=a*z,x=a^2*z],[x,y,z]);
|
Error, (in RootFinding:-Parametric:-CellDecomposition) cannot solve the system: either there are infinitely many complex solutions, or there are solutions of multiplicity > 1, for almost all parameter values
| |
|
|