代数幾何ゼミ
石井大海
早稲田大学基幹理工学部
数学科四年2014 年 1 月 8 日

前回までの復習• 連立代数方程式系 f1 = · · · = fs = 0 を解きたい• 剰余環 k[X]/I の有限次元代数としての構造を調べた（I = ⟨f1 , . . . , fs ⟩)dimC k[X]/I < ∞ ⇔ |V (I )| < ∞この時 I は零次元イデアルであると云う．
• f ∈ k[X] を掛ける操作に対応する行列 mf を考えると，mf の固有値が f の |V (I )| 上での値と一対一に対応することを見た⇝ 特に f = xi とすると第 i 座標がわかる！

固有値の計算法 I
Cor. 1I ⊆ C[X] が零次元イデアルだとする．xi に対応する乗算行列 mxiの固有値と V (I ) の点の xi -座標の全体は一致する．更に，最小多項式 hxi (t) の t を xi で置き換えたものが，消去イデアル I ∩ C[xi ]の一意なモニック生成元となる．
• これを使うためには，固有値を計算する方法を知っておく必

要がある• 線型代数の講義でやる素朴な方法：固有多項式を解く

det(M − tI ) = 0!

行列のサイズが大きいとこの方程式を解くのは大変！
• 高次な固有多項式の厳密解や良い近似解を求めるのは困難なので，実用上固有多項式は殆んど使われない．

固有値の計算法 II?

他の手法は？
• 冪乗法……最もよく知られた基本的な固有値の数値計算法• λ が M の優固有値 (dominant eigenvalue) ⇔ M の他の固有値µ ̸= λ に対し，|λ| > |µ|• Fact: M が一意な優固有値を持つなら，適当な x0 に対し

xk+1 = Mxk 方向の単位ベクトルと置くと，殆んど全ての場合について xk は λ に属する固有ベクトルに収束する．

⇝ xk+1 を計算する各段階で ∥Mxk ∥ が固有値の近似値となる

固有値の計算法 III• 優固有値を持たないと収束しない可能性があるが，改良することが出来る• 殆んど全ての s に対し，M ′ = (M − sI )−1 の優固有値が一意に定まる• 冪乗法を用いて M ′ の固有値 λ を求めれば，s に最も近い Mの固有値は 1/λ′ + s により与えられる⇝ Newton 法の時に用いた根の範囲の上界を使えば，s を適切に選んでやることで M の固有値が全て求まる！
· · · 但し，解の挙動のカオス性など Newton 法の時と同じ困難もつきまとう• 他の手法：LR 法・QR 法という全ての（実・複素）固有値を求める洗練された方法が知られている• ごく稀に退化行列に対しては上手くいかない事もある• いずれにせよ，数値計算により固有値が計算出来る

消去ではなく固有値を使う理由
1

必要な計算量の違い• 消去による方法……単項式順序の選択が問題になる• lex 順序の計算は高価• FGLM アルゴリズムを使えば grevlex から lex を計算出来るが，固有値を使えばそれすら不要· · · k[X]/I の構造や剰余の計算は単項式順序に依らない• 任意の単項式順序が使える！
2

数値計算と記号計算の量の差• 数値計算による方法は解が不安定（係数の擾乱に弱い）• I の生成元が有理係数の場合，mxi の係数も有理数になるので，厳密な値を計算出来る！
⇝ 固有値を用いた場合，数値計算は固有値の計算時のみで済む
3

累積誤差を避けられる• 固有値を使えば，xi の計算に xj を使わないで済む

Exercise 0-4
今の手法を次の方程式系に適用して解を求めてみよう：2x − 2xz − 5 = 0xy 2 + yz + 1 = 0 23y − 8xz=01

I の grevlex についての Gröbner 基底を求め，基底単項式 B を求めよ．lex の場合はどうなるか？

2B を使って x に対応する乗法行列 mx を求めよ．

3

固有値の数値計算法を用いて，mx の固有値を求めよ．

4

同様のことを y , z に対しても行い，元の方程式系に代入して実根を求めよ．

1
3y 2 − 8xz, x 2 − 2xz + 5, 16xz 2 + 3yz − 40z + 3,





160z 3 − 160xz + 415yz + 12x − 30y − 224z + 15,
G= 240yz 2 − 9xy + 1600xz + 18yz + 120z 2 − 120x + 240z, 
3xyz − 6yz 2 − 40xz + 3x − 6z
よって求める基底単項式は次の通り：
B = ⟨z 2 , yz, xz, z, xy , y , x, 1⟩2

上の順番の基底について乗法行列は次のようになる：

0−100−20 0 0
−3/16 −3/20 −3/8 0 −3/10 0 0 0


 0

0010020
 5/200000 0 0


 0
3/40
00 3/20 1 0 0
 0000−50 0 0
 000000 0 1
−3/160−3/8 000 −5 0

3Singular の qrds コマンドを用いて上の mx の固有値を求めると，答えは次の通りになる：−1.10098771532150900718√
0.072490811306811936608 ± 2.236999052744946834 −1√
0.076648897061746479535 ± 2.24312334842516411225 −1√−0.081502078860517339366 ± 0.93107072263472389146 −1
0.96571245630542685362,

4

λy = −2.812496056, −2.8780025363
λz = 3.0716185286, −2.8211822270
が固有値．これらの組合せのうち I に代入して消えるのは，(x, y , z) = (0.965712456, −2.812496056, 3.0716185286),(−1.1009877153, −2.8780025363, −2.8211822270)

