27

【数学小説】お嬢様はグレブナー基底がお好き

3328
0

漫画版「お嬢様はグレブナー基底がお好き!」




小説版(漫画の続き)

慎一郎「ハァッ……ハァッ……」

ポン酢が気管に詰まったようで、ひどくむせる慎一郎。

慎一郎「お嬢様ひどいですよ!いきなりポン酢を飲ませるなんて!」
リサ「し、慎一郎が悪いんですのよ…!わ、私の名前をつけたいなんて……変なこというから…」

頬を赤らめてぶつぶつと文句をいうリサ。

慎一郎「変なこと……?はっ!まさか僕、お嬢様に何か失礼なことを……!?」
リサ「な、なんでもないですわ!」
慎一郎「遠慮せずなんでも言ってください!僕はリサお嬢様の執事なんですから!」

リサをじっと見つめる慎一郎。
その純粋無垢な瞳に彼女はドキッとする。

リサ「慎一郎は……その……どう思ってるの?」
慎一郎「はい?」
リサ「その……好きとか、嫌いとか……」
慎一郎「えーと……すごく気になってますね」
リサ「え!気になるって、どういうこと?」
慎一郎「どうと言いますと、もっと知りたいといいますか……」
リサ「め、目の前でいうなんて、だ、大胆ですわね!」
慎一郎「そうですか?リサお嬢様も同じ気持ちじゃないんですか?」

彼女は慎一郎の問いかけに言葉が詰まってしまう。

リサ「そ、それは……」

声を震わせながら、慎一郎と目を合わせる。

リサ「わ、私も慎一郎のこと……す、す、す、す…………」

勇気を出して言い切ろうとするも、あと少しのところで止めてしまった。

リサ「やっぱりダメですわ!私と慎一郎は主人と執事。恋愛関係など言語道断、禁断の果実。亜修院家の公理に反しますわ!」
慎一郎「恋愛関係?何のことですか?」
リサ「え?」

慎一郎の一言に呆然とするリサ。

慎一郎「気になるって、グレブナー基底の話ですよね?お嬢様の分かりやすい説明で、もっと知りたくなりました」
リサ「え……」

自分の勘違いに気づき、沸騰したやかんのように顔が真っ赤になる。

リサ「そ、そ、そ、そうですわよね!グレブナー基底の話ですわよね!私だって最初からそう思ってましたわよ!」
慎一郎「お嬢様、大丈夫ですか?お顔が紅潮しているようですが、もしかして熱でもあるのでは……?」

おでこに手を当てて熱を測る慎一郎。
リサはいきなりの接近に動揺し、咄嗟に手を振り払った。

リサ「だ、大丈夫ですわ!それより、グレブナー基底の話の続きをしましょう!」
慎一郎「え?」
リサ「いいから、私から離れなさい!」
慎一郎「かしこまりました……。お嬢様が大丈夫ならそれでいいですが……無理だけはなさらないでくださいね……」

リサは深呼吸をして心を落ち着かせる。
そして、マーカーペンをとり、ホワイトボードに文字を書き始めた。

多項式の組計算しやすい多項式の組(グレブナー基底)

リサ「さっき説明したように、グレブナー基底とは『計算がしやすい多項式の組』でしたわ!」
慎一郎「はい、そうですね」
リサ「では次に『もう少し厳密なグレブナー基底の定義』について、これから考えていきますわ!」
慎一郎「詳しいお話が聞けるわけですね。楽しみです」

§1 先頭項とグレブナー基底

リサ「さっきグレブナー基底と連立方程式について説明しましたわね」
慎一郎「はい。たしか、連立方程式の多項式をグレブナー基底にすると、解きやすくなるって感じでしたよね」
リサ「その通りですわ。では、元の連立方程式の多項式とグレブナー基底では何が違うか、見ていきますわ」

