イデアル、ラジカル

  • 多項式の部分集合をイデアルに取る
  • イデアルの要素多項式の零点集合が代数多様体V
  • 例えば、f(x)= x^2-1という1つの多項式は、\{-1,1\}を零点集合とする
  • 別の多項式f_2(x) = (x-1)(x^2-1)の零点集合も\{-1,1\}である
  • この零点集合を代数多様体 V とする
  • Vからスタートして、Vのすべての点で零を取るすべての関数をI(V)と書いて、「Vが定めるイデアル」と言う
  • Vが\{-1,1\}のとき、そのような関数は(x-1)\times (x+1) \times g(x)という形をしている。ただしg(x)は任意の多項式
  • したがって、「Vが定めるイデアル」は<(x-1)(x+1)>となる
  • これは、f(x)= x^2-1が作るイデアル[tex:]とは一致するが、f_2(x) = (x-1)(x^2-1)が作るイデアル[tex:]とは異なる
  • このように、異なるイデアルから同じ代数多様体が得られるが、ある代数多様体をもたらすイデアルは一意には決まらない
  • 「Vが定めるイデアル」としては、「Vをもたらすイデアルのうち、最大の集合」が「はっきりしていて」良さそう
  • それをラジカルと言う
  •  \sqrt{I} = I(V(I))と書いたりする
  • 上の例では、<(x-1)(x+1)>がラジカル
  • sagemathでやっておく
    • まず、めいっぱいのイデアルからそのラジカルと取り、両者を比較するべく、グレブナー基底を作って表示させてみる。「めいっぱい」の場合、両者は一致する
R = PolynomialRing(QQ,2,"xy")
x,y  = R.gens()
eqs = [(x^2-1)]
eqst = tuple(eqs) # リストをタプルにする
I = eqst * R 
B = I.groebner_basis()
B2 = (I.radical()).groebner_basis()
print("B")
for eq in list(B):
    print(str(eq)+",")
print("B2")
for eq in list(B2):
    print(str(eq)+",")
B
x^2 - 1,
B2
x^2 - 1,
    • 次に、ラジカルに余計な項を掛ける
      • ぱっつんぱっつんではないので、ラジカルを取ると、最初のイデアルより「簡素な式」が現れる。言い換えると、ラジカルにはより多くの多項式が含まれることを意味する
R = PolynomialRing(QQ,2,"xy")
x,y  = R.gens()
eqs = [(x^2-1)*(x+1)]
eqst = tuple(eqs) # リストをタプルにする
I = eqst * R 
B = I.groebner_basis()
B2 = (I.radical()).groebner_basis()
print("B")
for eq in list(B):
    print(str(eq)+",")
print("B2")
for eq in list(B2):
    print(str(eq)+",")
B
x^3 + x^2 - x - 1,
B2
x^2 - 1,