行列の基本事項まとめ 〜$2$次元正方行列の積、行列式、逆行列、固有値・固有ベクトル、対角化〜

当記事では$2$次元の行列に対して、「行列の積」、「行列式」、「逆行列」、「固有値・固有ベクトル」、「対角化」などの基本トピックを取り扱います。$2$次元の行列に関してはある程度シンプルな公式があるので、一通り抑えておくと良いと思います。

・基礎数学まとめ
https://www.hello-statisticians.com/math_basic

行列の定義と演算

$2 \times 2$行列の定義

$$
\large
\begin{align}
A = \left(\begin{array}{cc} a & b \\ c & d \end{array} \right)
\end{align}
$$

$2 \times 2$行列は上記の$A$のように縦と横に$2$つずつの要素が並ぶように定義される。ベクトルを複数並べたもののように解釈することもできる。

ここで行と列に関して区別されることは抑えておく必要があり、それぞれ$a,b$を$1$行目、$c,d$を$2$行目と数えるのに対し、$a,c$を$1$列目、$b,d$を$2$列目と数える。このことは$a,b,c,d$のそれぞれの要素単位でも考えることができ、例えば$b$は$1$行$2$列の要素のように考えられる。

行列の和・差・定数倍

行列の和・差・定数倍は通常の四則演算と変わらないので、簡単に考えればよい。以下に簡単な具体例を紹介する。
$$
\large
\begin{align}
A = \left(\begin{array}{cc} a_{11} & a_{12} \\ a_{21} & a_{22} \end{array} \right), \quad B = \left(\begin{array}{cc} b_{11} & b_{12} \\ b_{21} & b_{22} \end{array} \right)
\end{align}
$$

上記のように行列$A$と行列$B$を定める。上記では$i$行$j$列の要素を$a_{ij}$のように表したが、この表記を用いることが多いので「必ず」抑えておくとよい。また、$i$行$j$列の要素を$(i,j)$成分と表現する場合もある。$A$の要素を$a_{ij}$、$B$の要素を$b_{ij}$と表すことにより、複数の行列を扱う際の文字の区別が行いやすくなるのでなるべく用いるようにすると良い。応用にあたっては$i$と$j$がそれぞれ何に対応するかは常に注意しておくとよい。

行列$A,B$の和$A+B$と差$A-B$、定数倍$kA$はそれぞれ下記のように計算される。
$$
\large
\begin{align}
A + B &= \left(\begin{array}{cc} a_{11} & a_{12} \\ a_{21} & a_{22} \end{array} \right) + \left(\begin{array}{cc} b_{11} & b_{12} \\ b_{21} & b_{22} \end{array} \right) \\
&= \left(\begin{array}{cc} a_{11}+b_{11} & a_{12}+b_{12} \\ a_{21}+b_{21} & a_{22}+b_{22} \end{array} \right) \\
A – B &= \left(\begin{array}{cc} a_{11} & a_{12} \\ a_{21} & a_{22} \end{array} \right) – \left(\begin{array}{cc} b_{11} & b_{12} \\ b_{21} & b_{22} \end{array} \right) \\
&= \left(\begin{array}{cc} a_{11}-b_{11} & a_{12}-b_{12} \\ a_{21}-b_{21} & a_{22}-b_{22} \end{array} \right) \\
kA &= k \left(\begin{array}{cc} a_{11} & a_{12} \\ a_{21} & a_{22} \end{array} \right) \\
&= \left(\begin{array}{cc} k a_{11} & k a_{12} \\ k a_{21} & k a_{22} \end{array} \right)
\end{align}
$$

行列の積

行列の積は通常の四則演算と異なる演算を行うので注意しておく必要がある。前項と同様に下記のように行列$A, B$を定める。
$$
\large
\begin{align}
A = \left(\begin{array}{cc} a_{11} & a_{12} \\ a_{21} & a_{22} \end{array} \right), \quad B = \left(\begin{array}{cc} b_{11} & b_{12} \\ b_{21} & b_{22} \end{array} \right)
\end{align}
$$

