本記事の内容
本記事は、行列式とその性質のうちの1つを解説する記事です。
本記事を読むにあたり、置換、巡回置換、互換、置換の符号について知っている必要があるため、以下の記事も合わせてご覧ください。
行列式
線型代数を学ぶとき、絶対に避けては通れないのが行列式です。
もはや線型代数を学ぶ意味の1つに「行列式を理解する」ということが含まれていると思います。
それくらい重要です。
行列式って何スか?
行列式を一言で表すのは誠に難しいのですが、強いて言えば、
です。
個人的には「行列式とは何か?」ということを一言で表すよりも、むしろ行列式があることで受ける恩恵の方にこそ意味があると思います。
その恩恵については徐々に解説していきますが、1つは逆行列の導出に必要です。
また、逆行列の存在の必要十分条件に行列式の値が関係してきます。
「なんで逆行列を求めることが重要なの?」という話ですが、それは以前の記事でサラッと述べた、連立一次方程式の解を導く際に使うからです。
「連立一次方程式ってそんなに重要かネ?」と思うかもしれませんが、実は機械学習は行列演算をしていて、簡単に(誠に平たく言うと)連立方程式を解いているので、重要でありかつ我々は知らぬ間に恩恵を受けています。
高校数学の復習((2,2)型の行列の行列式)※高校数学で行列を学んでない方でも大丈夫です。
高校数学で行列を学んでいる方は復習として、学んでいない方は「2次元の場合の行列式はこれなんだ〜」というイメージを掴むために読んでいただけると嬉しいです。
さて、ここはサラッと行きます。
(2,2)型の行列の行列式
Aを(2,2)型の行列とし、 A=(abcd) と書いたとする。このとき、 detA=det(A)=|A|=|(abcd)|=ad−bc を行列Aの行列式(determinant of A)といい、detA、det(A)、|A|で表す。また、成分を表示して |(abcd)| とも書く。※高校数学ではもっとやんわり学んだと思いますが(笑)
このように、正方行列の成分を四則演算して得られる数のことを行列式と呼びます。
ちなみに、実行列の場合は行列式は実数ですが、複素行列の場合の行列式は複素数になる場合もありますので、「数」という少々抽象的な表現を用いています。
このブログを通して読んでいただいている方(本当に嬉しい)であれば、「じゃあ、detってのは正方行列に対して値(実行列の場合は実数)を対応させる写像なのね。実行列の場合は実数値関数か。」と思っていただけると鋭いです。
(n,n)型の行列の行列式は何スか?
では、このn次正方行列の行列式とは何か、ということを説明します。
行列式
n∈N、Aをn次正方行列とし、 (a11a12⋯a1na21a22⋯a2n⋮⋮⋱⋮am1am2⋯amn)=(aij) に対して、Aの成分により定まる次の式をAの行列式(determinant of A)という。 det(A)=∑σ∈Snsgn(σ)a1σ(1)a2σ(2)…anσ(n) このとき、Aの行列式をdetA、det(A)、|A|、 |(a11a12⋯a1na21a22⋯a2n⋮⋮⋱⋮an1an2⋯ann)|=|a11a12⋯a1na21a22⋯a2n⋮⋮⋱⋮an1an2⋯ann| と書く。「ナンジャコレ(° ∀。)?」となると思います。
かくいう筆者も初めてこれをみたときに「なーにを言っとるだ貴様?」と思いました。
n次正方行列Aの行列式
det(A)=∑σ∈Snsgn(σ)a1σ(1)a2σ(2)…anσ(n)
を観察してみましょう。
まず、σとSnですが、
置換
n∈Nとする。n個の文字1,2,…,nからなる集合を Mn={1,2,…,n} とする。写像σ:Mn→Mnが全単射であるとき、σをMnの置換という。置換σによる対応が 1↦i1, 2↦i2,…,n↦in であるとする、すなわち、 σ(1)=i1, σ(2)=i2,…, σ(n)=in とする。このときσを σ=(12⋯ni1i2⋯in) と書く。
であり、SnはMn={1,2,…,n}の置換全体からなる集合でした。
詳しくは、【線型代数学の基礎シリーズ】行列式編 その1を御覧ください。
次に、∑σ∈Snですが、これは任意のσ∈Snに対しての和ですので、n!個の置換σ∈Snすべてでの和ということです。
第3に、sgn(σ)ですが、これは単に置換σが何個の互換の積でかけるかで1か−1です。
ちなみに
置換の符号
置換σがm個の互換の積で表されるとき、 sgn(σ)=(−1)m とおき、sgn(σ)を置換σの符号という。特に、sgn(σ)=1のときにσは偶置換、sgn(σ)=−1のときにσは奇置換と呼び、恒等置換ϵはsgn(ϵ)=1と捉える。
でした。
詳しくは、【線型代数学の基礎シリーズ】行列式編 その1を御覧ください。
最後に、a1σ(1)a2σ(2)…anσ(n)です。
「ナンジャコレ」の種はこれだと思います。
しかし、ちゃんと見るとなんてことないんですね、実は。
見た目がイカツイだけで、割と優しいです。
強面のお兄さんが実は優しい、みたいな話です。
そんなことは置いておいて、観察しましょう。
文章で述べても分かりにくいかもしれませんので、下記の図と共に読んでいただけると理解しやすいと思います。
結論から言ってしまうと、
です。
σはMn{1,2,…,n}の置換ですので、各列からも、列の中でダブることなくちょうど1つずつ取ってきている、ということが分かります。

