# 行列積の性質と基本変形
## 1. 行列積
### 1.1 積を取れる組み合わせと取れない組み合わせ
<details>
$\color{red}{m}$ 行 $\color{blue}{n}$ 列の行列 $A$ と、$\color{brown}{k}$ 行 $\color{green}{l}$ 列の行列があり、その $(i,j)$ 成分をそれぞれ $(A)_{ij} := a_{ij}$, $(B)_{ij} := b_{ij}$ と書いたとき、
- $\color{blue}n=\color{brown}k$ であれば $AB=C$ が計算でき、その $(i, j)$ 成分は
$$
(C)_{ij} := c_{ij} = \sum_{p=1}^{\color{blue}n} a_{i\color{blue}p} b_{\color{brown}pj},
$$
によって計算できる。$n\neq k$ なら $AB$ は存在しない。
- $\color{red}m=\color{green}l$ であれば $BA=D$ が計算でき、その $(i, j)$ 成分は
$$
(D)_{ij} := d_{ij} = \sum_{p=1}^{\color{red}m} b_{i\color{green}p} a_{\color{red}pj} b_{\color{brown}kj},
$$
によって計算できる。$m\neq l$ なら $BA$ は存在しない。
</details>
### 1.2 積の順序
<details>
一般に行列積は非可換
$$AB \neq BA,$$
である一方、結合則は常に満たされる:
$$ABC = (AB)C = BCA.$$
行列の非可換性により、以下のような計算を **やらない** ように気をつける必要がある:
$$
X = Y \Leftrightarrow AX = YA,
$$
左辺には右から $A$ をかけているのに、右辺には左から $A$ をかけてしまっているので、一般に2式は同値ではない。
次節で触れる **逆行列** の積の順序については、
$$
A A^{-1} = A^{-1} A = E,
$$
のように元の行列と可換であることが知られている(証明略)。
</details>
## 2. 逆行列
### 2.1 逆行列の定義
<details>
$A$ を $n$ 次正方行列($n$ 行 $n$ 列の行列)とする。その逆行列 $A^{-1}$ とは、前節末尾に挙げた関係式
$$
A A^{-1} = A^{-1} A = E,
$$
を満たすような行列のことを言う。ここで、$n$ 次単位行列である。**$A$ が正方行列でない場合には、そもそも $A^{-1}$ のようなものは定義されない** ので注意する。
また、**$A$ が正方行列であっても、$A^{-1}$ が存在するとは限らない**。逆行列を持つ行列のことを **正則行列**、持たない行列のことを **非正則行列** と呼ぶ。$n$ 次正則行列 $A$ が逆行列を持つ必要十分条件は、$\text{rank}\,A = n$ である(後述)。
</details>
### 2.2 逆行列の利用
<details>
単位行列は実数の積における $1$ と同様のものである。如何なる行列 $B$ に $E$ をかけても $B$ のままである($EB=BE=B$)ことに注意し、結合則を踏まえると
$$
CD = CED = CA^{-1}AD = (CA^{-1})(AD),
$$
のような計算ができる。
また、方程式
$$
AX = B,
$$
($X$: 未知の行列、$A$, $B$: 既知の行列またはベクトル)が与えられたとき、もし $A^{-1}$ を見つけることができたのであれば、これを両辺に左からかけることで
$$
A^{-1}AX = A^{-1}B \Leftrightarrow EX = A^{-1}B \Leftrightarrow X= A^{-1}B,
$$
のように $X$ について解くことができる。$X$ の具体的な成分を知りたければ、積 $A^{-1}B$ を計算すればよい。
</details>
### 2.3 逆行列の見つけ方
<details>
様々な方法があるが、今回は次節において行基本変形を用いた方法を紹介するにとどめ、その他については次回以降に解説する。
</details>
## 3. 基本変形
### 3.1 行基本変形
<details>
以下の操作を行列の **行基本変形** と呼ぶ:
- $i$ 行目と $j$ 行目を入れ替える。
- $i$ 行目を $k$ 倍する($k\in\mathbb{R}$, $k\neq0$)。
- $i$ 行目に $j$ 行目の $k$ 倍を加える($k\in \mathbb{R}$)。
この変形は、**基本行列** を左からかけることと等価である(演習)。
行基本変形を繰り返すと、すべての行列は以下の **(行)簡約階段行列** と呼ばれる形状に持ち込むことができる:
$$
\begin{pmatrix}
0 & \cdots & 0 &\color{red}{1} & * &\cdots & * & \color{blue}0 & * & \cdots & * & \color{blue}0 & * & \cdots & * \\
0 & \cdots & \cdots & \cdots & \cdots & \cdots & 0 & \color{red}{1} & * &\cdots & * & \color{blue}0 & * & \cdots & * \\
0 & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & 0 & \color{red}{1} & * & \cdots & * \\
0 & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & 0 \\
\vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\
0 & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & 0 \\
\end{pmatrix}
$$
補足すると、
- $0$ で挟まれた $\cdots$ や $\vdots$ は全部 $0$。
- $*$ は何が入ってもよく、$*$ で挟まれた $\cdots$ も何が入ってもよい。
- 赤字で示した $1$ は、各行で **左から見て行ったときにはじめて $0$ でなくなるような要素** で、**主成分(pivot)** と呼ぶ。
- 主成分は必ず $1$ になるようにする。
- **主成分の上は全部 $0$** になるようにする。
- 下に行くほど、主成分は右に来る。
- 全部 $0$ となっているような行は下にまとめる。
のような条件を満たす行列で、どのような行列に対しても、行基本変形でたどり着ける行簡約階段行列は一意に定まる(証明略)。
行簡約階段行列の**主成分の数**(文字通り階段がガタガタ何段あるかと等価)を **階数(rank)** と呼ぶ。行列 $A$ の階数を $\text{rank}\,A$ などと表す。上記は階数が $3$ である行簡約階段行列の例である。すなわち、主成分が $3$ つあるような階段行列である。一般には、主成分の数は $3$ でなくてよい。
ちなみに、単に **(行)階段行列** と言った場合には、上記から条件をいくつか落として
$$
\begin{pmatrix}
0 & \cdots & 0 &\color{red}{*} & * &\cdots & * & * & * & \cdots & * & * & * & \cdots & * \\
0 & \cdots & \cdots & \cdots & \cdots & \cdots & 0 & \color{red}{*} & * &\cdots & * & * & * & \cdots & * \\
0 & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & 0 & \color{red}{*} & * & \cdots & * \\
0 & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & 0 \\
\vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\
0 & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & 0 \\
\end{pmatrix}
$$
としたものである。ここで、
- $0$ で挟まれた $\cdots$ や $\vdots$ は全部 $0$。
- $*$ は何が入ってもよく、$*$ で挟まれた $\cdots$ も何が入ってもよい。
- 赤字で示した $1$ は、各行で **左から見て行ったときにはじめて $0$ でなくなるような要素** で、**主成分(pivot)** と呼ぶ。
- ~~主成分は必ず $1$ になるようにする。~~ → $0$でなければ何でもよい。
- ~~**主成分の上は全部 $0$** になるようにする。~~ → $0$にせずに残しておいてよい。
- 下に行くほど、主成分は右に来る。
- 全部 $0$ となっているような行は下にまとめる。
である。
</details>
### 3.2 列基本変形
<details>
行基本変形で行った議論は、行と列とを取り替えて全くパラレルに進めることができる。すなわち、
- $i$ **列** 目と $j$ **列** 目を入れ替える。
- $i$ **列** 目を $k$ 倍する($k\in\mathbb{R}$, $k\neq0$)。
- $i$ **列** 目に $j$ **列** 目の $k$ 倍を加える($k\in \mathbb{R}$)。
を列基本変形と呼ぶ。この変形は、**基本行列** を **右から** かけることと等価である(演習)。
行階段行列と同じように列階段行列が、行簡約階段行列と同じように列簡約階段行列が定義される。列簡約階段行列の主成分の数もやはり **階数(ランク)** と呼ばれる。行簡約階段行列を作っても、列簡約階段行列を作っても、階数は同じになる(証明略)。
</details>
### 3.3 行列の標準形と階数
<details>
行基本変形と列基本変形を繰り返すことで、あらゆる行列は以下の標準形に直すことができる:
$$
\begin{pmatrix}
\color{red}1 & \color{red}0 & \color{red}0 & \color{red}\cdots & \color{red}0 & \color{blue}0 & \color{blue}\cdots & \color{blue}0\\
\color{red}0 & \color{red}1 & \color{red}0 & \color{red}\cdots & \color{red}0 & \color{blue}\vdots & \color{blue}\cdots & \color{blue}\vdots\\
\color{red}0 & \color{red}0 & \color{red}1 & \color{red}\cdots & \color{red}0 & \color{blue}\vdots & \color{blue}\cdots & \color{blue}\vdots\\
\color{red}\vdots & \color{red}\vdots & \color{red}\vdots & \color{red}\ddots & \color{red}0 & \color{blue}\vdots & \color{blue}\cdots & \color{blue}\vdots\\
\color{red}0 & \color{red}0 & \color{red}0 & \color{red}0 & \color{red}1 & \color{blue}0 & \color{blue}\cdots & \color{blue}0\\
\color{blue}0 & \color{blue}\cdots & \color{blue}\cdots & \color{blue}\cdots & \color{blue}0 & \color{blue}0 & \color{blue}\cdots & \color{blue}0\\
\color{blue}\vdots & \color{blue}\cdots & \color{blue}\cdots & \color{blue}\cdots & \color{blue}\vdots & \color{blue}\vdots & \color{blue}\ddots & \color{blue}\vdots \\
\color{blue}0 & \color{blue}\cdots & \color{blue}\cdots & \color{blue}\cdots & \color{blue}0 & \color{blue}0 & \color{blue}\cdots & \color{blue}0
\end{pmatrix},
$$
ここで、赤字部分は単位行列、青字部分は全て $0$ である。やはり主成分の数を階数と呼び、行基本変形だけ、列基本変形だけで作った行ないし列簡約階段行列の階数と一致する。実用上、**行基本変形が用いられることが多いが、係数が汚くなりがちなので、行も列も自由に基本変形して標準形を目指す方が簡単である**。
</details>
## 4. 基本変形の応用
### 4.1 連立方程式の解法
<details>
$n$ 個の未知数 $x_i$ $(i=1,\cdots,n)$ に対する $m$ 本の連立方程式
$$
\begin{cases}
a_{11} x_1 + a_{12} x_2 + \cdots + a_{1n} x_n = b_1,\\
a_{21} x_1 + a_{22} x_2 + \cdots + a_{2n} x_n = b_2,\\
\hspace{4cm}\vdots\\
a_{m1} x_1 + a_{m2} x_2 + \cdots + a_{mn} x_n = b_m,\\
\end{cases}
$$
は行列を使って
$$
A \boldsymbol{x} = \boldsymbol{b},
$$
とまとめられる。ここで、
$$
A = \begin{pmatrix}
a_{11} & a_{12} & \cdots & a_{1n}\\
a_{21} & a_{22} & \cdots & a_{2n}\\
\vdots & \cdots & \cdots & \vdots\\
a_{m1} & a_{m2} & \cdots & a_{mn}\\
\end{pmatrix}, \qquad \boldsymbol{x} =
\begin{pmatrix}
x_1\\x_2\\\vdots\\x_n
\end{pmatrix}, \qquad \boldsymbol{b} =
\begin{pmatrix}
b_1\\b_2\\\vdots\\b_m
\end{pmatrix},
$$
である。これを解くためには左辺と右辺を同じように変形していけばよい。今、$\boldsymbol{x}$ は未知であるので、左辺は $A$ の部分だけ取り出して、より簡単な行列になるように変形していく。このとき、右辺の $\boldsymbol{b}$ にも同じ変形を施してあげれば、両辺が等しいままに保つことができる。
ここで、左辺 $A\boldsymbol{x}$ に何らかの行列をかけて変形するためには、行列を **左から** かけるしかないことに注意する。つまり、ある行列 $M$ を右からかけて $A\to AM$ とし、右辺では$\boldsymbol{b}\to \boldsymbol{b}M$ としてしまうと、
方程式全体では
$$
AX = \boldsymbol{b},\quad \Rightarrow \quad AMX = \boldsymbol{b}M,
$$
としたことになるが、$A$ と $X$ の間に勝手に $M$ をかけることはできない。一方で、左からかける場合は $A \to MA$、$\boldsymbol{b}\to M\boldsymbol{b}$ は、
$$
AX = \boldsymbol{b},\quad \Rightarrow \quad MAX = M\boldsymbol{b},
$$
をやっていることに対応するが、これは、両辺に対し平等に左から $M$ をかけているので、式変形として妥当である。今、$AX = \boldsymbol{b} \Rightarrow MAX = M\boldsymbol{b}$ のように書いたが、できれば元の式の **同値変形** ($\Rightarrow$ ではなく $\Leftrightarrow$)にすることで、元の方程式が持っていた情報を損わないようにしたい。実は、前節までに紹介した基本変形に対応する行列(基本行列)は正則行列、すなわち、逆行列を持つ。よって、$M$ として基本行列を持ちいれば、同値変形と言える。
以上のことを機械的に行うには、以下のようにすればよい:
$$
\left(
\begin{array}{c|c}
A & \boldsymbol{b}
\end{array}
\right) \to
\left(
\begin{array}{c|c}
M_1A & M_1\boldsymbol{b}
\end{array}
\right) \to
\left(
\begin{array}{c|c}
M_2M_1A & M_2M_1\boldsymbol{b}
\end{array}
\right)\to\cdots \to \left(
\begin{array}{c|c}
MA & M\boldsymbol{b}
\end{array}
\right).
$$
ここで、$|$ で区切って係数を並べた行列を、拡大係数行列と呼ぶ。( $|$ は省略することもある。)
ここで、基本変形を $k$ 回行っていた場合、最後の行列 $M$ は $M = M_k M_{k-1}\cdots M_1$ である。最後の行列は **行簡約階段行列** となるようにする。もし $A$ が逆行列を持つ場合、この段階で、$M = A^{-1}$ となっており、$M\boldsymbol{b} = A^{-1}\boldsymbol{b}$ は連立方程式の解となっている。すなわち、拡大係数行列の左側がもし単位行列になっていれば、右側は連立方程式の答えそのものとなる。そうでなくとも、行基本変形により行簡約階段系に持っていけば、元の連立方程式よりも随分整理されたものとなっている。変換後の左部分を $MA=A'$、右部分を$M\boldsymbol{b}=\boldsymbol{b}'$ と書くと、元の方程式 $A\boldsymbol{x} = \boldsymbol{b}$ は $A'\boldsymbol{x} = \boldsymbol{b}'$ と同値変形されたことになるのだ。
</details>
### 4.2 方程式 $A\boldsymbol{x}=\boldsymbol{b}$ の解と階数
<details>
$m$ 行 $n$ 列の行列 $A$ の階数は、ラフに言えば $A$ の行を構成する $m$ 個の行ベクトルが持つ独立な成分の数を表している(線型空間について学んでから、このことのより正確な意味について考えることにする)。例えば、$3$ つの未知数について $3$ 本の連立方程式を用意すれば、例外的な状況を除いて基本的には解くことができる。この例外が起きているとき、つまり、$3$ つの方程式があるように見えるものの、うち $2$ 本を使えばもう $1$ 本が導けてしまうような場合には、この連立方程式には $2$ 本分しか価値がない。階数は、このような状況を判断するのに利用することができる。以下で具体的に見ていこう。
連立一次方程式
$$
AX = \boldsymbol{b},
$$
($A$: $m\times n$ 行列, $X$: $n$ 成分列ベクトル, $\boldsymbol{b}$: $m$ 成分列ベクトル)を考える。このとき、前節にならって行列 $A$ に $\boldsymbol{b}$ をくっつけた拡大係数行列を
$$
(A\mid \boldsymbol{b})
$$
と書くことにする。
この方程式の解の個数は、以下のように階数と密接に関係している。
</details>
### (i) 解が存在するかどうか(整合性の判定)
<details>
- $AX=\boldsymbol{b}$ に**解が存在する(整合である)**ための必要十分条件は:
$$
\mathrm{rank}\,A = \mathrm{rank}\,(A\mid B)
$$
- $\mathrm{rank}(A) \neq \mathrm{rank}(A\mid B)$ のとき、矛盾が生じて解が存在しない(不整合)。
これは、行基本変形により $(A \mid B)$ を簡約化したときに、
$$
(0\ 0\ \cdots\ 0\ |\ \text{非0})
$$のような矛盾する行が出てくるかどうかに対応している。(そのような行は、$0 x_1 + 0 x_2 + \cdots 0 x_n = b_m (\neq 0)$ を意味し、これは明らかにおかしい。)
</details>
### (ii) 解の一意性と自由度(未知数の個数との比較)
<details>
- 解が存在するとして、さらに
$$
\mathrm{rank}\,A = n
$$ であれば、解はただ一つ(唯一解)。
- $\mathrm{rank}\,A < n$ の場合は、解があれば無数に存在する(パラメータを含む)。
このとき、未知数の個数 $n$ に対し、$\mathrm{rank}\,A = r$ とおくと、
$$
\text{自由変数の個数} = n - r
$$ となり、$n - r$ 個の任意定数を含んだ形で一般解が書ける。
</details>
### まとめ:連立一次方程式 $A\boldsymbol{x} = \boldsymbol{b}$ の解の存在と個数
<details>
| 条件 | 解 $\boldsymbol{x}$ の個数 | 備考 |
|-----------------|---------------------|------------------------------|
| $r = \text{rank}\,A = \text{rank}([A\mid \boldsymbol{b}]) = n$ | 一意解が存在する | |
| $r = \text{rank}\,A = \text{rank}([A\mid \boldsymbol{b}]) < n$ | 無限に多くの解が存在する | パラメータ表示が可能(自由変数が $n - r$ 個存在) |
| $\text{rank}\,A < \text{rank}([A\mid \boldsymbol{b}])$ | 解なし | 矛盾する条件が含まれている |
</details>
### 4.2 基本変形による逆行列の求め方
### 4.2.1 基礎となる考え方
<details>
$n$ 次正方行列 $A$ に対して、$A^{-1}$ を求めたいとする。
ここで、行基本変形を $A$ に施して $E$ に変形することができれば、その変形と同じものを $E$ に施せば、それは $A^{-1}$ になる。
すなわち、
$$
A \xrightarrow[\text{行基本変形}]{\text{同時に}} E,
$$
としたとき、$E$ だった方は
$$
E \xrightarrow[\text{同じ変形}]{\text{同時に}} A^{-1},
$$
となる。
</details>
### 4.2.2 実際の手順
<details>
1. 行列 $A$ の右に単位行列 $E$ を並べて、拡張行列 $(A\mid E)$ を作る:
$$
\left( A\ \bigg|\ E \right)
$$
2. 行基本変形を使って、左側を単位行列にする:
$$
\left( A\ \bigg|\ E \right) \xrightarrow{\text{行基本変形}} \left( E\ \bigg|\ A^{-1} \right)
$$
3. もし左側が $E$ に変形できなければ(すなわち $\mathrm{rank},A < n$)、$A^{-1}$ は存在しない($A$ は非正則行列)。
</details>