2012-12-03

コックス, リトル&オシー「グレブナ基底と代数多様体入門」第2版 第2章§7の演習問題


演習問題1
IGröbner基底F={f1, f2, f3, f4, f5}において、
Iの元をFの部分集合で割った余りが0なら、
2によりFで割った余りも0だから、例1から
S(f1,f2)F=S(f1,f3)F= S(f1,f4)F= S(f2,f3)F=0は既に示されている。
残りの組合せの割り算は、
S(f1,f5)=x4/2+2xy3=-(x/2)f1+f2-y2f4-f5よりS(f1,f5)F=0,
S(f2,f4)=-2y2+x=f5よりS(f2,f4)F=0,
S(f2,f5)=x3/2-2y3+xy=f1/2-3f4/2-yf5よりS(f2,f5)F=0,
S(f3,f4)=0よりS(f3,f4)F=0,
S(f3,f5)=x3/2=f1/2-f4/2よりS(f3,f5)F=0,
S(f4,f5)=x2/2=-f3/2よりS(f3,f5)F=0

演習問題2&3
小問a
lex順序:
Maxima
-----
load(grobner)$
poly_monomial_order: lex;
f1: x^2*y-1;
f2: x*y^2-x;
G: poly_buchberger([f1,f2],[x,y]);
poly_reduction(G,[x,y]);
-----
によりGröbner基底{x2y-1, xy2-x,x2-y,y2-1}
簡約Gröbner基底{x2-y,y2-1}

grlex順序:
grlex順序の計算は、上のMaximaのコマンドにおいて、2行目を
poly_monomial_order: grlex;
に変えれば良い。
結果的にlex順序と同じGröbner基底、簡約Gröbner基底を得る。

小問b
lex順序:
Maxima
-----
load(grobner)$
poly_monomial_order: lex;
f1: x^2+y;
f2: x^4+2*x^2*y+y^2+3;
G: poly_buchberger([f1,f2],[x,y]);
poly_reduction(G,[x,y]);
-----
によりGröbner基底{y+x2, x4-2x2y+y2+3,1}
簡約Gröbner基底{1}
これよりI=k[x1,..., xn]だからV(I)=

grlex順序:
小問aと同様にして結果的に、
lex順序と同じGröbner基底、簡約Gröbner基底を得る。

小問c
lex順序:
Maxima
-----
load(grobner)$
poly_monomial_order: lex;
f1: x-z^4;
f2: y-z^5;
G: poly_buchberger([f1,f2],[x,y,z]);
poly_reduction(G,[x,y,z]);
-----
によりGröbner基底{x-z4, y-z5}で簡約Gröbner基底も同じ。

演習問題4
定理2のアルゴリズムの擬似コードで、最後のUNTIL G=G'をなくして、
REPEATのループがi回回った時のGGiとする。
定理2の証明で(1)を導いたのと同様の議論により、i<jならGiGjである。

L=0i< Giとする。<LT(L)>は単項式イデアルなので、
あるAn≥0が存在して<LT(L)>={xα: αA}
さらに§4演習問題7によりある有限集合{α(1),...,α(s)}Aが存在して、
任意のαAに対しα=α(k)+γとなるkγn0が存在する。

GiLなのでLT(Gi)LT(L)だから、あるAiAが存在して<LT(Gi)>={xα: αAi}
またi<jとしてGiGjよりLT(Gi)LT(Gj)LT(L)
もしLT(Gi)LT(Gj)なら、あるδAjが存在してxδ<LT(Gi)>かつxδLT(Gj)
xδLT(L)でもあるから、δ=α(k)+γとなるkγn0は存在するので、
もしα(k)Aiならxα(k)|xδだから、§4補題2によりxδLT(Gi)となり矛盾。
故にα(k)Ai。同様に§4補題2によりα(k)Aj

従って、LT(Gi)LT(Gj)が真の増加列なら、
{α(1),...,α(s)}のある元がLT(Gi)に追加されるが、
{α(1),...,α(s)}は有限集合だからこの追加は有限回で終了するので、
あるN≥1が存在して、j≥0ならLT(GN)=LT(GN+j)=LT(L)となる。
すなわち定理2の証明での議論と同様にGN=GN+1となるから、
定理2のアルゴリズムの擬似コードで、最後のUNTIL G=G'があると、
アルゴリズムは高々N+1回のステップで終了する。

なんかまどろっこしい・・・。

演習問題5
仮定により定義4(i)は常に満たされている。

IGröbner基底Gが極小Gröbner基底なら、定義4(ii)により、
gGに対しLT(g)<LT(G-{g})>で、LT(g)<LT(I)>なのだから、
<LT(G-{g})><LT(I)>となるから、G-{g}IGröbner基底でない。
gGは任意だから、Gのどんな真部分集合もIGröbner基底でない。

逆にIGröbner基底Gのどんな真部分集合も、
IGröbner基底でないとすると、
任意のgGについて<LT(G-{g})><LT(I)>
LT(g)<LT(G-{g})>と仮定すると、
補題3によりG-{g}IGröbner基底となり仮定に反する。
したがってLT(g)<LT(G-{g})>だから定義4(ii)によりGIの極小Gröbner基底。

演習問題6
GIGröbner基底なので<LT(I)>=<LT(G)>
ここで定義4(i)は常に満たされているとして一般性を失わないから、
IGröbner基底Gが極小Gröbner基底であることと、
gGに対しLT(g)<LT(G-{g})>は同値。
さらに<LT(G-{g})>は単項式イデアルなので、
§4補題2により<LT(G-{g})>のどの元もLT(g)を割らないことと同値だから、
<LT(I)>=<LT(G)>より<LT(G)><LT(I)>の極小基底であることと同値。