元の連立方程式
{x2+y2=12x+y=2

グレブナー基底を使って、書き換えた連立方程式
{2x+y=25y24y=0

リサ「上の多項式と下の多項式、どういう風に違うかしら?」
慎一郎「どうって……あ、よく見ると2x+y=2という式は共通してありますね。」
リサ「他には?」
慎一郎「うーんと、逆に違う部分としては、上の方ではx2+y2=1という式で、下の方では5y24yというのが出てきてますよね」
リサ「その通り!ここで、その事実を別の見方で見てみますわ!」
慎一郎「別の見方、ですか?」
リサ「それはズバリ……『先頭項』ですわ!」
慎一郎「セントウコウ……?なんですかそれは?」
リサ「ズバリ、グレブナー基底とは先頭項の情報を網羅した多項式の組ですの」
慎一郎「モウラ……??」
リサ「まあ落ち着いて聞きなさいセバスチャン」
慎一郎「山田です」

リサは連立方程式の多項式の1番左の部分を赤く強調した。

元の連立方程式
x2+y2=1
2x+y=2

グレブナー基底を使って、書き換えた連立方程式
2x+y=2
5y24y=0

リサ「これで再び上と下の違いを考えるとどうなるかしら?」
慎一郎「えーっと……あ!上の赤い部分はxしか登場しないですが、下の赤い部分にはxyが登場していますね」
リサ「なかなか筋がいいわね、カトリーヌ」
慎一郎「山田です」
リサ「そう、今赤くした部分のことをそれぞれの多項式の『先頭項』というのですわ」
慎一郎「先頭項……あ!先頭の項というわけですか!?」
リサ「その通りよ」

リサはさっきの動揺は忘れたように、もうすっかり落ち着いていた。
数学の話をするとき、彼女は彼女らしくなる。

リサ「単項式の間に順序を入れたとき、『多項式の項の中で1番大きい部分』を先頭項というのですわ」
慎一郎「たしか単項式って、えーと、x2とかyとか、項が1個しかないもののことでしたっけ?」
リサ「ええ。例えば、x2yxy3も単項式ですわ」
慎一郎「なるほど。」
リサ「そして多項式fに対し、その先頭項をLT(f)と表記しますわ」
慎一郎「えるてぃー……ですか?」

リサはホワイトボードにスラスラと筆記体で文字を書く。
Leading Term

リサ「英語で先頭項はLeading Termといいますの」
慎一郎「あ、その頭文字というわけですね」
リサ「ええ。ここで例えば、f=x2+y21とすると、LT(f)は何になるかしら?」
慎一郎「えーっと……1番左の項だから、x2ですか?」
リサ「そうね。つまりLT(x2+y21)=x2になりますわ」
慎一郎「ほっ。よかった」
リサ「では、f=2x+y2の場合はどうかしら?」
慎一郎「その場合は……2xですか?つまり、LT(2x+y2)=2x?」
リサ「正解ですわ!なかなか筋がいいですわね」
慎一郎「いえ、リサお嬢様ほどでは」

慎一郎は反射的にお辞儀をする。

慎一郎「それで、その先頭項がどうグレブナー基底と関係するのですか?」
リサ「焦らないでくださいまし。順を追って説明しますわ」
慎一郎「失礼いたしました」
リサ「元々の連立方程式の多項式の先頭項を書いてみると、このようになりますわ」

元の連立方程式
x2+y2=1LT(x2+y21)=x2
2x+y=2LT(2x+y2)=2x

リサ「さっきも言ったように、これらの式の先頭項には変数xしか登場しませんわね」
慎一郎「そうですね」
リサ「でも、それは連立方程式の特徴を表すのに、不十分ですわ」
慎一郎「不十分……ですか?」
リサ「ええ」

リサは連立方程式の横に番号を追加した。

x2+y2=1…①
2x+y=2…②

リサ「今、上の方程式を①、下の方程式を②とした時に、①と②からはどんな方程式が作れるかしら?」
慎一郎「作る……?というのは……どういうことですか?」
リサ「言い方を変えましょう。ジョニーが普通に連立方程式を解くとしたら、どうやって解くかしら?」
慎一郎「えーっと……足したり引いたりしますね。あと山田です」
リサ「例えば?」
慎一郎「例えば……①と②を足すと、」

x2+y2=1
+
2x+y=2
||
x2+2x+y2+y=3

慎一郎「って感じで、x2+2x+y2+y=3になります。あ、これだと上手くxが消えてないので、①と②に何か掛けないとダメですね……えーっと……」

慎一郎はホワイトボードの前で少し黙り込む。
リサは慎一郎が口を開くのを静かに待った。

慎一郎「そうか、①に2を掛けて、②にxを掛けたものを引けばいいですね」

2x2+2y2=2……①×2

2x2+xy=2x……②×x
||
xy+2y2=22x
移項すると、(2y)x+2y22=0

慎一郎「あ、でもまだこれだと、xが残ってるからダメですね」
リサ「そうかしら?さらに②を使えば、xを完全に消すことができないかしら?」
慎一郎「……あ!そうか!②に12(2y)を掛けてあげれば、(2y)xが揃うから、」

(2y)x+2y22=0

(2y)x+12(2y)y=12(2y)2……②×12(2y)
||
2y212(2y)y2=2+y
整理すると、5y24y=0

慎一郎「あ!yだけの式5y24yが出てきました!」
リサ「そうね。そして、5y24yの先頭項はLT(5y24y)=5y2。すなわち、先頭項にxしかなかった連立方程式から、新しくyを変数に持つ先頭項を作り出すことができたの」

元の連立方程式
x2+y2=1LT(x2+y21)=x2
2x+y=2LT(2x+y2)=2x

上の式に多項式を掛けたり、それらを足したり引いたりすることで、
新しく5y24y=0という式が作れた。
LT(5y24y)=5y2にはxが登場しない。

慎一郎「おおー!確かにそうですね!」
リサ「さっきLT(x2+y21)=x2LT(2x+y2)=2xでは不十分と言ったのは、5y2の情報を含んでいないからですわ」
慎一郎「なるほど。足したり掛けたりすることで、先頭項を新しく作れる可能性があるってことですね」
リサ「その通り!実はグレブナー基底というのは、そのような先頭項の情報をすべて持っている多項式の組なのですわ!」
慎一郎「おおー!」
リサ「ここで、最初に書いたグレブナー基底を見てみましょう」

元の連立方程式
x2+y2=1
2x+y=2

グレブナー基底を使って、書き換えた連立方程式
2x+y=2
5y24y=0

ここで、{2x+y2,5y24y}はグレブナー基底

リサ「グレブナー基底の多項式の先頭項は、LT(2x+y2)=2xLT(5y24y)=5y2で、xだけでなくyも登場してますわね」
慎一郎「そうですね」
リサ「実は、元の連立方程式の多項式 x2+y212x+y2から作れるどんな多項式の先頭項も、必ず2x5y2の少なくともどちらかで割り切れるのですわ!」
慎一郎「え!?どういうことですか!?」

慎一郎は驚き目を丸くする。

リサ「例えば、さっき連立方程式を解く際に、x2+y212を掛けて、2x+y2xを掛けたものを引きましたわね」
慎一郎「ええ」
リサ「それを式で表すとこのようになりますわ」

2(x2+y1)x(2x+y2)= xy+2x+2y2

慎一郎「そうですね」
リサ「x2+y212x+y2から新しく、xy+2x+2y2という多項式が作れましたわ」
慎一郎「はい」
リサ「このxy+2x+2y2の先頭項は何かしら?」
慎一郎「えーと、LT(xy+2x+2y2)=xyですね」
リサ「そう。ここで、xyというのは、LT(2x+y2)=2x)で割り切ることができますわ」

LT(xy+2x+2y2)=xyLT(2x+y2)=2xであり、
xy=12y(2x)
つまり、LT(xy+2x+2y2)LT(2x+y2)で割り切れる。

慎一郎「あ!本当ですね!」
リサ「少し一般化してみましょう。多項式h1,h2を任意に取ってきますわ」
慎一郎「任意?とはなんですか?」
リサ「『任意』は数学用語で『どんなものでもいい』ということよ。別の言い方すると、h1h2は多項式であれば何でもいいってことね」
慎一郎「なるほど」
リサ「それで、x2+y212x+y2にそれぞれ掛けて、足してみますわ」

h1(x2+y21)+h2(2x+y2)

リサ「長いので、これをfとおきましょう」

f=h1(x2+y21)+h2(2x+y2)

慎一郎「それでこれがどうなるのですか?」
リサ「fx2+y212x+y2から作られる多項式を意味してますわ。数学的な言い方では、fx2+y212x+y2から生成されるといいますわ」
慎一郎「生成……!どこか化学っぽい響きがしますね」
リサ「そうね。そして、fの先頭項LT(f)を考えると、これは必ず、2xまたは5y2で割り切れるのですわ!」
慎一郎「え!?fが具体的によくわかってないのに、そんなことが分かるのですか!?」
リサ「それがグレブナー基底のすごいところなの。与えられた多項式から作られるどんな多項式の先頭項の情報も持ってるのがグレブナー基底ってわけね」
慎一郎「おおー!!」
リサ「数学的な定義を書いてみましょう」

グレブナー基底(多項式が2個の場合)

g1,g2を多項式とする。g1,g2から生成される任意の多項式f=h1g1+h2g2に対して(ただしf0とする)、LT(f)LT(g1)またはLT(g2)で割り切れるとき、{g1,g2}グレブナー基底と呼ばれる。

慎一郎「なんか難しい感じになりましたね……」
リサ「見た目が難しそうなだけで、内容はさっき話したことをまとめただけですわ」
慎一郎「そうなんですか?」
リサ「ええ。例えば、さっきの例においては、g1=2x+y2g2=5y24y{g1,g2}がグレブナー基底ってわけね」
慎一郎「ふむふむ……」
リサ「そして、g1,g2から生成される多項式f=h1g1+h2g2の先頭項LT(f)は必ずLT(g1)またはLT(g2)で割り切れるってわけ。ただし、f=0だと先頭項がないから、f0とするけどね」
慎一郎「へー、なるほどー!」
リサ「なんとなく感覚が掴めたかしら?」
慎一郎「はい。なんとなく先頭項っていうのが大事なんだなってのが分かりました。そして、グレブナー基底はその先頭項の情報を持っているんだなって」
リサ「その通りね。では多項式が2個より大きくした場合のグレブナー基底も考えてみましょう」

グレブナー基底

g1,g2,,gmを多項式とする。g1,g2,,gmから生成される任意の多項式f=h1g1+h2g2++hmgmに対して(ただしf0とする)、LT(f)LT(g1),LT(g2),,LT(gm)のいずれかで割り切れるとき、{g1,g2,,gm}グレブナー基底と呼ばれる。

慎一郎「より複雑になりましたね……」
リサ「書いてあることは多項式の数をたくさんにしただけなので、心配ありませんわ」
慎一郎「そうなんですね」
リサ「ここまでで何か質問はあるかしら?」

リサの問いかけに慎一郎は少し考える。

慎一郎「そうですね……グレブナー基底が先頭項の情報を網羅してることは、なんとなくですが分かりました。でも、それがどう連立方程式を解くことにつながるんですか?」
リサ「いい質問ね!ゾルディック!」
慎一郎「山田です」
リサ「さっき山田が連立方程式を手で解く時に、xを消してyだけの式を作りましたわね」
慎一郎「そうですね」
リサ「方程式に掛けたり足したりして新しい方程式を作ることが、さっきの『生成』が対応しているのですわ」
慎一郎「あ、そっか。確かにf=h1g1+h2g2も掛けたり足したりしてるから、同じことしてますね」
リサ「つまり、g1g2からyだけの多項式を作ることは、変数がyだけの方程式を作ることを意味しますわ」
慎一郎「そうか。変数が1個だけなら解きやすいですもんね」

慎一郎は手をポンと叩いて納得する。

リサ「そうね。必ず解けるというわけではないけど、少なくとも『解きやすい』『計算しやすい形』にはなりますわ」
慎一郎「なるほどー!」
リサ「さらにいうと、yだけの式というのは、その先頭項もyだけになりますわね」
慎一郎「あ、それはそうですね」
リサ「実は特定の条件下だと、その逆も言えるのですわ」
慎一郎「え?」
リサ「先頭項がyだけならば、その多項式の他の項もyだけになる」
慎一郎「ええー!」

fを多項式とする。ある条件下においては、
fの変数はyだけ LT(f)の変数はyだけ

慎一郎「右は先頭項のことしか言っていないのに、他の項まで分かるなんてすごいですね」
リサ「そうね」
慎一郎「それで、その条件とはなんなんですか?」
リサ「それはxyより最優先して考えるってことよ」
慎一郎「優先?」
リサ「例えば、2x+y2の先頭項は2xとしましたわね」
慎一郎「はい」
リサ「それは、xyより重要に考えてるってことですわ」
慎一郎「ああ、確かにxyより左にありますね」
リサ「それを基本に考えるの。つまり、単項式の間に順序を入れる時、xの次数が高い方を最優先する」
慎一郎「なるほど?」

リサは慎一郎が納得していない様子を見て、説明の仕方を変える。

リサ「具体例を見た方がよさそうね。例えば、x+y3という多項式があった時、y3の方がxより次数が高いわね」
慎一郎「そうですね」
リサ「でも、xの方が偉いから、x>y3として考えて、xを先頭項とするの」
慎一郎「へー、yはいくら次数があってもxに負けちゃうわけですね」
リサ「そう。これはもっと複雑な場合にも同様よ。例えば、x2y3+xy5という式があった時、xy5の方が合計の次数は高いけど、x2y3の方がxをたくさん持ってるから、x2y3>xy5となる」
慎一郎「なるほど。『xファースト』というわけですね」
リサ「その通り。このような単項式の順序のことを『辞書式順序x>yというのですわ」
慎一郎「へー、そういう言葉があるんですね」

彼はうんうんとうなづいた。

リサ「この順序を元に、さっきの話を振り返りましょう」

fを多項式とする。xを最優先する順序(辞書式順序x>y)においては、
fの変数はyだけ LT(f)の変数はyだけ

リサ「右向きのについてはさっき言ったから、問題はの方ね」
慎一郎「はい」
リサ「LT(f)の変数はyだけの時、fの他の項も変数がyしか登場しないことを示しますわ」
慎一郎「そうですね」
リサ「仮にfの中にxを含む項があったとしますわ。そうするとどうなるかしら?」
慎一郎「えーと……どうなるんでしょう?」
リサ「さっきの"xファースト"を思い出してご覧なさい」
慎一郎「xファースト……あ!そうか!もしfxの項があったら、その項が先頭項になってしまいますね!」
リサ「その通りですわ!!!」

リサは興奮して腕をブンブン振る。

リサ「そうすると、LT(f)には変数yしか出ないことと矛盾しますわね。つまり、xが最優先される順序において、fの先頭項にyしか出ないということは、fyだけの多項式であることを意味するのですわ!」
慎一郎「先頭項の情報だけでそこまで分かってしまうんですね」
リサ「そして、グレブナー基底は先頭項の情報を網羅していたものだから、グレブナー基底の中に『yだけの多項式』が登場するってわけ」
慎一郎「確かにさっき見たグレブナー基底{2x+y2,5y24y}には、yだけの式5y24yが登場してますね」
リサ「補足すると、連立方程式の解が(複素数の範囲で)有限個の時には、対応する辞書式順序x>yのグレブナー基底には必ずyだけの式が登場するってことですわ!」
慎一郎「???よく分からないですが、少し条件が必要ってことですね」
リサ「以上の議論を詳細にまとめてみますわ!今日初めてグレブナー基底を勉強したので、今すぐ分からなくても問題ありませんわ!」

グレブナー基底で連立方程式が解きやすくなるメカニズム
仮定:連立方程式の解は(複素数の範囲で)有限個とする

連立方程式の式を掛けたり足したりすると(つまり多項式を生成して)、yだけの式fが登場する。

fの変数はyだけなので、当然その先頭項LT(f)の変数もyだけ。

{g1,,gm}を連立方程式に対応するグレブナー基底とする(辞書式順序x>yを考える)

グレブナー基底の定義から、fの先頭項LT(f)を割り切るLT(gi)がある。

LT(gi)LT(f)を割り切るから、LT(f)の変数はyだけ

LT(gi)の変数はyだけから、命題1より、giの他の項もyだけ

つまり、グレブナー基底の中にはyだけの多項式giが存在する

gi=01変数だけの方程式なので計算がしやすい

リサ「今日のまとめも書いてみますわね!」

まとめ

  • グレブナー基底は「計算がしやすい形の多項式の組」
  • グレブナー基底を使うと連立方程式が解きやすくなる
  • その理由は、グレブナー基底は「先頭項」の情報を網羅しているものであるため

――数分後。
慎一郎は用意した紅茶をリサの前に置いた。

慎一郎「お嬢様、どうぞ」
リサ「ありがとう」

リサは慎一郎が淹れてくれた紅茶を飲んで一息つく。

リサ「それで、グレブナー基底の魅力は分かったかしら?」
慎一郎「はい。おかげさまで、お嬢様が夢中になる理由が分かった気がしました。もちろんまだ分からないことも多いですが……。それはこれから考えていきたいですね」
リサ「よかったわ。あなたもグレブナー基底大好きになったというわけね」
慎一郎「いや、今日知ったばかりですし、大好きなんて恐れ多いです。それに私はしがない執事ですし……数学なんて高尚なものは不相応かと」
リサ「あら?どうして?」
慎一郎「はい?」

リサはカップをテーブルに置いて、慎一郎の目をじっと見た。

リサ「数学に身分なんて関係ないわ。身分も性別も、年齢も国籍も、人種も学力も関係なく誰もが自由に楽しめるのが数学ですわ。自分が好きだと思ったら、周りの視線なんて関係ありませんわ。大事なのは『自分が何をすべきか』ではなく『自分が何をしたいか』ですもの」
慎一郎「――そうですね」

慎一郎はリサの言葉に、彼女に仕えて本当によかったと思った。
彼はお嬢様のことを心の底から敬愛していた。

リサ「あら!もうこんな時間!グレ妹のアニメが始まってしまいますわ!今日は導来圏が登場する回ですから見逃せませんわ!」
慎一郎「急いでテレビの方を準備いたします」
リサ「ありがとう、慎一郎」

慎一郎はリサお嬢様の笑顔を見て、胸の奥が熱くなる。

慎一郎(あれ……?僕も熱があるのかな……?)

リサ「セバスチャン!急いでくださいまし!始まってしまいますわ!」
慎一郎「はい!今、テレビを持っていきます!」

彼がその『大好き』の気持ちに気づくには、まだ長い時間がかかるようだった。

〜終わり〜

あとがき

「お嬢様はグレブナー基底がお好き」をお読みいただきありがとうございましたぶな!グレブナー基底大好きbotですぶな!今回は漫画家の「ことり野デス子」さんにご協力いただき、グレブナー基底紹介漫画を作っていただきましたぶな!漫画では書ききれなかった部分を、数学小説として補足したのがこの記事になりますぶな!

グレブナー基底の定義をもう少し厳密にするには、単項式順序とイデアルの説明が必要になりますぶな。詳しくは専門書「グレブナ基底と代数多様体入門」を読むといいですぶな。

もし面白かったという方はぜひ記事にいいねを押していただけると嬉しいですぶな!また、もし続きが読みたいという人が多かったら、続編も書きたいと思いますぶな!

ちなみに漫画にも登場するブッフベルガー先生に漫画をお見せしたところ「グレブナー先生の若いころがすごい似てる」とおっしゃっていましたぶな。

投稿日:20211224
OptHub AI Competition

この記事を高評価した人

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

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

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

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

投稿者

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. 漫画版「お嬢様はグレブナー基底がお好き!」
  2. 小説版(漫画の続き)
  3. あとがき