右固有ベクトルと左固有ベクトル I• 行列 M は二種類の固有ベクトルを持つ．
右固有ベクトル．通常の Mv = λv を満たすような列ベクトルv ̸= 02 左固有ベクトル．転置行列と元の行列は同じ固有値を持つので，M T v ′ = λv ′ となるような v ′ が存在する．そこで両辺の転置を取ると v ′T M = λv ′T となる．この行ベクトル v ′T をM の左固有ベクトルと呼ぶ．
⇝ 左固有ベクトルが方程式の求解に役立つ（次回）1• 左右固有ベクトルの関係：• M を対角化可能な n 次正方行列とする．この時，Cn の基底で列が全て M の固有ベクトルとなるものが取れる．

右固有ベクトルと左固有ベクトル II• Q を Cn のある基底に関して M の右固有ベクトルを列に持つ正方行列とし，D を M の固有値を対角成分とする対角行列とする．この時次が成立する：

MQ = QD
これを変形すると

Q −1 M = DQ −1となる．この時 Q −1 の各行は左固有ベクトルとなる

零点と左固有ベクトルの関係 I• I が零次元イデアルの時，mf の左固有ベクトルと V (I ) の点には強い関係がある．
√⋆ 特に，以下では I = I の場合を考える．
⇝ m = |V (I )| とすると，命題 2.10 より A = k[X]/I はベクトル空間として m 次元になる⇝ そこで A の単項式基底を B = { [Xα(1) ], [Xα(m) ] } 書くことにする．
• この基底についての f の乗算行列を mf と書くことにする⋆ 左固有ベクトルと V (I ) の関係を述べたのが次の定理：

零点と左固有ベクトルの関係 II
Prop. 2√I = I,1 ∈/ I とする．f ∈ C[X] が V (I ) 上の全ての点で異なる値を取るとき，mf の左固有空間はどれも一次元である．更に，それらは各 p ∈ V (I ) について (p α(1) , . . . , p α(m) ) で張られている．
証明．mf = (mi j) とすると，1 ≤ j ≤ m について，[Xα(j) f ] = mf ([Xα(j) ])= m1j [Xα(1) ] + · · · + mmj [Xα(m) ]となる．そこで，p ∈ V (I ) を取り，p 上でこの等式を評価すれば，

p α(j) f (p) = m1j p α(1) + · · · + mmj p α(m)

零点と左固有ベクトルの関係 IIIとなる．これを各 j = 1, . . . , m について繰り返せば，簡単な添字の比較により

f (p)(p α(1) , . . . , p α(m) ) = (p α(1) , . . . , p α(m) )mfとなることが判る．1 ∈/ I より，B のうちの一つは [1] となっているから，(p α(1) , . . . , p α(m) ) ̸= 0 である．よって，(p α(1) , . . . , p α(m) )は mf の固有値 f (p) に属する左固有ベクトルである．
仮定より，各 p ∈ V (I ) について f (p) は相異なる値を取るので，mf は m 個の相異なる固有値を持つ m 次正方行列である．よって，線型代数の一般論から各固有空間はきっかり一次元となる．

左固有ベクトルを用いた解法 I
以上を踏まえて，次のようにして連立代数方程式を解く方法が得られる：√√1I を計算し，I を I で置き換える
23Gröbner 基底 G を計算し，そこから単項式基底 B を求める．
もし 1 ∈ G なら解なしとして終了．
ランダムに整数 (c1 , . . . , cn ) を選び，f = c1 x1 + · · · + cn xn と置けば，f は高確率で V (I ) の各点で相異なる値を取る．

4

基底 B に関する乗算行列 mf を求め，その固有値 λ および左固有ベクトル v を求める．

5

各 v は v = c(p α(1) , . . . , p α(m) ) を満たす．そこで，
p = (a1 , . . . , an ) と書いて，各 ai を求める事を考える．有限性定理から，1 ≤ i ≤ n に対し，LT(gi ) = ximi (mi ≥ 1) となるような gi ∈ G が存在する．mi の値について場合分けする．

左固有ベクトルを用いた解法 II
mi > 1 の時 この時，[xi ] ∈ B であるから，cai は v のある座標である．よって，cai = vji となるような ji が存在する．同様に，[1] ∈ B であるから，c = c · 1 = vj0 となるような j0 が存在する．
よってこの時は，次で ai が求まる：
ai =vjcai= icvj0

mi = 1 の時 この時 [xi ] ∈/ B である．そこで B ではなく Gを参考に ai を求める事を考える．そこで，
mi = 1 を満たす変数を xi1 , . . . , xiℓ によって数え上げる．特に，x1 > · · · > xn かつ i1 > · · · > iℓとなるように並べる（即ち，現在の単項式順序において降順になるように並べる）．すると，
gj = xij + (i > ij なる xi を含む項)

左固有ベクトルを用いた解法 IIIという形の gj ∈ G が取れる（これは消去順序についての議論の際にやった）．これを点 p で評価すれば，0 = aij + (i > ij なる ai を含む項)i∈/ { i1 , . . . , iℓ } なる ai の値については上のmi > 1 の場合について解けているので既に判っている．よって，i = iℓ から順次 ai = 0 を解いていけば，残りの点も求めることが出来る．
6

もし解の個数が期待より少なかったり零点では無いものが見付かった場合，f を取り直して再試行．