どうも、木村(@kimu3_slime)です。
行列式を学ぶ理由として、体積拡大率であり、固有値を求めるために使われるという話をしました。
今回は、行列式の導出と定義、性質、計算方法(余因子展開)を紹介します。
行列式の導出
簡単のため、\(2\times 2\)行列について考えます。\( A=\begin{pmatrix} a& b\\c & d \end{pmatrix} \)という一般的な行列を考えましょう。
この行列の可逆かどうかを判定するための量が、行列式です。可逆性はランクが最大となるかどうかによって、判定できます。
そこで\(A\)を基本変形しましょう。\(a\neq 0\)のとき、
\( \begin{pmatrix} a& b\\c & d \end{pmatrix} \sim \begin{pmatrix} a& b\\ac & ad \end{pmatrix}\sim \begin{pmatrix} a& b\\0& ad-bc \end{pmatrix}\)
なので、\(ad-bc\)が0かどうかによって、可逆かどうかが決まります。
\(a= 0\)のとき、\( \begin{pmatrix} 0& b\\c & d \end{pmatrix}\)は\(b\)または\(c\)が\(0\)のとき可逆ではありません。これは\(bc=0\)かどうかですが、\(ad-bc=0\)かどうか、とまとめられます。
よって、\(\det A := ad-bc\)と置くことで、\(\det A \neq 0\)なら可逆、\(\det A =0\)なら可逆ではないと判定できます。
ガウスの消去法により逆行列を求める時は、\( \begin{pmatrix} A& I \end{pmatrix}\)を\( \begin{pmatrix} I& A^{-1} \end{pmatrix}\)と単位行列に基本変形する必要がありました。その手順において、対角成分を1にするためには、\(\det A := ad-bc\)で割らなければなりません。つまり、\(\det A \neq 0\)でなければ逆行列は求められない(存在しない)わけです。
行列式の定義と性質
行列式には、符号による定義と、性質による定義があります。前者は構成的ですが、\(N!\)個の項を計算することになり、実際に計算するのは困難です。
\(A\)を\(N\)次正方行列とします。置換を用いた行列式の定義は、
\[ \begin{aligned}\det A =\sum _{\sigma \in S_N} \prod _{1\leq i \leq N} \text{sgn}(\sigma) a_{i \sigma(i)}\end{aligned} \]
です。\(\sigma\)は置換、sgnはその符号を意味しています。
\(N=3\)のときの行列式の定義は、サラスの公式として知られています。\(A=(a_{ij})\)とするとき、
\[\det A =a_{11}a_{22}a_{33}+ a_{12}a_{23}a_{31}+a_{13}a_{21}a_{32}\\-a_{11}a_{23}a_{32}- a_{13}a_{22}a_{31}- a_{12}a_{21}a_{33}\]
ただし、これによって行列式を計算するのは面倒です。また4次以上の行列の計算方法を与えてくれません。
そこで、行列式の性質による定義を見てみましょう。実際に行列式を計算する上では、こちらの方が便利だと思います。
\(A=(a_1,\dots,a_N)\)と列ベクトルで表し、\(\det A\)を列ベクトル\((a_1,\dots,a_N)\)を変数とする関数として見ます。
関数\(f:\mathbb{R}^N \times \cdots \times \mathbb{R}^N \to \mathbb{R}\)が、
- \(f(e_1,\dots, e_N)=1\) (単位行列に対して1を返す)
- 多重線形性 \(f(a_1,\dots, ca_k+b_k,\dots,a_N)\\=cf(a_1,\dots,a_k,\dots,a_N)+f(a_1,\dots,b_k,\dots,a_N)\)(各変数について、関数が線形)
- 交代性\(f(a_{\sigma(1)},\dots,a_{\sigma(N)})=\mathrm{sgn}(\sigma) f(a_1,\dots,a_N)\)(変数の順序を入れ替えると、値は同じままその入れ替えに応じた符号がかかる)
を満たすならば、\(f (a_1,\dots, a_N)= \det A\)となる。列ベクトルではなく、行ベクトルとして見ても同様。逆に、置換による定義\(\det A\)はこの3つの性質を満たします。
そして、行列\(A\)が可逆であることと、行列式が0でないことは同値となります。
一般的な証明については、「齋藤 線型代数入門 3章 定理2.6 p.81、定理2.10 p.84」を参照してください。
ここでは、\(N=2\)のとき、行列式の表示式\(ad-bc\)と、性質による定義が同値であることを確かめてみましょう。
\(a_1= (a,c),a_2=(b,d)\)として、\(f(a_1,a_2)=ad-bc \)と定めます。
\(f (e_1,e_2)=1\cdot1-0\cdot0=1\)なので、性質1は成り立ちます。
\(a’=(a’,c’),\lambda \in \mathbb{R}\)として、
\[ \begin{aligned} f(\lambda a_1+a’,a_2)&=(\lambda a+a’)d-b(\lambda c+c’) \\ &= \lambda (ad-bc)+(a’d-bc’) \\ &=\lambda f( a_1,a_2)+ f( a’,a_2)\end{aligned} \]
です。第2列に関しても同様にして示せて、性質2は成り立ちます。
\(f(a_1,a_2)=-(bc-ad)=-f(a_2,a_1)\)なので、性質3は成り立ちます。
ここまでの議論を忘れ、逆に、\(f\)を3つの性質を満たすものとしましょう。
\(f(e_1,e_2)=1\)の両辺に\(ad\)をかけ、線形性を利用すると\(f((a,0),(0,d)=ad)\)です。また、交代性より\(f(e_2,e_1)=-1\)ですが、\(bc\)をかけて整理すれば\(f((0,c),(b,0))=-bc\)です。これらを足し合わせれば、線形性により、\(f((a,c),(b,d))=f(a_1,a_2)=ad-bc\)となりました。
行列式の計算方法:余因子展開
行列式の性質を用いれば、サラスの方法によらずとも、より簡単に行列式を計算できます。
(1) 行列式の値は、ある列の定数倍を別の列に加えても変わらない
(2) ある列とある列を1つ入れ替えると、行列式は-1倍される
(3) ある列を(0でない)定数\(c\)倍するなら、行列式は\(c\)倍される
列ではなく、行についても同じ。
(1)を、簡単のため\(N=3\)の特殊なケースで確かめてみましょう。第2列に第1列の\(\lambda\)倍を加えてみます。線形性より、\(f(a_1,a_2+\lambda a_1 ,a_3)=f(a_1,a_2,a_3)+\lambda f(a_1,a_1,a_3)\)です。ここで、同じ列ベクトルが2つあるとその値は0となります。なぜなら交代性により\(f(a_1,a_1,a_3)=-f(a_1,a_1,a_3)\)なので、両辺は0でしかありえません。よって、行列式の値は変わらない\(f(a_1,a_2+\lambda a_1 ,a_3)=f(a_1,a_2,a_3)\)ことがわかりました。
(2)は、行列式の交代性によるものです。
(3)は、行列式の線形性によるものです。例えばある列を\(5\)で割ったら、行列式の値は\(\frac{1}{5}\)になります。定数倍した後の行列式の値=元の行列式、ではありません。線形方程式の基本変形では定数倍の情報は気にしなくて良いですが、行列式の計算では値が変わっていることに注意しましょう。
具体的に、\( B=\begin{pmatrix} 1& 2& 1\\ 2 & 1 &3 \\ 1& 3& 2\end{pmatrix}\)の行列式を求めてみましょう。
第1行の定数倍を第2,3行に加えることで、第1列をシンプルにしても、行列式の値は同じです。
\(\det \begin{pmatrix} 1& 2& 1\\ 2 & 1 &3 \\ 1& 3& 2\end{pmatrix}=\det \begin{pmatrix} 1& 2& 1\\ 0 & -3 &1 \\ 0& 1& 1\end{pmatrix} \)
さらにこの行列式は、小さな行列式に「展開」して計算できます。
\(\det \begin{pmatrix} 1& 2& 1\\ 0 & -3 &1 \\ 0& 1& 1\end{pmatrix}=1\cdot \det \begin{pmatrix} -3 &1 \\ 1& 1\end{pmatrix} \)
\(2\times 2\)の行列式は簡単に計算できるので、\(\det B= -4\)と計算できました。
このように、\(N\times N\)の行列式の計算を、定数×(\(N-1 \times N-1\)の行列式の計算)と展開、さらにそれを展開して……と小さな行列式の計算に帰着できれば、結局覚えるのは\(2\times 2\)の行列式だけで良くなるので簡単です。
展開の仕組みは、一般には次のようになります。
\(\det\begin{pmatrix} a &\ast \\ O & A_1 \end{pmatrix} = a \det A_1\)
ある列が単位ベクトルの定数倍になれば、その定数かける残りの小さな行列の行列式が求める行列式に等しい、という展開です。
\(f\)を\(N\times N\)の行列の行列式とします。すると、\(\det\begin{pmatrix} a &\ast \\ O & A_1 \end{pmatrix}= f(ae_1,a_2,\dots,a_N)= a f(e_1,a_2,\dots,a_N)\)です。右辺の\(a_2,\dots,a_N\)から\(\ast\)に該当する第1行を除いた変数を、\(b_2,\dots,b_N\)とします。そして、\(g(b_2,\dots,b_N):=f(e_1,a_2,\dots,a_N)\)と定めれば、\(f\)の定義より、\(g\)もまた行列式の性質を満たすので、\(g\)は\(N-1\)次の行列式であり、\(g(b_2,\dots,b_N)= \det A_1\)です。よって求めたい等式が得られました。
この展開式は、行列式の(第1列に関する)余因子展開(cofactor expansion)と呼ばれています。
第1列だけでなく、どの列、どの行を選んでも、「注目した列・行×そこを取り除いた小行列式」と展開する議論ができます。
第1列が\(a_1=(a,0,0,\dots,0)\)の形ではなく、\(a_1=(a_{11},\dots,a_{1N})\)の形だったとしても、\(\det A = a_{11} \det \ast + \cdots + a_{1N} \det \ast\)の形に展開できます。
この性質は多重線形性を使ってチェックすれば良いだけです。ただし、小行列式を複数計算する必要があるので、\(a_1=(a,0,0,\dots,0)\)の形まで消去してしまった方が計算ミスは少ないのではないかと思います。
今回は、行列式の導出、置換による定義と性質による定義、計算方法を紹介してきました。
僕の個人的な経験としては、置換による行列式の定義を最初に知って、置換とは何なのかがよくわからなくなり、行列式の実際の計算方法もあやふやなままとなった記憶があります。
そこで今回の話では、行列式の性質による定義(多重線形性と交代性)を軸にして、計算方法を紹介しました。行列の分野は暗記しなきゃいけないのか……と思わず、原理に戻った計算を身につけてみてください。
木村すらいむ(@kimu3_slime)でした。ではでは。
世界標準MIT教科書 ストラング:線形代数イントロダクション
近代科学社 (2015-12-22T00:00:01Z)
¥8,800
東京大学出版会 (1966-03-31T00:00:01Z)
¥2,090
こちらもおすすめ
なぜ行列式を学ぶのか? 固有値・固有ベクトルの求め方:固有多項式の定義