ベイジアン研究所

プログラミング言語(アルゴリズム的な話が中心)やガジェットの紹介をしています。時々心理学の話も。

【線形代数学入門】行列式の展開

1. 記事の目的
以下の記事で、行列式の定義とその性質について述べた。本記事では行列式の展開方法である余因子展開について述べ、連立一次方程式の解法への応用について述べる。

camelsan.hatenablog.com

camelsan.hatenablog.com

2. 余因子
n次正方行列Aの第i行、第j列を除いてできるn-1次小行列式Aの第(i,j)行列式という。小行列式に関しては上記の記事、小行列式の性質を参照。

Aの第(I,j)行列式(-1)^{I+j}をかけたものを、Aの第(I,j)余因子という。

例:

A=
    \begin{pmatrix}
        1 & 2 & 3 \\
        4 & 5 & 6 \\
        7 & 8 & 9
    \end{pmatrix}

として、Aの第(2,2)余因子は、以下の図1の行と列を取り除いた行列の行列式(-1)^{1+1}=1をかけたものである。

f:id:camelsan:20210320202844p:plain
図1 余因子の例

よって、A (2,2) 余因子は、


    \begin{vmatrix}
        1 & 3 \\
        7 & 9
    \end{vmatrix}
    = -12

である。

行列を、余因子行列を使って展開することができる。

定理
n次行列A=(a_{ij})の第(i,j)余因子を\tilde a_{ij}で表すとき、


    |A| = a_{1j}\tilde a_{1j}+a_{2j}\tilde a_{2j}+\dots+a_{nj}\tilde a_{nj} \ \ (j=1,2,\dots,n)

    |A| = a_{i1}\tilde a_{i1}+a_{i2}\tilde a_{i2}+\dots+a_{in}\tilde a_{in} \ \ (i=1,2,\dots,n)

が成り立つ。(1)、(2)をそれぞれ第j列、第i行に関する行列式の展開という。
証明:(1)のみ証明すれば、転置行列を考えれば、(2)が証明される。Aの第(i,j)行列式\Delta_{ij}と表すことにする。

まず、j=1の場合を証明する。行列式の多重線形性より、

|A|=
    \begin{vmatrix}
        a_{11} & a_{12} & \dots & a_{1n} \\
        0 & a_{22} & \dots & a_{2n} \\
        \vdots & \vdots &  & \vdots \\
        0 & a_{n2} & \dots & a_{nn} \\
    \end{vmatrix}
    +
    \begin{vmatrix}
        0 & a_{12} & \dots & a_{1n} \\
        a_{21} & a_{22} & \dots & a_{2n} \\
        \vdots & \vdots &  & \vdots \\
        0 & a_{n2} & \dots & a_{nn} \\
    \end{vmatrix}
    +\dots+
     \begin{vmatrix}
        0 & a_{12} & \dots & a_{1n} \\
        0 & a_{22} & \dots & a_{2n} \\
        \vdots & \vdots &  & \vdots \\
        a_{n1} & a_{n2} & \dots & a_{nn} \\
    \end{vmatrix}

右辺の第i項の行列式で、第i行を一番上に持っていけば、行列式の交代性により


\begin{split}
|A|=
    \begin{vmatrix}
        a_{11} & a_{12} & \dots & a_{1n} \\
        0 & a_{22} & \dots & a_{2n} \\
        \vdots & \vdots &  & \vdots \\
        0 & a_{n2} & \dots & a_{nn} \\
    \end{vmatrix}
    &-
    \begin{vmatrix}
        a_{21} & a_{22} & \dots & a_{2n} \\
        0 & a_{12} & \dots & a_{1n} \\
        \vdots & \vdots &  & \vdots \\
        0 & a_{n2} & \dots & a_{nn} \\
    \end{vmatrix}
    +\dots \\ &+(-1)^{n-1}
     \begin{vmatrix}
        a_{n1} & a_{n2} & \dots & a_{nn} \\
        0 & a_{22} & \dots & a_{2n} \\
        \vdots & \vdots &  & \vdots \\
        0 & a_{n-1 2} & \dots & a_{n-1 n} \\
    \end{vmatrix}
\end{split}

となる。区分けした行列の行列式の求め方から、


    \begin{split}
    |A|&=a_{11}\Delta_{11}-a_{21}\Delta_{21}+\dots+(-1)^{n-1}a_{n1}\Delta_{n1} \\
    &=a_{11}\tilde a_{11}+a_{21}\tilde a_{21}+\dots+ a_{n1}\tilde a_{n1}
    \end{split}

一般のjに対しては、次のように求める。まず、第j列を一番上に移す。この時、A行列式(-1)^{j+1}倍される。即ち、

(-1)^{j+1}|A|=
    \begin{vmatrix}
        a_{1j} & a_{11} & \dots & a_{1n} \\
        a_{2j} & a_{21} & \dots & a_{2n} \\
        \vdots & \vdots &  & \vdots \\
        a_{nj} & a_{n1} & \dots & a_{nn} 
    \end{vmatrix}

より、右辺をj=1の場合と同じように考えると、


    \begin{split}
    (-1)^{j+1}|A|&=a_{1j}\Delta_{1j}-a_{2j}\Delta_{2j}+\dots+(-1)^{n-1}a_{nj}\Delta_{nj} \\
    &=(-1)^{j+1}(a_{1j}\tilde a_{1j}+a_{2j}\tilde a_{2j}+\dots+ a_{nj}\tilde a_{nj})
    \end{split}

よって、両辺を(-1)^{j+1}で割って、


    |A|=a_{1j}\tilde a_{1j}+a_{2j}\tilde a_{2j}+\dots+ a_{nj}\tilde a_{nj}