以上のことをまとめると、
さらに、列についてもどの列を見てもちょうど1個ずつダブりもないし使わない列もない。
ということです。
先程描いた図の場合のsgn(σ)a1σ(1)a2σ(2)…anσ(n)を計算してみましょう。
例1.
A=(a11a12a13a14a15a21a22a23a24a25a31a32a33a34a35a41a42a43a44a45a51a52a53a54a55)
において、a12a21a34a45a53の項を見ると、確かに各行、列からダブらず1つずつ成分を使っていて、
(1,2), (2,1), (3,4), (4,5), (5,3)
の組ですので、対応する置換σは
σ=(1234521453)
です。
従って、この項は
sgn(σ)a1σ(1)a2σ(2)a3σ(3)a4σ(4)a5σ(5)
です。
ここで、
σ=(1 2)(3 4 5)=(1 2)(3 5)(3 4)
となるので、σは3つの互換の積で書けるから
sgn(σ)=−1
となります。
故に、
−a12a21a34a45a53
が導けます。
このようなσは5!=120個ある全ての置換で和を取るわけですので、大変です。
「こんなん人間がやることじゃねえだろ」と思っています。
2次と3次の正方行列の行列式を計算してみる
「2次と3次なら…」と思うかもしれませんが、面倒です。
「まあ、2次なら…」という感じですが「そもそも2次の場合は知ってるし…」と思うかもしれません。
確かに暗記してしまえば終いです。
しかし、一度「行列式とは何か」ということからしっかり計算してみることが重要だと思います。
余談(数学と暗記)※読まなくてOK
高校のとき、筆者は「数学は暗記科目ではない」と思っていました。それは今もほとんど変わりませんが、多少は暗記する必要があると思っています。
例えば、「数列の収束って何?」ということは各所で出現します。
言ってしまえば、数列の収束について暗記していなくても「収束するとは何か?」ということを本当に深いところまで徹底的に考えることでϵ−n論法が導けるかもしれません。
しかし、それは現実的でないと思います。
いまでこそϵ−n論法によって数列の収束が定まっていますが、ϵ−n論法が出現するまでには長い歴史があります。
しかも、学術的に名を残すような大数学者が苦労してようやっと提唱に至り、さらに数々の大数学者がそれを吟味して「正しいね」となっているわけですので、そう簡単に導ける代物ではありません。
もしそれを自力でできるのであればぜひ数学者、ないしはもっと一般に科学者になってほしいと思います。
世の中の大多数は凡人だと思っています。勿論筆者も凡人です。
自力でϵ−n論法など導けません。
従ってこれは暗記するのが現実的だと思っています。
ただ、単に暗記するだけでは、あくまで知識に過ぎず、使うことができません。
そこで、知識の使い方を意識することで、知識が理解に変わると思っています。
そのために少なくとも一度は暗記した知識を手を動かしてみることが重要なのだな、と思います。
色々言ってきましたが、何を言いたいかというと、「単に暗記するのではあくまで知識の域を出ないため、手を動かすことで知識が理解に変わると思う」という話でした。
自分で書いてて恥ずかしいですし「なげえなあ」と思いますが、後一個だけ。
「知識と理解の違いは何か」ということについて、筆者の意見を書きます。
知識は「”AはBである”ということ」、理解は「”AはBである。”ということを知っていて、”であれば、BはCなのではないか”という発想に至ること」だと思っています。
みなさんはいかがでしょうか。コメントで教えてくれると嬉しいです。(読んでくれてる人いるのかな、これ…) おしまい
2次正方行列の行列式
例2.A=(a11a12a21a22)
の行列式を計算してみます。
Mn={1,2}ですので、置換は2!=2個あり、
ですので、
sgn(1212)=1,sgn(1221)=−1
となります。
従って、
det(A)=sgn(1212)a11a22+(1221)a12a21=a11a22−a12a21
となります。
3次正方行列の行列式
例3.A=(a11a12a13a21a22a23a31a32a33)
の行列式を計算してみます。
Mn={1,2,3}ですので、置換は3!=6個あり、その中で偶置換が
(123123)=ϵ,(123231)=(1 2 3)=(1 3)(1 2)(123312)==(1 3 2)=(1 2)(1 3)
であり、奇置換は
(123213)=(1 2),(123321)=(1 3),(123132)=(2 3)
です。
従って、
det(A)=a11a22a33+a12a23a31+a13a21a32−a12a21a33−a13a22a31−a11a23a32
このように2次と3次の行列式は割とサクッと求まるのですが、覚えていたほうが便利です。
特に、3次の行列式については図式を使うことで記憶しやすいと思います。