このとき行列の積$AB$は下記のように定められる。
$$
\large
\begin{align}
AB &= \left(\begin{array}{cc} a_{11} & a_{12} \\ a_{21} & a_{22} \end{array} \right)\left(\begin{array}{cc} b_{11} & b_{12} \\ b_{21} & b_{22} \end{array} \right) \\
&= \left(\begin{array}{cc} a_{11}b_{11}+a_{12}b_{21} & a_{11}b_{12}+a_{12}b_{22} \\ a_{21}b_{11}+a_{22}b_{21} & a_{21}b_{12}+a_{22}b_{22} \end{array} \right)
\end{align}
$$

行列式と逆行列の公式

$2 \times 2$行列の行列式

$$
\large
\begin{align}
A = \left(\begin{array}{cc} a_{11} & a_{12} \\ a_{21} & a_{22} \end{array} \right)
\end{align}
$$

上記のように定めた行列$A$の行列式$\det{A}$は下記のように定義される。
$$
\large
\begin{align}
\det{A} &= a_{11}a_{22} – a_{12}a_{21}
\end{align}
$$

$2 \times 2$行列の逆行列の公式

$$
\large
\begin{align}
I_{2} = \left(\begin{array}{cc} 1 & 0 \\ 0 & 1 \end{array} \right)
\end{align}
$$

上記のように単位行列$I_{2}$を定めるとき、$AA^{-1}=I_{2}$となる$A^{-1}$を$A$の逆行列と定める。ここで$AA^{-1}=I_{2}$が成立すれば同時に$A^{-1}A=I_{2}$も成立する。このことは下記のように示せる。
$$
\large
\begin{align}
AA^{-1} &= I_{2} \\
A^{-1}AA^{-1} &= A^{-1} \\
(A^{-1}A-I_{2})A^{-1} &= O \\
A^{-1}A &= I_{2} \\
A^{-1} & \neq O
\end{align}
$$

以下、逆行列の公式に関して確認を行う。
$$
\large
\begin{align}
A = \left(\begin{array}{cc} a_{11} & a_{12} \\ a_{21} & a_{22} \end{array} \right)
\end{align}
$$

ここで上記のように定めた行列$A$の逆行列$A^{-1}$は$\det{A} \neq 0$のとき、下記のように表される。
$$
\large
\begin{align}
A^{-1} &= \frac{1}{\det{A}} \left(\begin{array}{cc} a_{22} & -a_{12} \\ -a_{21} & a_{11} \end{array} \right) \\
&= \frac{1}{a_{11}a_{22} – a_{12}a_{21}} \left(\begin{array}{cc} a_{22} & -a_{12} \\ -a_{21} & a_{11} \end{array} \right) \quad (1)
\end{align}
$$

$(1)$式で表した$A^{-1}$が$A$の逆行列であることは下記のように$AA^{-1}$を計算することで示すことができる。
$$
\large
\begin{align}
AA^{-1} &= \frac{1}{a_{11}a_{22} – a_{12}a_{21}} \left(\begin{array}{cc} a_{11} & a_{12} \\ a_{21} & a_{22} \end{array} \right) \left(\begin{array}{cc} a_{22} & -a_{12} \\ -a_{21} & a_{11} \end{array} \right) \\
&= \frac{1}{a_{11}a_{22} – a_{12}a_{21}} \left(\begin{array}{cc} a_{11}a_{22}-a_{12}a_{21} & -a_{11}a_{12}+a_{12}a_{11} \\ a_{21}a_{22}-a_{22}a_{21} & -a_{21}a_{12}+a_{22}a_{11} \end{array} \right) \\
&= \frac{1}{a_{11}a_{22} – a_{12}a_{21}} \left(\begin{array}{cc} a_{11}a_{22} – a_{12}a_{21} & 0 \\ 0 & a_{11}a_{22} – a_{12}a_{21} \end{array} \right) = \left(\begin{array}{cc} 1 & 0 \\ 0 & 1 \end{array} \right) = I_{2}
\end{align}
$$

$2 \times 2$行列の固有値・固有ベクトル

固有値・固有ベクトルの定義とそれぞれの導出

$$
\large
\begin{align}
A = \left(\begin{array}{cc} a_{11} & a_{12} \\ a_{21} & a_{22} \end{array} \right)
\end{align}
$$

上記のように定めた行列$A$の固有値を$\lambda$、固有ベクトルを$\displaystyle \mathbf{u} = \left(\begin{array}{cc} u_{1} \\ u_{2} \end{array} \right)$とおくと、固有値と固有ベクトルの定義により下記が成立する。
$$
\large
\begin{align}
A \mathbf{u} = \lambda \mathbf{u} \quad (2)
\end{align}
$$

