Tuesday 10 March 2020

小説/漫画/ドラマ 黒猫の三角

 
2002年 講談社文庫 森博嗣
2012年 幻冬舎コミックス漫画文庫 皇名月
2015年 フジテレビ系列 『瀬在丸紅子の事件簿〜黒猫の三角〜』

線形代数 マトリクス クロネッカーのデルタ (Kronecker Delta)

ぞろ目の年月や年齢にこだわった連続殺人事件の話です.タイトルの黒猫の三角は,クロネッカーのデルタ(ギリシャ文字で大文字が$\varDelta$)をかけています.
「香具山さんは文系だから、知らないわよね。小島遊君、君は線形代数は単位ちゃんと取った?」
「どうして?」
「マトリクス、教わったでしょう?」
「行列ですね?」
「そう」紅子が頷く。「マトリクスの対角項だけを1にする。それ以外はすべて0にしたい。どうやってそれを書き表したら良いかしら?」
「えっと……、単位マトリクスのことですか? 斜めに1を並べて書いて、あとは0をひたすら入れるんじゃあ…… 」
「ニ次元で、しかも小さなマトリックスなら、それで書ける」紅子が頷いた。 「でも、一般式で表記したいときがあるでしょう? ほらほら,とっても有名な……」
「ああ、クロネッカのデルタ!」練無が叫んだ。
「何それ?」紫子がメガネを持ち上げてきいた。いつもより、ずっとインテリに見える。「クロネコのデルタ?」
「ね……」紅子がにっこりと微笑む。「三角じゃないけど、小文字のデルタを書いて、そのあとにi、jとか、さらにkとか、添え字を書く。それで、たとえば、デルタijと書かれていれば、それは、もしiとjが同じ整数なら、全体が1になる、もし違う整数なら全体が0になる、という関数なの。ようするに、数が同じならON、違えばOFF。その関数の名前が、クロネッカ・デルタっていう。これ、もの凄く有名だから,理系の大学生なら,まず知らない人はいないでしょう?」
クロネッカーのデルタは,2つの数$i$, $j$に対して0または1の値をとる次のような関数です.($\delta$は小文字のデルタ)
\begin{eqnarray}
\delta_{ij}=
  \begin{cases}
    1 & ( i = j ) \\
    0 & ( i \neq j )
  \end{cases}
\end{eqnarray}
すなわち,2数がぞろ目のときは1になり,そうでないときは0になるという関数です.いくつかの式や値をまとめてひとつに表す方法として使われます.

いくつか例を見てみましょう.

①例えば高校で習う平面上の座標軸に関する基本ベクトル $\vec{ e_1 }=(1,0)$,$\vec{ e_2 }=(0,1)$の内積は,$$\vec{ e_1 }\cdot\vec{ e_1 }=1, \quad \vec{ e_1 }\cdot\vec{ e_2 }=0,\quad \vec{ e_2 }\cdot\vec{ e_1 }=0,\quad \vec{ e_2 }\cdot\vec{ e_2 }=1$$となるので,これらをひとつにまとめて,$$\vec{ e_i }\cdot\vec{ e_j }=\delta_{ij}$$と表すことができます.

②この小説に出てきたのは行列(matrix)の話です.2行2列だと一般に次のような形をしています.\begin{eqnarray}
\left(
  \begin{array}{cc}
    a & b \\
    c & d \\
  \end{array}
\right)
\quad \quad \quad
\left(
  \begin{array}{cc}
    a_{ 11 } & a_{ 12 } \\
    a_{ 21 } & a_{ 22 } \\
  \end{array}
\right)
\end{eqnarray}行列も数字と同じようにかけ算ができます.数字の1にあたる働きをするものを単位行列(identity matrix)といい,右下がりの対角線上がすべて1,他は0になります.\begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix}3行3列ならこんな形です.\begin{eqnarray}
\left(
  \begin{array}{ccc}
    1 & 0 & 0 \\
    0 & 1 & 0 \\
    0 & 0 & 1  \end{array}
\right)
\end{eqnarray}これがn行n列になると,書くのは大変なうえ,スペースもとりますが,クロネッカーのデルタを使えば次のように簡潔に書くことができます.\begin{eqnarray}
 \left(
  \begin{array}{cccc}
    1 & 0 & \ldots & 0 \\
    0 & 1 & \ldots & 0 \\
    \vdots & \vdots & \ddots & \vdots \\
    0 & 0 & \ldots & 1
  \end{array}
\right)
= (\delta_{ij})
\end{eqnarray}
WolframMathWorldには複素関数の積分の例もありました.$$\delta_{mn}=\frac{1}{2\pi i}\oint_{\gamma} z^{m-n-1}dz$$右辺の$\oint$は周回積分,$\gamma$は単位円のような閉曲線で,m=nのとき1になり,m≠nのとき0になります.コーシーの積分定理・公式からすぐいえるのですが,少し計算して確かめてみましょう.$z=e^{it}$とおきます.\begin{eqnarray}
\oint_{\gamma} z^{m-n-1} dz&=& \int_0^{2\pi} e^{(m-n-1)it} ie^{it} dt \\
&=& i\int_0^{2\pi} e^{(m-n)it}dt \\
\end{eqnarray}m=nのとき\begin{eqnarray}
&=& i\int_0^{2\pi} dt \\
&=& i\left[ \ t \ \right]_0^{2\pi} \\
&=& 2\pi i \\
\end{eqnarray}m≠nのとき\begin{eqnarray}
&=& i\int_0^{2\pi} \{ \cos{(m-n)t}+i\sin{(m-n)t} \}dt \\
&=& i \left[\frac {\sin{(m-n)t}}{m-n}-i\frac {\cos{(m-n)t}}{m-n}\right]_0^{2\pi} \\
&=& 0 \\
\end{eqnarray}クロネッカーのデルタを考案したドイツの数学者クロネッカー(Leopold Kronecker)は,無限集合論を確立した数学者カントールを,その業績だけでなく人間性をも厳しく批判し,精神的に追い込んだことが有名で,数学史上の悪役みたいなイメージがあります.一方,このドラマに登場したのはとても可愛いクロネッコー,いえクロネコでした.

[参考]
Kronecker Delta
https://mathworld.wolfram.com/KroneckerDelta.html