Groebner[MultiplicationMatrix] - 乗法表の計算
Groebner[NormalSet] - 単項式基底の計算
|
使い方
|
|
NormalSet(J, tord)
MultiplicationMatrix(f, ns, rv, G, tord, characteristic=p)
|
|
パラメータ
|
|
J
|
-
|
tord に関する Groebner 基底か、PolynomialIdeal (0 次元)
|
tord
|
-
|
単項式順序の短い記述
|
f
|
-
|
(単一の) 多項式
|
ns, rv
|
-
|
単項式基底 (NormalSet コマンドの出力)
|
p
|
-
|
(オプション) 標数
|
|
|
|
|
説明
|
|
•
|
NormalSet コマンドは剰余環 K[x1,...,xn]/J (ただし J は 0 次元とする) の単項式基底を計算します。入力は tord に関する Groebner 基底か PolynomialIdeal 、この場合 tord に関する Groebner 基底が計算される。出力は ns と rv です。ここで ns は剰余環のベクトル空間としての基底をなす単項式のソートされたリストであり、rv は ns を逆転するテーブル (i.e.: i=1..nops(ns) に対して rv[ns[i]] = i) です。rv は多項式の係数を ns に関するベクトルとして割り当てる計算を線型時間で行えるようにします。
|
•
|
単項式基底 ns の要素の個数は係数体の代数閉体上の解の個数と一致します。
|
•
|
MultiplicationMatrix コマンドは f の J と tord に関する乗法表の行列を構築します。この行列の行は ns[i]*f の正規形を ns に関するベクトルで表したものになり、この固有値は多様体 V(J) における f の値を含んでいます。特に、f = x のときは乗法表の行列の固有値に J の解の x-座標の値が得られます。この方法は 0 次元イデアルの多項式系を解くために用いることができます。
|
|
|
例
|
|
例 1: Lagrange 乗数法
>
|
f := x^3 + 2*x*y*z - z^2:
|
>
|
g := x^2 + y^2 + z^2 - 1:
|
>
|
J := convert(VectorCalculus[Gradient](F, [lambda, x, y, z]), set);
|
| (4.1) |
>
|
tord := tdeg(lambda,x,y,z);
|
| (4.2) |
>
|
ns, rv := NormalSet(G, tord):
|
>
|
Mx := MultiplicationMatrix(x, ns, rv, G, tord);
|
| (4.3) |
>
|
My := MultiplicationMatrix(y, ns, rv, G, tord);
|
| (4.4) |
>
|
Mz := MultiplicationMatrix(z, ns, rv, G, tord);
|
| (4.5) |
>
|
Mlambda := MultiplicationMatrix(lambda, ns, rv, G, tord);
|
| (4.6) |
行列が可換なのは明らかです。
>
|
LinearAlgebra[Norm]( Mx.My-My.Mx, infinity);
|
| (4.7) |
例 2: 多様体の共通部分
>
|
f[1] := 3*x[1]^2*x[2] + 9*x[1]^2+2*x[1]*x[2]+5*x[1] + x[2] - 3:
|
>
|
f[2] := 2*x[1]^3*x[2] + 6*x[1]^3 - 2*x[1]^2 - x[1]*x[2] - 3*x[1] - x[2] + 3:
|
>
|
f[3] := x[1]^3*x[2] + 3*x[1]^3 + x[1]^2*x[2] + 2*x[1]^2:
|
>
|
G := Basis( [f[1], f[2], f[3]], tdeg(x[1],x[2]));
|
| (4.8) |
>
|
ns, rv := NormalSet(G, tdeg(x[1],x[2])):
|
>
|
M1 := MultiplicationMatrix(x[1], ns, rv, G, tdeg(x[1],x[2]));
|
| (4.9) |
>
|
M2 := MultiplicationMatrix(x[2], ns, rv, G, tdeg(x[1],x[2]));
|
| (4.10) |
| (4.11) |
乗法表の行列 M1, M2 の固有値から多項式系の根を求めます
>
|
LinearAlgebra[Eigenvectors](M1);
|
| (4.12) |
>
|
LinearAlgebra[Eigenvectors](M2);
|
| (4.13) |
例 3: 天体力学における問題。S4 系 (重さの等しいニュートニアン平面上の 4 体問題)
>
|
e1 := -2*p^3+2*p^3*phi^3-4*phi^3*s*p^2+5*phi^3*s^3*p-phi^3*s^5:
|
>
|
e2 := -2*s*p^3-2*phi^3*s^2+phi^3*s^4-3*phi^3*s^2*p+2*phi^3*p:
|
>
|
e3 := -2*s^2+s^4-4*s^2*p+phi^2+1+4*p:
|
>
|
G := Basis([e1,e2,e3], tdeg(s,p,phi)):
|
>
|
ns, rv := NormalSet(G, tdeg(p,s,phi)):
|
>
|
Mphi := MultiplicationMatrix(phi, ns, rv, G, tdeg(p,s,phi));
|
| (4.14) |
>
|
P37 := sort(factor(LinearAlgebra[CharacteristicPolynomial](Mphi,phi)));
|
| (4.15) |
Mphi の最小多項式は [e1,e2,e3] の辞書式 Groebner 基底の一部分であり、P37 はその積です。
>
|
L := Groebner[Basis]([e1,e2,e3], plex(p,s,phi)):
|
| (4.16) |
|
|
参考文献
|
|
•
|
Robert M. Corless, "Groebner Bases and Matrix Eigenproblems." SIGSAM Bulletin (Communications in Computer Algebra), Volume 30, number 4, Issue 118, Dec. 1996, pp. 26--32
|
•
|
D. Cox, J. Little, D. O'Shea. "Using Algebraic Geometry." Springer-Verlag, 1998
|
|
|