このとき、固有値は固有方程式$\det(A – \lambda I_{2})=0$を解くことで得られる。また、得られた固有値をそれぞれ$(2)$式に代入することで、固有値に対応する固有ベクトルが得られる。

手順自体はシンプルである一方で計算が複雑であるので、以下具体的な行列に関して確認を行う。
$$
\large
\begin{align}
A = \left(\begin{array}{cc} 2 & 1 \\ 1 & 2 \end{array} \right)
\end{align}
$$

上記の行列$A$に対して固有方程式$\det(A – \lambda I_{2})=0$を解くことを考える。
$$
\large
\begin{align}
\det(A – \lambda I_{2}) &= 0 \\
(2-\lambda)^2 – 1^2 &= 0 \\
\lambda^2 – 4 \lambda + 4 – 1 &= 0 \\
\lambda^2 – 4 \lambda + 3 &= 0 \\
(\lambda-1)(\lambda-3) &= 0
\end{align}
$$

上記の計算により$\lambda=1,3$が得られる。途中計算では展開を行なったが、$A^2-B^2=(A+B)(A-B)$の因数分解を用いることで、$(2-\lambda)^2 – 1^2 = (2-\lambda+1)(2-\lambda-1)$のように計算を行うと$1$行分の計算が省略できるのでなるべく用いると良い。

以下、得られた固有値の$\lambda=1,3$に関して固有ベクトルを計算する。
・$\lambda=1$に対応する固有ベクトル
$$
\large
\begin{align}
A \mathbf{u} &= \mathbf{u} \\
\left(\begin{array}{cc} 2 & 1 \\ 1 & 2 \end{array} \right)\left(\begin{array}{cc} u_{1} \\ u_{2} \end{array} \right) &= \left(\begin{array}{cc} u_{1} \\ u_{2} \end{array} \right) \\
\left(\begin{array}{cc} 2u_{1}+u_{2} \\ u_{1}+2u_{2} \end{array} \right) &= \left(\begin{array}{cc} u_{1} \\ u_{2} \end{array} \right) \\
\left(\begin{array}{cc} u_{1} \\ u_{1} \end{array} \right) &= \left(\begin{array}{cc} -u_{2} \\ -u_{2} \end{array} \right) \\
u_{1} &= -u_{2}
\end{align}
$$

上記より$\lambda=1$に対応する固有ベクトルは定数$k$を用いて$\displaystyle \mathbf{u} = k\left(\begin{array}{cc} 1 \\ -1 \end{array} \right)$のように表せる。

・$\lambda=3$に対応する固有ベクトル
$$
\large
\begin{align}
A \mathbf{u} &= 3 \mathbf{u} \\
\left(\begin{array}{cc} 2 & 1 \\ 1 & 2 \end{array} \right)\left(\begin{array}{cc} u_{1} \\ u_{2} \end{array} \right) &= 3\left(\begin{array}{cc} u_{1} \\ u_{2} \end{array} \right) \\
\left(\begin{array}{cc} 2u_{1}+u_{2} \\ u_{1}+2u_{2} \end{array} \right) &= \left(\begin{array}{cc} 3u_{1} \\ 3u_{2} \end{array} \right) \\
\left(\begin{array}{cc} -u_{1} \\ u_{1} \end{array} \right) &= \left(\begin{array}{cc} -u_{2} \\ u_{2} \end{array} \right) \\
u_{1} &= u_{2}
\end{align}
$$

上記より$\lambda=3$に対応する固有ベクトルは定数$k$を用いて$\displaystyle \mathbf{u} = k\left(\begin{array}{cc} 1 \\ 1 \end{array} \right)$のように表せる。

また、固有ベクトルを考えるにあたっては、大きさ$1$の固有ベクトルを考えることが多い。ここまでの議論により、$\lambda=1$に対応する大きさ$1$の固有ベクトルは$\displaystyle \mathbf{u} = \frac{1}{\sqrt{2}}\left(\begin{array}{cc} 1 \\ -1 \end{array} \right)$、$\lambda=3$に対応する大きさ$1$の固有ベクトルは$\displaystyle \mathbf{u} = \frac{1}{\sqrt{2}}\left(\begin{array}{cc} 1 \\ 1 \end{array} \right)$のようにそれぞれ考えられる。