これをサラスの方法といいます。
4次以降の正方行列の行列式はどうすんのよ
4次の場合の行列式は4!=24個の項が出現するので、もう面倒くさくてかないません。
さらに4次以降の場合はサラスの方法のように簡単には行かないことに注意してください。
「じゃあどうすんの」という話ですが、それは今回と次回と次次回で解説する「行列式の性質」を使って計算します。
行列式の基本性質①
まず、「次数が大きくなれば計算は面倒だけど、どうすんの」ということについてどういう方針で計算するか、ということを先に述べます。
それは
です。
「え?行列そのものが変わっちゃうんじゃない?」と思うかもしれませんが、それを可能にするのか行列式の性質なのです。
(1,1)成分以外の第1列の成分がすべて0な正方行列の行列式
まずは、性質①として、特別な場合の行列の行列式が、次数が少ない行列の行列式に帰着できる、という定理を紹介、証明します。
定理4.
|a11a12⋯a1n0a22⋯a2n⋮⋮⋱⋮0an2⋯ann|=a11|a22⋯a2n⋮⋱⋮an2⋯ann|これは確かに、次数が下がっています。

この定理4.の主張するところは、第1列ベクトルの第1成分以外が0であるような行列は、その(1,1)成分と、第1列ベクトルと第1行ベクトルを除いたn−1次正方行列の行列式と一致する、ということです。
では、証明します。
定理4.の証明
n∈N、Aをn次正方行列とし、
A=(a11a12⋯a1na21a22⋯a2n⋮⋮⋱⋮an1an2⋯ann)
と書いたとします。
またこのとき、
a21=a31=⋯=an1=0
とします。
このAの行列式は
∑σ∈Snsgn(σ)a1σ(1)a2σ(2)…anσ(n)
です。
σ(1)≠1であるようなσは、置換であるので、σ(k)=1となるk>1が存在します。
すなわち、σ(1)≠1ですので、1は1と対応しないので、1とは別のk>1があって、kと1が対応している、ということです。
今、σ(k)=1となるk>1が存在するわけですので、このkに対しては、仮定から
akσ(k)=ak1=0
です。
従って、
a1σ(1)a2σ(2)⋯akσ(k)⋯anσ(n)=0
すなわち、σ(1)≠1というような行列式の項はすべて0です。
故に、σ(1)=1というような置換σ∈Snについてのみ考えればOKです。
具体的には、
σ=(12⋯n1i2⋯in)
という場合の置換に関する和にのみ焦点を当てれば良いわけです。
上記のσはn−1個の文字の集合Mn−1={1,2,⋯,n−1}における置換と考えることができます。
つまり、σ∈Sn−1と考えることができます。
実際、f:M′n={2,3,…,n}→Mn−1を
- 2∈M′nに対して、f(2)=1∈Mn−1
- 3∈M′nに対して、f(3)=2∈Mn−1
⋮ - n∈M′nに対して、f(n)=n−1∈Mn−1
と定めることでfは全単射ですので、同一視できます。
従って、
det(A)=∑σ∈Snsgn(σ)a1σ(1)a2σ(2)…anσ(n)=∑σ∈Snσ(1)=1sgn(σ)a1σ(1)a2σ(2)…anσ(n)=∑σ∈Snsgn(σ)a11a2σ(2)…anσ(n)=a11∑σ∈Snsgn(σ)a2σ(2)…anσ(n)=a11∑τ∈Sn−1sgn(τ)a2τ(1)…anτ(n)
ただし、τはn−1文字{2,3,…,n}の置換です。
ここで、∑τ∈Sn−1sgn(τ)a1τ(1)a2τ(2)…anτ(n)を見ると、これはまさに
(a22⋯a2n⋮⋱⋮an2⋯ann)
の行列式です。
従って、
det(A)=|a11a12⋯a1n0a22⋯a2n⋮⋮⋱⋮0an2⋯ann|=a11|a22⋯a2n⋮⋱⋮an2⋯ann|
です。
定理4.の証明終わり
三角行列の行列式
まずは三角行列とは何か、ということを説明します。
三角行列
- 上三角行列 対角線より左下の成分がすべて0であるような行列 (a11a12⋯a1n0a22⋯a2n⋮⋱⋱⋮0⋯0ann) を上三角行列という。
- 下三角行列 対角線より右上の成分がすべて0であるような行列 (a110⋯0a21a22⋱⋮⋮⋮⋱0an1an2⋯ann) を下三角行列という。
この三角行列について次のことが成り立ちます。
系5.
n次上三角行列Aの行列式det(A)はAの対角成分の積に等しい。すなわち、次が成り立つ。 det(A)=a11a22…ann系5.の証明
定理4.を繰り返し使えば証明可能です。
定理4.から
det(A)=|a11a12⋯a1n0a22⋯a2n⋮⋱⋱⋮0⋯0ann|=a11|a22⋯⋯a2n0⋱⋮⋮⋱⋱⋮0⋯0ann|
です。
再度定理4.から
a11|a22⋯⋯a2n0⋱⋮⋮⋱⋱⋮0⋯0ann|=a11a22|a33⋯⋯a3n0⋱⋮⋮⋱⋱⋮0⋯0ann|
これを続ければ、
det(A)=a11a22…ann
です。
系5.の証明終わり
実は、下三角行列の行列式も対角成分の積と等しいですが、それは転置と行列式の関係を述べてから似します。
行列をの分割と行列式
Xをn次正方行列とします。
このとき、n=r+sを満たすような自然数r,sに対して、Aをr次正方行列、Bを(r,s)型の行列、Cを(s,r)型の行列、Dをs次正方行列とします。
このとき、Xを簡略化して、
X=(ABCD)
と書きます

