1
大学数学基礎解説
文献あり

グレブナー基底を求める「まではやらない」連立方程式の変形

109
0

はじめに

ただ連立方程式を解くことが目的である場合の同値変形をまとめていきます。
用語や記号がほんの一部高校範囲外なので大学数学以上に設定してありますが、かといって大学数学レベルのことかと聞かれると微妙です。

同値変形[0]

{f1(x1, x2, , xm)=0f2(x1, x2, , xm)=0  fn(x1, x2, , xm)=00=0{f1(x1, x2, , xm)=0f2(x1, x2, , xm)=0  fn(x1, x2, , xm)=0

{f1(x1, x2, , xm)=0f2(x1, x2, , xm)=0  fn(x1, x2, , xm)=00=0{f1(x1, x2, , xm)=0f2(x1, x2, , xm)=0  fn(x1, x2, , xm)=00=0{f1(x1, x2, , xm)=0f2(x1, x2, , xm)=0  fn(x1, x2, , xm)=0{f1(x1, x2, , xm)=0f2(x1, x2, , xm)=0  fn(x1, x2, , xm)=0

式の消去のために、次に説明する同値変形[1]と合わせて暗黙的に使います。

同値変形[1]

f(x1, x2, , xm)の単項式にg(x1, x2, , xm)0の先頭単項式LM(g)の倍数M0があるとき、fからh=fMLM(g)gを得る操作をgによる単項簡約といい、fghと表すことにします。

fifjh  (ij)とする。
{f1(x1, x2, , xm)=0f2(x1, x2, , xm)=0  fi(x1, x2, , xm)=0  fj(x1, x2, , xm)=0  fn(x1, x2, , xm)=0{f1(x1, x2, , xm)=0f2(x1, x2, , xm)=0  h(x1, x2, , xm)=0  fj(x1, x2, , xm)=0  fn(x1, x2, , xm)=0

hはある単項式M0を用いてh=fiMfjと表せる。
fi=0fj=0ならばh=0だから
{f1(x1, x2, , xm)=0f2(x1, x2, , xm)=0  fi(x1, x2, , xm)=0  fj(x1, x2, , xm)=0  fn(x1, x2, , xm)=0{f1(x1, x2, , xm)=0f2(x1, x2, , xm)=0  h(x1, x2, , xm)=0  fj(x1, x2, , xm)=0  fn(x1, x2, , xm)=0
が示される。また、fi=h+Mfjと表せる。
h=0fj=0ならばfi=0だから
{f1(x1, x2, , xm)=0f2(x1, x2, , xm)=0  fi(x1, x2, , xm)=0  fj(x1, x2, , xm)=0  fn(x1, x2, , xm)=0{f1(x1, x2, , xm)=0f2(x1, x2, , xm)=0  h(x1, x2, , xm)=0  fj(x1, x2, , xm)=0  fn(x1, x2, , xm)=0
が示される。

これを使うことが多いです。

同値変形[2]

f(x1, x2, , xm)の先頭単項式LM(f)を先頭係数で割ったものを先頭項LT(f)といいます。
T1, T2の最小公倍数をLCM(T1, T2)と表すことにします。
f(x1, x2, , xm)0, g(x1, x2, , xm)0について
S(f, g)=LCM(LT(f), LT(g))LM(f)fLCM(LT(f), LT(g))LM(g)g
f, gS多項式といいます。

{f1(x1, x2, , xm)=0f2(x1, x2, , xm)=0  fi(x1, x2, , xm)=0  fj(x1, x2, , xm)=0  fn(x1, x2, , xm)=0{f1(x1, x2, , xm)=0f2(x1, x2, , xm)=0  fi(x1, x2, , xm)=0  fj(x1, x2, , xm)=0  fn(x1, x2, , xm)=0S(fi, fj)=0

{f1(x1, x2, , xm)=0f2(x1, x2, , xm)=0  fi(x1, x2, , xm)=0  fj(x1, x2, , xm)=0  fn(x1, x2, , xm)=0{f1(x1, x2, , xm)=0f2(x1, x2, , xm)=0  fi(x1, x2, , xm)=0  fj(x1, x2, , xm)=0  fn(x1, x2, , xm)=0S(fi, fj)=0
は明らかである。
また、S(fi, fj)はある単項式M10, M20を用いてS(fi, fj)=M1fiM2fjと表せる。
fi=0fj=0ならばS(fi, fj)=0だから
{f1(x1, x2, , xm)=0f2(x1, x2, , xm)=0  fi(x1, x2, , xm)=0  fj(x1, x2, , xm)=0  fn(x1, x2, , xm)=0{f1(x1, x2, , xm)=0f2(x1, x2, , xm)=0  fi(x1, x2, , xm)=0  fj(x1, x2, , xm)=0  fn(x1, x2, , xm)=0S(fi, fj)=0
が示される。

同値変形[1]1変数の方程式が現れなかったときに使います。

例1

{x2+y+z=3xy=1yz=1
を解いてみましょう。
まず移項によって右辺を0にします。最終的に1変数の方程式に落としこみたいため、x>y>zの辞書式順序で並べます。
{x2+y+z3=0xy1=0yz1=0
同値変形[0], [1]が使えないので、同値変形[2]を使います。
S(xy1, yz1)を求めます。
xyyzの最小公倍数はxyzなので
S(xy1, yz1)=z(xy1)x(yz1)=xyzzxyz+x=xz
xz=0を方程式に追加します。

{x2+y+z3=0xy1=0yz1=0xz=0
{x2+y+z3=0xy1=0xz=0yz1=0
先頭単項式がxである式が現れたので、同値変形[1]を使います。
(xy1)y(xz)=xy1xy+yz=yz1

{x2+y+z3=0yz1=0xz=0yz1=0
{x2+y+z3=0xz=0yz1=0yz1=0
同じ方程式が2つ現れたので、同値変形[1]からの同値変形[0]で消去します。

{x2+y+z3=0xz=0yz1=00=0
{x2+y+z3=0xz=0yz1=0
同値変形[1]をまた使います。
(x2+y+z3)x(xz)=x2+y+z3x2+xz=xz+y+z3
{xz+y+z3=0xz=0yz1=0
同値変形[1]をまた使います。
(xz+y+z3)z(xz)=xz+y+z3xz+z2=y+z2+z3
{y+z2+z3=0xz=0yz1=0
{xz=0yz1=0y+z2+z3=0
同値変形[1]をまた使います。
(yz1)z(y+z2+z3)=yz1yzz3z2+3z=z3z2+3z1
{xz=0z3z2+3z1=0y+z2+z3=0
{xz=0y+z2+z3=0z3+z23z+1=0
{xz, y+z2+z3, z3+z23z+1}x2+y+z3, xy1, yz1=xz, y+z2+z3, z3+z23z+1の簡約グレブナー基底ですが、それを確認する必要はありません。
連立方程式を解くために同値変形をしてきたということが重要です。
z3+z23z+1=0を解きます。
明らかにz=1を解にもつので
z3+z23z+1=(z1)(z2+2z1)=(z1)(z+1+2)(z+12)=0より
z=1, 1+2, 12
(1)z=1の場合
y+z2+z3=y+12+13=y1=0よりy=1
xz=x1=0よりx=1
(2)z=1+2の場合
y+z2+z3=y+(1+2)2+(1+2)3=y12=0よりy=1+2
xz=x+12=0よりx=1+2
(3)z=12の場合
y+z2+z3=y+(12)2+(12)3=y1+2=0よりy=12
xz=x+1+2=0よりx=12
よって
{x2+y+z=3xy=1yz=1
の解は、x=y=z=1またはx=z=1±2, y=1±2 (複号同順)です。

例2

さらに極端な例です。
{a2s+b2s=25a2s+(1b)2s=49(1a)2s+b2s=1
を解いてみましょう。
ちなみにこの方程式で1963年の名古屋大学の入試の図形問題を補助線を引かずに解けます。
まず移項によって右辺を0にし、a>b>sの辞書式順序で並べます。

{a2s+b2s25=0a2s+b2s2bs+s49=0a2s2as+b2s+s1=0
同値変形[1]をひたすら使っていきます。
(a2s2as+b2s+s1)(a2s+b2s25)=2as+s+24より
{a2s+b2s25=0a2s+b2s2bs+s49=0as12s12=0
(a2s+b2s2bs+s49)(a2s+b2s25)=2bs+s24より
{a2s+b2s25=0bs12s+12=0as12s12=0
{a2s+b2s25=0as12s12=0bs12s+12=0
(a2s+b2s25)b(bs12s+12)=a2s+12bs12b25より
{a2s+12bs12b25=0as12s12=0bs12s+12=0
(a2s+12bs12b25)12(bs12s+12)=a2s12b+14s31より
{a2s12b+14s31=0as12s12=0bs12s+12=0
(a2s12b+14s31)a(as12s12)=12as+12a12b+14s31より
{as+24a24b+12s62=0as12s12=0bs12s+12=0
(as+24a24b+12s62)(as12s12)=24a24b+s50より
{ab+124s2512=0as12s12=0bs12s+12=0
(as12s12)s(ab+124s2512)=bs124s2+1912s12より
{ab+124s2512=0bs124s2+1912s12=0bs12s+12=0
(bs124s2+1912s12)(bs12s+12)=124s2+2512s24より
{ab+124s2512=0s250s+576=0bs12s+12=0
{ab+124s2512=0bs12s+12=0s250s+576=0

同値変形[1]だけでa,b,sの方程式とb,sの方程式とsの方程式がそれぞれ現れました。
S(bs12s+12, s250s+576)=s(bs12s+12)b(s250s+576)=50bs576b12s2+12sbs12s+12576b12s2+37s600s250s+576576b+12s312
より、実は{ab+124s2512, bs12s+12, s250s+576}a2s+b2s25, a2s+b2s2bs+s49, a2s2as+b2s+s1=ab+124s2512, bs12s+12, s250s+576のグレブナー基底ではありません。
しかし、ここまで連立方程式を解くという目的のもと同値変形をしてきたので、このまま解いて問題ありません。
s250s+576=0を解くと
s250s+576=(s32)(s18)=0よりs=32, 18です。
(1)s=32の場合
bs12s+12=32b16+12=32b4=0よりb=18
ab+124s2512=a18+32242512=a2124=a78=0よりa=78
(2)s=18の場合
bs12s+12=18b9+12=18b+3=0よりb=16
ab+124s2512=a+16+18242512=a2824=a76=0よりa=76
よって
{a2s+b2s=25a2s+(1b)2s=49(1a)2s+b2s=1
の解は、a=78, b=18, s=32またはa=76, b=16, s=18です。

参考文献

投稿日:2021122
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. はじめに
  2. 同値変形$[0]$
  3. 同値変形$[1]$
  4. 同値変形$[2]$
  5. 例1
  6. 例2
  7. 参考文献