当項で取り扱ったように固有値・固有ベクトルの計算は考え方自体はシンプルな一方で計算が複雑になる。ここでは$2 \times 2$行列の固有値・固有ベクトルについて取り扱ったが、次数が上がるにつれてさらに取り扱いが難しくなるので、固有値・固有ベクトルに関しては近似的な手法が多く考案されている。たとえば「統計の森」で主に用いるPythonで固有値・固有ベクトルを取り扱うにあたってはNumPyを用いるが、NumPyでも近似的な手法が用いられていることは抑えておくと良い。

行列の対角化

行列の対角化は前項で取り扱った固有ベクトルを元に考えることができる。それぞれの固有値・固有ベクトルの表記にあたって、$\lambda_1=3$に対応する固有ベクトルを$\mathbf{u}_{1}$、$\lambda_2=1$に対応する固有ベクトルを$\mathbf{u}_{2}$のように定める。

このとき、下記のように$U$と対角行列$\Lambda$を定義する。
$$
\large
\begin{align}
U &= \left(\begin{array}{c} \mathbf{u}_{1} & \mathbf{u}_{2} \end{array} \right) \\
&= \frac{1}{\sqrt{2}} \left(\begin{array}{cc} 1 & 1 \\ 1 & -1 \end{array} \right) \\
\Lambda &= \left(\begin{array}{cc} \lambda_{1} & 0 \\ 0 & \lambda_{2} \end{array} \right) = \left(\begin{array}{cc} 3 & 0 \\ 0 & 1 \end{array} \right)
\end{align}
$$

ここで上記の$U$に関して$UU^{\mathrm{T}}=I_{2}$が成立するので、$U$は直交行列である。このとき、$UU^{\mathrm{T}}=I_{2}$より$U^{-1}=U^{\mathrm{T}}$が成立する。

また、$\Lambda,U$が固有値・固有ベクトルに基づいて定義されたことより、下記が成立する。
$$
\large
\begin{align}
A\left(\begin{array}{c} \mathbf{u}_{1} & \mathbf{u}_{2} \end{array} \right) &= \left(\begin{array}{c} \lambda_{1} \mathbf{u}_{1} & \lambda_{2} \mathbf{u}_{2} \end{array} \right) \\
A\left(\begin{array}{c} \mathbf{u}_{1} & \mathbf{u}_{2} \end{array} \right) &= \left(\begin{array}{c} \mathbf{u}_{1} & \mathbf{u}_{2} \end{array} \right) \left(\begin{array}{cc} \lambda_{1} & 0 \\ 0 & \lambda_{2} \end{array} \right) \\
AU &= U \Lambda \quad (3)
\end{align}
$$

上記は$A \mathbf{u}_{i} = \lambda_{i} \mathbf{u}_{i}$をまとめたと考えればよい。ここで$(3)$式の両辺に左から$U^{-1}=U^{\mathrm{T}}$をかけると下記のように変形できる。
$$
\large
\begin{align}
AU &= U \Lambda \quad (3) \\
U^{-1}AU &= U^{-1} U \Lambda \\
U^{\mathrm{T}} A U &= \Lambda
\end{align}
$$

よって、$U^{\mathrm{T}} A U$を計算すれば行列を対角化できる。以下、それぞれの値を代入することで式が正しいことの具体的な確認を行う。
$$
\large
\begin{align}
U^{\mathrm{T}} A U &= \frac{1}{2} \left(\begin{array}{cc} 1 & 1 \\ 1 & -1 \end{array} \right) \left(\begin{array}{cc} 2 & 1 \\ 1 & 2 \end{array} \right) \left(\begin{array}{cc} 1 & 1 \\ 1 & -1 \end{array} \right) \\
&= \frac{1}{2} \left(\begin{array}{cc} 3 & 3 \\ 1 & -1 \end{array} \right) \left(\begin{array}{cc} 1 & 1 \\ 1 & -1 \end{array} \right) \\
&= \frac{1}{2} \left(\begin{array}{cc} 6 & 0 \\ 0 & 2 \end{array} \right) \\
&= \left(\begin{array}{cc} 3 & 0 \\ 0 & 1 \end{array} \right) \\
&= \Lambda
\end{align}
$$

