Groebner[Solve] - Buchberger のアルゴリズムを用いた因数分解
|
使い方
|
|
Solve(G, X, NZ, opts)
|
|
パラメータ
|
|
G
|
-
|
多項式のリストか集合、あるいは PolynomialIdeal
|
X
|
-
|
(オプション) 変数のリストか集合、または単項式の短い記述
|
NZ
|
-
|
(オプション) 非零の制約のリストか集合
|
opts
|
-
|
keyword=value の形式のオプション引数
|
|
|
|
|
説明
|
|
•
|
Solve コマンドは多様体の部分多様体に対応する簡約 Groebner 基底を計算することによって代数系を解くための前処理をします。まず G は因数分解によって分割されます。分割されたそれぞれの成分は、すべての変数に対して因数分解をする Buchberger のアルゴリズムのヴァリエーションに渡されます。重複度は取り除かれます。
|
•
|
第 2 引数 X は系の変数を指定し、また単項式順序を設定することもできます。X がリストのとき、Solve(G, X) は X.によって変数の順序を定めた辞書式順序の Groebner 基底を、各成分について計算します。X が集合のときは単項式順序は発見的に選ばれ (SuggestVariableOrder 参照) 、Solve は各成分に対して、辞書式順序の Groebner 基底を計算します。X が 単項式の短い記述 だったときは Solve は全ての計算に X を用いますが、概して最も良い因数分解を与えるのは辞書式順序であるということには留意すべきです。
|
•
|
第 3 引数 NZ はある量が根の中に込められないよう、制約をつけます。NZ の中のある多項式が、あるコンポーネントで恒等的に 0 となったらその成分は取り除かれます。NZ を特に指定しなかった場合、 であるとして計算されます。
|
•
|
オプションの characteristic=p は G が多項式のリストか集合であった場合、その環の標数を指定します。指定がなければ 0 として扱われます。
|
•
|
G が多項式のリストか集合の場合、Solve コマンドは Groebner 基底、単項式順序、非零の条件を含んだ要素の集合を出力します。G が PolynomialIdeal の場合は Solve は Groebner 基底と単項式順序を PolynomialIdeal のデータ構造に追加します。いづれの形式もオプションとしてそれぞれ output=basis と output=ideal を与えることで選択できます。
|
•
|
gsolve コマンドは同様の働きをしますが、今後リリースされる Maple ではサポートされない可能性がありますのでご注意ください。
|
|
|
例
|
|
>
|
G := [x^2-2*x*z+5,x*y^2+y*z^3,3*y^2-8*z^3]:
|
![{[[z, y, x^2+5], plex(x, y, z), {}], [[240*z^3+1600+9*z^6-96*z^5, -3*z^5-40*z^2+32*z^4+80*y, 640*x+9*z^5+120*z^2-96*z^4], plex(x, y, z), {z, 3*z^5+40*z^2-32*z^4}]}](/support/helpjp/helpview.aspx?si=1580/file00580/math161.png)
| (4.1) |
![{[[3*x^6-64*x^5+45*x^4+225*x^2+375, 150*x+150*z+45*x^3-64*x^4+3*x^5, 8*x+3*y], plex(y, z, x), {x, x^2+5}], [[x^2+5, z, y], plex(y, z, x), {}]}](/support/helpjp/helpview.aspx?si=1580/file00580/math168.png)
| (4.2) |
>
|
Solve(G, {x,y,z}, {y}); # y is non-zero
|
![{[[240*z^3+1600+9*z^6-96*z^5, -3*z^5-40*z^2+32*z^4+80*y, 640*x+9*z^5+120*z^2-96*z^4], plex(x, y, z), {z, 3*z^5+40*z^2-32*z^4}]}](/support/helpjp/helpview.aspx?si=1580/file00580/math175.png)
| (4.3) |
>
|
Solve(G, {x,y,z}, characteristic=3);
|
| (4.4) |
| (4.5) |
例では重複度が変わっています。(x,y) = (0,-1) は二つの曲線 x^2 + y^2 - 1 = 0 と y - x^2 + 1 = 0 の交点でしたが結果では重複は 1 となっています。
>
|
with(PolynomialIdeals):
|
>
|
J := <x^2+y^2-1, y-x^2+1>;
|
| (4.6) |
| (4.7) |
|
|