グレブナー基底にはポン酢が合う。

グレブナー基底大好きbotの公式ブログ!

数学がよく分からない人のためのグレブナー基底

最近、ツイッターで話題の「グレブナー基底

あなたも一度は目にしたことがあるのではありませんか?

そして、あなたは次のような感情を持ったかもしれません。

  • ググってみたけどよく分からなかった……
  • Wikipedia 見たけど難しくて読めなかった……
  • グレブナー基底って一体なんなの……
  • もうメロンパン食べたい……

そんなあなたの要望に応えて、今回は難しい言葉を使わずに、「グレブナー基底」について説明するぶなよっ!!

普段数学に親しんでいない人にも、中学高校くらいの数学の知識で読めるように解説するぶなっ!!

ぶな汁ぶしゃああああああああああああああ!!!!!!!!!!

(注:このブログの執筆者は、語尾に「ぶな」をつけないと文章が書けない症状にかかっています。後、メロンパンは各個人で買ってください。)



さて、突然ぶなが、次のような連立方程式を考えるぶな。

{
\begin{eqnarray}
  \begin{cases}
    2x + 4y = 10  \\\
    x + 3y = 6 
  \end{cases}
\end{eqnarray}
}


とても美味しそうな連立方程式ぶなね。火で炙って醤油で食べてもイケると思いますぶな。

でも読者の中には連立方程式を食べない方もいらっしゃると思うので、まずは普通に解いてみたいと思いますぶな。

連立方程式を解く」とは、上の2つの方程式を満たす、x,yの値を見つけることぶな。

例えば、最初の式  2x + 4y = 10 から、2つ目の式 x + 3y = 6 の2倍を引くと、

{
\begin{eqnarray}
    2x + 4y &= 10  \\\
    ) \underline{2x + 6y = 12}\hspace{-22pt} &\\\
    \hspace{1pt} -2y&=-2
\end{eqnarray}
}

という感じに、 -2y = -2 という式が出てきたぶなね。よって、この両辺を -2 で割れば、

{
y=1
}

という y の値が得られたぶな。これを元の式の 2x + 4y = 10に代入すれば、

{
2x+4=10
}

で、両辺から4を引けば、2x=6 。つまり、両辺を 2 で割れば、

{
x=3
}

というx の値が得られたぶな!!!まとめると、元の連立方程式

{
\begin{eqnarray}
  \begin{cases}
    2x + 4y = 10  \\\
    x + 3y = 6 
  \end{cases}
\end{eqnarray}
}

の解は、

{
x=3,y=1
}

であることがわかったぶな!!

やったぶなあああああああああああああ!!!!!!!!!!!!


おそらく、読者の皆さんは、このような感じで、中学校や高校などで連立方程式を解いたことがあるのではないぶなでしょうか?

しかし、人によっては「連立方程式を解くのが面倒くさい」という人もいるのではないぶなでしょうか?

そこで、活躍するのが、「グレブナー基底」ですぶなっ!

グレブナー基底を使うと、連立方程式を「自動的」に解くことができますぶなっ!!

その方法としては、まず、連立方程式

{
\begin{eqnarray}
  \begin{cases}
    2x + 4y = 10  \\\
    x + 3y = 6 
  \end{cases}
\end{eqnarray}
}

から、多項式

{
\begin{eqnarray}
  \begin{cases}
    2x + 4y - 10  \\\
    x + 3y - 6 
  \end{cases}
\end{eqnarray}
}

を取り出しますぶな。これは、右辺の数字を左側に移行して、=0 の形にしたものぶな。

そして、次にこの2つの多項式に対応するグレブナー基底を計算しますぶな。

グレブナー基底は、WolframAlpha などで、GroebnerBasis コマンドを使えば、無料で計算できますぶな。例えば、

GroebnerBasis[{2x + 4y - 10, x + 3y - 6},{x,y}]

と入力して実行すると、

{
\{y-1,x-3\}
}

が表示されますぶな。コレ

この2つの多項式 y-1,x-3 にそれぞれ=0をつけてみると、y-1=0,x-3=0 になりますぶな。

そして、数字を右辺に移行してみれば、なんていうことでしょう!!!

{
x=3,y=1
}

確かに、さっき求めた連立方程式の解になってるではありませんか!!!


ということで、グレブナー基底を使うと、このように連立方程式を解くことができるぶな。

え?本当に?たまたまじゃないの?という人は、さっきの多項式の数字を変えて、色々試してみると、確かにそうだと実感できると思いますぶな。

つまりは、グレブナー基底は、あなたの生活に、次のように役に立ちますぶな。

  • スーパーで、無性に連立方程式が計算したくなった時
  • 八百屋で、2個と4個で1000円、1個と3個で600円の、りんごとみかんが売られてた時
  • 大事なデートの前に連立方程式が計算したくなった時
  • 八百屋で立ち往生しているたかしくんを助けたい時


最後に、なぜグレブナー基底連立方程式が解けるのか、簡単に説明したいと思いますぶな。

グレブナー基底とは、簡単に言えば、「多項式の集まりを、よりシンプルなものに変換したもの」ですぶな。

今回のケースで言えば、元の連立方程式

{
\begin{eqnarray}
  \begin{cases}
    2x + 4y = 10  \\\
    x + 3y = 6 
  \end{cases}
\end{eqnarray}
}

を、シンプルなものに変換すると、

{
\begin{eqnarray}
  \begin{cases}
    x=3 \\\
    y=1 
  \end{cases}
\end{eqnarray}
}

というよりダイレクトなものが出てきたという感じですぶな。そして、実は、もっと変数が多い場合、x,yの肩に指数がついたものでも、グレブナー基底で解くことができますぶな。

例えば、


{
\begin{eqnarray}
  \begin{cases}
   x+y+z &= 6  \\\
    x^2+y^2+z^2 &= 38\\\
    x^3+y^3+z^3&=144 
  \end{cases}
\end{eqnarray}
}

という3変数3次の連立方程式も一瞬で解くことができますぶな。
Wolfram|Alpha: Computational Knowledge Engine

グレブナー基底、すごいぶなねっ!!!!!!


というわけで、今回は、この辺で終わりにしたいと思いますぶな。

いかがでしたでしょうか?

グレブナー基底は、厳密な話をすると、もう少し難しいぶな。

でも、今回の説明で、ちょっとでも雰囲気がつかめたら、幸いですぶな。

ここまで読んでいただきありがとうございましたぶな。

また、この辺の説明は、カクヨムで連載中の小説、「最近、妹がグレブナー基底に興味を持ち始めたのだが。」の第1章にも載っていますぶな。

こちらももしよろしければ、お読みくださいぶな。

グレブナー基底大好きbot