このように固有ベクトルを用いて直交行列を作成することで、行列の対角化を行える。また、大きさ$1$の固有ベクトルをここで取り扱ったように並べて行列$U$を作成する場合、$U$は必ず直交行列であり、$U^{-1}=U^{\mathrm{T}}$が成立することも合わせて抑えておくと良い。

行列の$n$乗

行列の$n$乗の計算は、対角行列の$n$乗が対角成分の$n$乗を考えるだけで計算できることに基づいて考えると良い。以下、$\Lambda$に関して具体的な計算の確認を行う。
$$
\large
\begin{align}
\Lambda^{2} &= \left(\begin{array}{cc} \lambda_{1} & 0 \\ 0 & \lambda_{2} \end{array} \right)\left(\begin{array}{cc} \lambda_{1} & 0 \\ 0 & \lambda_{2} \end{array} \right) \\
&= \left(\begin{array}{cc} \lambda_{1}^2+0^2 & \lambda_{1} \times 0 + 0 \times \lambda_{2} \\ 0 \times \lambda_{1} + \lambda_{2} \times 0 & 0^{2}+\lambda_{2}^{2} \end{array} \right) \\
&= \left(\begin{array}{cc} \lambda_{1}^2 & 0 \\ 0 & \lambda_{2}^{2} \end{array} \right) \\
\Lambda^{3} &= \left(\begin{array}{cc} \lambda_{1}^{2} & 0 \\ 0 & \lambda_{2}^{2} \end{array} \right)\left(\begin{array}{cc} \lambda_{1} & 0 \\ 0 & \lambda_{2} \end{array} \right) \\
&= \left(\begin{array}{cc} \lambda_{1}^{3} & 0 \\ 0 & \lambda_{2}^{3} \end{array} \right)
\end{align}
$$

同様に考えて、$\Lambda^{n}$は下記のように表せる。
$$
\large
\begin{align}
\Lambda^{n} = \left(\begin{array}{cc} \lambda_{1}^{n} & 0 \\ 0 & \lambda_{2}^{n} \end{array} \right)
\end{align}
$$

上記の導出にあたっては厳密には数学的帰納法などを用いて示すが、直感的に妥当な結果である一方で議論が冗長になるのでここでは省略する。$\Lambda^{n}$がシンプルに計算できることが確認できたので、以下では$A$の$n$乗に関して考える。
$$
\large
\begin{align}
U^{\mathrm{T}} A U = \Lambda
\end{align}
$$

前項より上記のように$U^{\mathrm{T}} A U = \Lambda$が成立するので、この両辺の$n$乗に関して考えると下記のように変形できる。
$$
\large
\begin{align}
U^{\mathrm{T}} A U &= \Lambda \\
(U^{-1} A U)^{n} &= \Lambda^{n} \\
(U^{-1} A U)(U^{-1} A U) \cdots (U^{-1} A U) &= \Lambda^{n} \\
U^{-1} A (UU^{-1}) A U \cdots U^{-1} A U &= \Lambda^{n} \\
U^{-1} A^{n} U &= \Lambda^{n} \\
UU^{-1} A^{n} UU^{-1} &= U\Lambda^{n}U^{-1} \\
A^{n} &= U\Lambda^{n}U^{\mathrm{T}}
\end{align}
$$

したがって、$\displaystyle A^{n} = \left(\begin{array}{cc} 2 & 1 \\ 1 & 2 \end{array} \right)^{n}$は下記のように計算できる。
$$
\large
\begin{align}
A^{n} &= U\Lambda^{n}U^{\mathrm{T}} \\
&= \frac{1}{2} \left(\begin{array}{cc} 1 & 1 \\ 1 & -1 \end{array} \right) \left(\begin{array}{cc} 3^{n} & 0 \\ 0 & 1^{n} \end{array} \right) \left(\begin{array}{cc} 1 & 1 \\ 1 & -1 \end{array} \right) \\
&= \frac{1}{2} \left(\begin{array}{cc} 3^{n} & 1 \\ 3^{n} & -1 \end{array} \right) \left(\begin{array}{cc} 1 & 1 \\ 1 & -1 \end{array} \right) = \frac{1}{2}\left(\begin{array}{cc} 3^{n}+1 & 3^{n}-1 \\ 3^{n}-1 & 3^{n}+1 \end{array} \right)
\end{align}
$$

実際に$A^{2},A^{3}$を計算すると$n=2,3$の上記の式と一致することが確認できる。