一般的に次が成り立つ。
定理


    a_{1j}\tilde a_{1l}+a_{2j}\tilde a_{2l}+\dots+a_{nj}\tilde a_{nl}=\delta_{jl}|A| \ \ (j,l=1,2,\dots,n)
\tag{1}

    a_{i1}\tilde a_{k1}+a_{i2}\tilde a_{k2}+\dots+a_{in}\tilde a_{kn}=\delta_{ik}|A| \ \ (i,k=1,2,\dots,n)
\tag{2}

但し、

\delta_{jl}=
    \begin{cases}
        1 & j=l \\
        0 & j\neq l
    \end{cases}

証明:(1)だけ証明すればよい。(2)は転置行列を考えれば良い。j=lの時は前定理である。j\neq lのとき、(3)の左辺は、Aの第l列を第j列で置き換えた行列の第l列に関する前定理による展開式である。この展開前の行列は、第l列と第j列が同じ行列である。よってその行列式0である。

3. クラメルの公式
未知数の数と方程式の数が等しく、その係数行列が正則であるような連立一次方程式は唯ひとつの解をもつ。その解を行列式の展開を使って求める方法(クラメルの公式)を与える。

まず、余因子行列を定義する。A=(a_{ij})として、\tilde a_{ji}を、(i,j)成分とするn次正方行列\tilde Aを考える。即ち、

\tilde A=
    \begin{pmatrix}
        \tilde a_{11} & \tilde a_{21} & \dots & \tilde a_{n1} \\
        \tilde a_{12} & \tilde a_{22} & \dots & \tilde a_{n2} \\
        \vdots & \vdots && \vdots \\
        \tilde a_{1n} & \tilde a_{2n} & \dots & \tilde a_{nn} \\
    \end{pmatrix}
\tag{3}

(3)を余因子行列という。最初に次の定理を証明する。

定理
n次正方行列Aの余因子行列を\tilde Aとすると、


    \tilde A A = A \tilde A = |A|E_n

証明:(1)、(2)式の左辺は、それぞれ\tilde A A(j,l)成分及び行列(A A\tilde A)(i,k)成分を表す。一方、(1)、(2)の右辺は、スカラー行列|A|E_n(j,l)成分及び、(i,k)成分であるから、定理が成り立つ。

上記の定理から、次の定理が成り立つ。
定理
n次正方行列A正則行列であるためには、|A|\neq 0が必要かつ十分な条件で、この時A逆行列は、\frac{1}{|A|}\tilde Aで与えられる。

以上の定理から、クラメルの公式と呼ばれる、次の定理を証明することができる。

定理
連立一次方程式


    A\boldsymbol{x} = \boldsymbol{b}
\tag{4}

(A=(a_{ij})n次行列、\boldsymbol{x}=(x_j)n項未知列ベクトル、\boldsymbol{b}=(b_j)n項列ベクトル)の唯ひとつの解は次で与えられる。


    x_j = \frac{|A_j|}{|A|}=
    \frac{
        \begin{vmatrix}
            a_{11} & \dots & b_1 & \dots & a_{1n} \\
            a_{21} & \dots & b_2 & \dots & a_{2n} \\
            \vdots & & \vdots & & \vdots \\
            a_{n1} & \dots & b_n & \dots & a_{nn} 
        \end{vmatrix}}
    {
        \begin{vmatrix}
            a_{11} & \dots & a_{1j} & \dots & a_{1n} \\
            a_{21} & \dots & a_{2j} & \dots & a_{2n} \\
            \vdots & & \vdots & & \vdots \\
            a_{n1} & \dots & a_{nj} & \dots & a_{nn}             
        \end{vmatrix}
    }
    \ \ (j=1,2,\dots,n)

即ち、x_jの分母は、係数行列の行列式、分子は係数行列のj列を\boldsymbol{b}で置き換えた行列の行列式である。
証明:(4)の解\boldsymbol{x}は、A^{-1}\boldsymbol{b}で与えられる。Aの第(i,j)余因子を\tilde a_{ij}、余因子行列を\tilde Aとする。このとき


    \begin{split}
        \boldsymbol{x}=A^{-1}\boldsymbol{b}&=\frac{1}{|A|}
        \begin{pmatrix}
            \tilde a_{11} & \tilde a_{21} & \dots & \tilde a_{n1} \\
            \tilde a_{12} & \tilde a_{22} & \dots & \tilde a_{n2} \\
            \dots & \dots & & \dots \\
            \tilde a_{1n} & \tilde a_{2n} & \dots & \tilde a_{nn} \\ 
        \end{pmatrix}
        \begin{pmatrix}
            b_1 \\ b_2 \\ \vdots \\ b_n 
        \end{pmatrix} \\
        &=\frac{1}{|A|}
        \begin{pmatrix}
             b_1 \tilde a_{11}+b_2 \tilde a_{21} +\dots+b_n \tilde a_{n1} \\
             b_1 \tilde a_{12}+b_2 \tilde a_{22} +\dots+b_n \tilde a_{n2} \\
            \vdots \\
             b_1 \tilde a_{1n}+b_2 \tilde a_{2n} +\dots+b_n \tilde a_{nn} \\
        \end{pmatrix} 
    \end{split}

この最右辺のベクトルの第j成分は、行列Aの第j列の代わりに\boldsymbol{b}に置き換えた行列

A_j=
    \begin{pmatrix}
        a_{11} & \dots & b_1 & \dots & a_{1n} \\
        a_{21} & \dots & b_2 & \dots & a_{2n} \\
        \vdots & \vdots && \vdots \\
        a_{n1} & \dots & b_n & \dots & a_{nn} \\
    \end{pmatrix}

の第j列に関する展開式を並べたものである。

4. 参考文献
[1] 線型代数入門