このように行列を分割して書いたとき、次が成り立ちます。
定理6.
Xをn次正方行列とし、n=r+sを満たすような自然数r,sに対して、Aをr次正方行列、Bを(r,s)型の行列、Oを(s,r)型の零行列、Dをs次正方行列とする。このとき、 |X|=|ABOD|=|A|⋅|D| である。この定理の証明はちょっと面倒ですが、がんばります。
定理6.の証明
X=(ABCD)=(aij)(n=r+s)とします。
Xの行列式は
∑σ∈Snsgn(σ)a1σ(1)a2σ(2)…anσ(n)
です。
仮定から、Oは(s,r)型の零行列ですので、
(∀i,j∈N;r+1≤i≤n, 1≤j≤r)aij=0
です。
すなわち、k≥r+1、σ(k)≤rというようなkが存在して(言い換えると、{σ(r+1),…,σ(n)}の中にr以下の数があるということ)、そのkについては
akσ(k)=0
ということです。
これを因子に持つ行列式の項は
sgn(σ)a1σ(1)⋯anσ(n)=0
となります。
つまり、|X|を考える際に、上記の項を持つσについては除いてOKということです。
従って、集合として、
{σ(r+1),…,σ(n)}={r+1,…,n}
と満たす置換σだけを考えればOKです。
ここで、そもそも置換は全単射ですので、
{σ(1),…,σ(r)}={1,…,r}
も満たしています。
従って、σは上記の2パターンに分かれるということになります。
つまり、σは{1,2,…,r}の置換τと、{r+1,r+2,…,n}の置換ρが存在して、σ=ρτと書くことができます。
さて、上記を満たすσをすべて動かす、ということは、まさにτとρをそれぞれSrとS′sの要素すべてを動かす、ということです。
ただし、S′sはs個の文字{r+1,…,n}の置換全体です。
そして、sgnの以下の性質を使います。
定理7.
任意の置換σ,τに対して- sgn(τσ)=sgn(τ)sgn(σ)
- sgn(σ−1)=sgn(σ)
この定理7.の証明は【線型代数学の基礎シリーズ】行列式編 その1を御覧ください。
定理7.の1.を使うことによって、
sgn(σ)=sgn(ρτ)=sgn(ρ)sgn(τ)
ですので、
|X|=∑τ∈Srρ∈S′ssgn(ρτ)a1τ(1)…arτ(r)ar+1ρ(r+1)…anρ(n)=(∑τ∈Srsgn(τ)a1τ(1)…arτ(r))(∑ρ∈S′ssgn(ρ)ar+1ρ(r+1)…anρ(n))=|A|⋅|D|
となって、成り立ちます。
定理6.の証明終わり
結
今回は、「行列式とは何か」、「行列式を計算するにあたって使う性質の一部」を解説しました。
「行列式とは?」という問に対しては、抽象的ですが、正方行列に対してただ1つ定まる数のことで、これは逆行列の存在条件、逆行列の計算に必要です。
しかし、行列式は定められ方が複雑ですので、いざ行列式が分かっても計算は困難です。
そこで、実際は行列式の性質を使って計算するのですが、その性質の一部を解説しました。
特に、性質として、上三角行列の行列式と行列を部分部分に分割したときの計算方法を解説しました。
後者は特に有用な気もしますが、そもそも高次元の行列を考えると分割したとて高次元なので結局計算は面倒です。
次回はそれを少し緩和する行列式の性質を解説します。
乞うご期待!質問、コメントなどお待ちしております!
コメントをする