演習問題7
小問a
HTMLの制限により\tilde(G)Gで表す。

G,GはともにIGröbner基底だから<LT(G)>=<LT(G)>=<LT(I)>
LT(G)LT(G)と仮定すると、
LT(G)LT(G)なら、Gの真部分集合がIGröbner基底Gになるので、
演習問題5と矛盾。LT(G)LT(G)でも同様に矛盾。よってLT(G)=LT(G)

小問b
LT(G)=LT(G)により明らか。

演習問題8
Input: G=(g1,...,gs)
Output: reduced Groebner basis Gred
Gmin:=G
FOR each pair (p,q) in G
              if pGmin and qGmin
                            if LM(p)|LM(q) Gmin:=Gmin-{q}
if LM(q)|LM(p) Gmin:=Gmin-{p}

Gred:=Gmin
FOR each p in Gmin
              p':=pGmin -{p}
              if p'p THEN Gred:=(Gred-{p}){p'}

命題6の証明から、一度pGredFORループ内でp':=pG-{p}と簡約されれば、
その後元が入れ替わる各ステップのGredにおいても
常にp'簡約された元なので、pG-{p}は一度計算するだけで良い。

演習問題9
小問a
f1=3x-6y-2z, f2=2x-4y+4w, f3=x-2y-z-wとして、
lex順序x>y>z>wにおけるBuchbergerアルゴリズムを用いる。
すなわちMaxima
-----
load(grobner)$
poly_monomial_order: lex;
f1:3*x-6*y-2*z;
f2: 2*x-4*y+4*w;
f3: x-2*y-z-w;
G:poly_buchberger([f1,f2,f3],[x,y,z,w]);
-----
により、f4=z+3wとしてIGröbner基底は{f1,f2,f3,f4}
これより極小Gröbner基底は、先頭係数が1で、
先頭項が互いに他を割らない組として例えば{f3,f4}を得るから、
(3)の行列表示を得る。

小問b
命題6の方法に従って簡約Gröbner基底は{x-2y+2w,f4}となり、
(4)の行列表示を得る。
Maximaでは小問aのあとに
-----
R:poly_reduction(G,[x,y,z,w]);
-----
とすればよい。

演習問題10
小問a
x=t(x1,...,xm), f=t(f1,...,fn)とすれば、f=Axである。
このとき体k上の行列Aの行変形は、
LM(fi)=LM(fi)なるfi,fj (i<j)について、
LC(fi)≠1ならfifi/ LC(fi)で置き換えて先頭係数を1にしてから、
S(fi,fj)=fi-fj/LC(fj)を作り、
fjS(fi,fj)で置き換える操作と等価である。
するとfj=LC(fj)(fi-S(fi,fj))だから、S(fi,fj)≠0なら
I=< f1,..., fi,..., fj-1, fj, fj+1,...,fn>=< f1,..., fi,..., fj-1,S(fi,fj), fj+1,...,fn>
またS(fi,fj)=0ならI=< f1,..., fi,..., fj-1, fj, fj+1,...,fn>=< f1,..., fi,..., fj-1, fj+1,...,fn>なので、
Aの行変形操作によってIは変化しない。
したがって、行変形によって最終的に得られる<g1,...,gt>=I

小問b
§6定理6BuhbergerSペア判定条件)の証明は、
(6)式が満たされれば成立するから、
判定条件はS(gi,gj)Gで割った余りが0であることというより、
すべてのijなるS(gi,gj)(6)の形に書けること、
すなわちすべてのS(gi,gj)<g1,..., gt>でありさえすればよく、
割り算アルゴリズムにおけるG内のg1,..., gtの順序はあまり関係がない。

すべてのijについて、ヒントにあるようにgi=xk+a, gj=xl+bとおけば、
S(gi,gj)=xla-xkb=-bgi+agj<g1,..., gt>だから、
上で示したことにより{g1,..., gt}IGröbner基底である。

小問c
G={g1,..., gt}とする。
Bは簡約された行階段形行列だから、任意のgiGについて
LT(gi)=LM(gi)ijなるどのgjの項の単項式にもならない。

giのある項の単項式が<LT(G-{gi})>にもし含まれるなら、
あるgmが存在してLT(gm)imなるgiの項の単項式となって矛盾。
故にgiのどの項の単項式も<LT(G-{gi})>に含まれないので、
GIの簡約Gröbner基底。

演習問題11
d=gcd(f,g)Euclidのアルゴリズムで得られる、fgGCDとする。
またdeg(f)≥deg(g)を仮定し、さらにLC(d)≠1なら、
新たにd/LC(d)GCDとしてLC(d)=1としても、一般性を失わない。

kは体だからLC(f),LC(g)k[x]の単数なので、
f=gq+r (deg(r)<deg(g))となるq,rk[x]が存在するから、<f,g>=<g,r>
Euclidのアルゴリズムではこの操作をr=0となるまで繰り返すから、
GCDとしてdを得るので<f,g>=<d>なので、d<f,g>の生成元。。
k[x]は第1章§54によりPIDだから
§5演習問題10により{d}<f,g>Gröbner基底。
LC(d)=1と、<LT({d}-{d}>=よりdのどの項の単項式も<LT({d}-{d}>の元でないから、
定義5により{d}<f,g>の簡約Gröbner基底。

f=gq+rなるq,rk[x]を見つけるための、
通常の1変数多項式の割り算アルゴリズムの各ステップは、
gと、fから始まる中間被除数とのS多項式を求めているので、
Buchbergerアルゴリズムの特別な場合である。
また、rが求まると<f,g>=<f,g,r>=<g,r>によって、
極小Gröbner基底を求めている。


0 件のコメント :

コメントを投稿