M1 セミナー 2000 年 1 月 14 日配布 M1171023 森島聖

1. ideal quotient の生成元を計算するプログラム

IdealQuotient[f_,g_]:=IdealQuotient[f,g]=
             Module[{IdealIntersection,s,a},
             IdealIntersection[ff_,gg_]:=IdealIntersection[ff,gg]=
             Module[{kk},kk=GroebnerBasis[Join[t*ff,(1-t)*gg],{},{t}];
             If[kk=={},kk={0}];kk];s=Length[g];a=If[g[[1]]===0,{1},
             Expand[Simplify[IdealIntersection[f,{g[[1]]}]/g[[1]]]]];
             Do[a=IdealIntersection[a,If[g[[i]]===0,{1},
             Expand[Simplify[IdealIntersection[f,{g[[i]]}]/g[[i]]]]]],
             {i,2,s}];Expand[Simplify[a]]]

2. [プログラム説明] ideal I と J の生成元をそれぞれ, I = ⟨f_{1}, ⋯, f_{r}⟩ , J = ⟨g_{1}, ⋯, g_{s}⟩ とするとき, IdealQuotient[{f_{1}, ⋯, f_{r}},{g_{1}, ⋯, g_{s}}] と入力すると,I の J による ideal quotient, I : J の生成元 h_{1}, ⋯, h_{t} を出力する。

3. [Expample.1] I = ⟨y⟩ , J = ⟨x, y⟩ ⊂ k [x, y] とする。

   In[1]:= IdealQuotient[{y},{x,y}]
   Out[1]= { y }

よって, I : J = ⟨y⟩。

4. [Expample.2](Chapter4,§4 (P.192) )

I = ⟨xz, yz⟩ , J = ⟨z⟩ ⊂ k [x, y, z] とする。

   In[2]:= IdealQuotient[{x*z,y*z},{z}]
   Out[2]= { y, x }

よって, I : J = ⟨x, y⟩。

5. [Expample.3](Chapter4,§4,EXERCISE.2 (P.194) I = ⟨(x + y)^{2}(x − y)(x + z^{2})⟩ , J = ⟨(x + z^{2})^{3}(x − y)(z + y)⟩ ⊂ k [x, y, z] とする。

   In[3]:= IdealQuotient[{(x+y)^2*(x-y)*(x+z^2)},{(x+z^2)^3*(x-y)*(z+y)}]
   Out[3]= { x^{2} + 2xy + y^{2} }

よって, I : J = ⟨x^{2} + 2xy + y^{2}⟩。 6. [Expample.4](Chapter4,§6 (P.202) )

I = ⟨xz − y^{2}, x^{3} − yz⟩ , J = ⟨x, y⟩ ⊂ k [x, y, z] とする。

   In[4]:= IdealQuotient[{(x*z-y^2,x^3-y*z},{x,y}]

Out[4]= { −y^{5} + z^{4}, xy^{3} − z^{3}, −y^{2} + xz, x^{2}y − z^{2}, x^{3} − yz }

よって, I : J = ⟨−y^{5} + z^{4}, xy^{3} − z^{3}, −y^{2} + xz, x^{2}y − z^{2}, x^{3} − yz⟩。

7. [Expample.5](Chapter4,§6,EXERCISE.4-a (P.206) ) I = ⟨xz − y^{2}, x^{3} − yz⟩ , J = ⟨x^{2}y − z^{2}⟩ ⊂ k [x, y, z] とする。

   In[5]:= IdealQuotient[{(x*z-y^2,x^3-y*z},{x^2*y-z^2}]
   Out[5]= { x, y }

よって, I : J = ⟨x, y⟩。

8. [考察] Mathematica で ideal quotient のプログラムを作成した。このプログラムを用いて variety V から variety W をひいた集合の Zariski 閉包\overline{V − W} が計算出来るわけだが、問題点として、 V の定義イデアルの radical が分からなければならない。また、グラフが Mathematica 上で描きにくいということがあげられる。もし、パラメーター表示が出来るならば、グラフが奇麗に描けるわけだが、 variety が既約になってしまい、例としてつまらないものになってしまう。また、イデアルが単項生成ならば、 Contourplot3D を用いて陰表示で描くことも出来るが、荒くなり奇麗なグラフを描くことができない。単項生成でなければ、問題外である。 (実際には、出来るのかもしれないが、わからなかった。 ) 結局、今回は ideal quotient の計算のみになってしまった。