演習問題1
IのGrö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回回った時のGをGiとする。
定理2の証明で(1)を導いたのと同様の議論により、i<jならGi⊂Gjである。
L=⋃0≤i<∞ Giとする。<LT(L)>は単項式イデアルなので、
あるA⊂ℤn≥0が存在して<LT(L)>={xα: α∈A}。
さらに§4演習問題7によりある有限集合{α(1),...,α(s)}⊂Aが存在して、
任意のα∈Aに対しα=α(k)+γとなるkとγ∈ℤn≥0が存在する。
Gi⊂LなのでLT(Gi)⊂LT(L)だから、あるAi⊂Aが存在して<LT(Gi)>={xα: α∈Ai}。
またi<jとしてGi⊂GjよりLT(Gi)⊂LT(Gj)⊂LT(L)。
もしLT(Gi)⊊LT(Gj)なら、あるδ∈Ajが存在してxδ∉<LT(Gi)>かつxδ∈LT(Gj)。
xδ∈LT(L)でもあるから、δ=α(k)+γとなるkとγ∈ℤn≥0は存在するので、
もしα(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)は常に満たされている。
IのGröbner基底Gが極小Gröbner基底なら、定義4(ii)により、
g∈Gに対しLT(g)∉<LT(G-{g})>で、LT(g)∈<LT(I)>なのだから、
<LT(G-{g})>⊊<LT(I)>となるから、G-{g}はIのGröbner基底でない。
g∈Gは任意だから、Gのどんな真部分集合もIのGröbner基底でない。
逆にIのGröbner基底Gのどんな真部分集合も、
IのGröbner基底でないとすると、
任意のg∈Gについて<LT(G-{g})>⊊<LT(I)>。
LT(g)∈<LT(G-{g})>と仮定すると、
補題3によりG-{g}がIのGröbner基底となり仮定に反する。
したがってLT(g)∉<LT(G-{g})>だから定義4(ii)によりGはIの極小Gröbner基底。
演習問題6
GはIのGröbner基底なので<LT(I)>=<LT(G)>。
ここで定義4の(i)は常に満たされているとして一般性を失わないから、
IのGröbner基底Gが極小Gröbner基底であることと、
g∈Gに対し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はともにIのGröbner基底だから<LT(G)>=<LT(G)>=<LT(I)>。
LT(G)≠LT(G)と仮定すると、
LT(G)⊊LT(G)なら、Gの真部分集合がIのGrö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
p∈Gmin and q∈Gmin
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の証明から、一度p∈GredがFORループ内で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としてIのGrö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ならfiをfi/ LC(fi)で置き換えて先頭係数を1にしてから、
S(fi,fj)=fi-fj/LC(fj)を作り、
fjをS(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定理6(BuhbergerのSペア判定条件)の証明は、
(6)式が満たされれば成立するから、
判定条件はS(gi,gj)をGで割った余りが0であることというより、
すべてのi≠jなるS(gi,gj)を(6)の形に書けること、
すなわちすべてのS(gi,gj)∈<g1,..., gt>でありさえすればよく、
割り算アルゴリズムにおけるG内のg1,..., gtの順序はあまり関係がない。
すべてのi≠jについて、ヒントにあるようにgi=xk+a, gj=xl+bとおけば、
S(gi,gj)=xla-xkb=-bgi+agj∈<g1,..., gt>だから、
上で示したことにより{g1,..., gt}はIのGröbner基底である。
小問c
G={g1,..., gt}とする。
Bは簡約された行階段形行列だから、任意のgi∈Gについて
LT(gi)=LM(gi)はi≠jなるどのgjの項の単項式にもならない。
giのある項の単項式が<LT(G-{gi})>にもし含まれるなら、
あるgmが存在してLT(gm)がi≠mなるgiの項の単項式となって矛盾。
故にgiのどの項の単項式も<LT(G-{gi})>に含まれないので、
GはIの簡約Gröbner基底。
演習問題11
d=gcd(f,g)をEuclidのアルゴリズムで得られる、fとgのGCDとする。
また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,r∈k[x]が存在するから、<f,g>=<g,r>。
Euclidのアルゴリズムではこの操作をr=0となるまで繰り返すから、
GCDとしてdを得るので<f,g>=<d>なので、dは<f,g>の生成元。。
k[x]は第1章§5系4により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,r∈k[x]を見つけるための、
通常の1変数多項式の割り算アルゴリズムの各ステップは、
gと、fから始まる中間被除数とのS多項式を求めているので、
Buchbergerアルゴリズムの特別な場合である。
また、rが求まると<f,g>=<f,g,r>=<g,r>によって、
極小Gröbner基底を求めている。
0 件のコメント :
コメントを投稿