CR分解 – 行と列のランクはなぜ等しいか

これは何?

書籍『図解線形代数:ストラング流直感的理解』から、トピックを紹介する短い記事です。今回は、「行列の行ランクと列ランクがなぜ等しいか」ついて、証明ではなく直感的に理解する方法について書いてみます。

行列のランクは、その行列を構成する線形独立な行または列ベクトルの数のことです。

  • 行ランク: 線形独立な行ベクトルの数
  • 列ランク: 線形独立な列ベクトルの数

実際、この2つのランクは等しいことが知られていますが、これを $CR$ 分解によって直感的に示しましょう。この説明を初めて Strang 先生から聞いた時、目から鱗が落ちました。これを Aha 体験というのでしょう!

$CR$分解を用いて、「行ランクと列ランクが等しい理由」を解説します。
$$
A = \begin{bmatrix}
2 & 2 & 4 \\
4 & 4 & 8 \\
1 & 2 & 3
\end{bmatrix}
$$

列ランクは2

こんな行列があったとき、次のような手順で行列を分解します。まず、列について左から順に1列ずつ見ていきます。そして、線形独立なのものを残し、列を集めていきます。1列目、2列目と見ていって、これまで出てきたものの線型結合で表現できるもの(線形従属なもの)があれば、それは、省いて集めます。省いたものは、他の列の線形結合で表現します。

この例だと、1列目と2列目は「目で見て」で線形独立なので残します(3行目だけずれている)。3列目はどうでしょう? 同様に目で見て、

  • 3列目 = 1列目 + 2列目

となっていることが分かります。ですので、3列目は、1,2列目の線形結合です。これを行列分解の形で表してみましょう。
$$
\begin{bmatrix}
2 & 2 & 4 \\
4 & 4 & 8 \\
1 & 2 & 3 \\
\end{bmatrix} = \begin{bmatrix}
2 & 2 \\
4 & 4 \\
1 & 2 \\
\end{bmatrix} \begin{bmatrix} 1 & 0 & ?\\
0 & 1 & ?
\end{bmatrix}
$$

と書けるのがわかりますか?1列目と2列目を使って、それぞれを $(1,0), (0,1)$と表現できます(右の行列の列)。そして、3列目は、$(1,1)$と表現できるので、
$$
\begin{align}
\begin{bmatrix} 2\\ 4\\ 1\\ \end{bmatrix} =
(1)\begin{bmatrix} 2 \\ 4 \\ 1 \\ \end{bmatrix}
+ (0) \begin{bmatrix} 2 \\ 4 \\ 2 \end{bmatrix} \\

\begin{bmatrix} 2\\ 4\\ 2\\ \end{bmatrix} =
(0)\begin{bmatrix} 2 \\ 4 \\ 1\\ \end{bmatrix}
+ (1) \begin{bmatrix} 2 \\ 4 \\ 2 \end{bmatrix} \\

\begin{bmatrix} 4\\ 8\\ 3\\ \end{bmatrix} =
(1)\begin{bmatrix} 2 \\ 4 \\ 1\\ \end{bmatrix}
+ (1) \begin{bmatrix} 2 \\ 4 \\ 2 \end{bmatrix}
\end{align}
$$
となるのが分かりますか?こんな風に目がなれるといいでしょう。

よって、これをまとめて書くと、
$$
\begin{bmatrix}
2 & 2 & 4 \\
4 & 4 & 8 \\
1 & 2 & 3 \\
\end{bmatrix}
= \begin{bmatrix}
2 & 2 \\
4 & 4 \\
1 & 2 \\
\end{bmatrix} \begin{bmatrix}
1 & 0 & 1\\
0 & 1 & 1
\end{bmatrix}
$$
すなわち、
$$
A = CR
$$
となります。$C$ が独立な列のセット、$R$ の列成分がそれに掛かる係数です。記号的に書くと、
$$
A = \begin{bmatrix}
| & | & | \\
\ba_1 & \ba_2 & \ba_3 \\
| & | & |
\end{bmatrix}
$$
として、
$$
\begin{align}
\ba_1 = (1)\ba_1 + (0)\ba_2 \\
\ba_2 = (0)\ba_1 + (1)\ba_2 \\
\ba_3 = (1)\ba_1 + (1)\ba_2
\end{align}
$$
行列でまとめて書いて、
$$
A = \begin{bmatrix}
| & | & | \\
a_1 & a_2 & a_3 \\
| & | & |
\end{bmatrix}
= \begin{bmatrix}
| & | \\
a_1 & a_2 \\
| & |
\end{bmatrix} \begin{bmatrix}
1 & 0 & 1\\
0 & 1 & 1\\
\end{bmatrix} = CR
$$

ここまでの手順で、列ランクは2ということが分かります。この過程で2つの線形独立な列ベクトルが得られたのですから

(※この手順でできた列ベクトルの集合を、列空間=列ベクトルの張る部分空間の「ゴーシュ基底」と呼ぶことが提案されています。ゴーシュはフランス語で左を意味します)。

行ランクも2

元の式に戻って、行のランクに移ります。

$$
A =\begin{bmatrix}
2 & 2 & 4 \\
4 & 4 & 8 \\
1 & 2 & 3
\end{bmatrix}
= \begin{bmatrix}
2 & 2 \\
4 & 4 \\
1 & 2
\end{bmatrix} \begin{bmatrix}
1 & 0 & 1\\
0 & 1 & 1
\end{bmatrix} = CR
$$
この式を別の見方で見てみます。まず、$R$ の行ベクトルは線形独立になっていることがわかりますか?必ず、行数と同じ大きさの単位行列(正方行列)を含んでいます。 $C$ の列数と $R$ の行数は等しいはず。そして、今度は、 $A$ の行ベクトルに注目。
$$
A = \begin{bmatrix}
– \ba^*_1 – \\ – \ba^*_2 -\\ – \ba^*_3 –
\end{bmatrix}
$$
として、
$$
\begin{align}
\ba^*_1 = \begin{bmatrix} 2 & 2 & 4 \end{bmatrix} =
(2)\begin{bmatrix} 1 & 0 & 1 \\ \end{bmatrix}
+ (2) \begin{bmatrix} 0 & 1 & 1 \end{bmatrix} \\

\ba^*_2 = \begin{bmatrix} 4 & 4 & 8 \end{bmatrix} =
(4)\begin{bmatrix} 1 & 0 & 1 \end{bmatrix}
+ (4) \begin{bmatrix} 0 & 1 & 1 \end{bmatrix} \\

\ba^*_3 = \begin{bmatrix} 1 & 2 & 3 \end{bmatrix} =
(1)\begin{bmatrix} 1 & 0 & 1 \end{bmatrix}
+ (2) \begin{bmatrix} 0 & 1 & 1 \end{bmatrix}
\end{align}
$$
すなわち、
$$
A=CR
$$
です。$A$ の各行は、右側に現れた $R$ 行列の各行を使って、 それらの線形結合($C$が係数)で表されているのです!すなわち、行ランクも2です。見方は、こんな感じです。

何が起こっているの?

最初は $A$ の線形独立な列を集めていました( $C$ ) 。その数が列ランクであり、2です。 $A$ の全ての列ベクトルは、$C$ の2つの列ベクトルの線形結合で表現され、その係数が $R$ の列に現れます。

出来上がった分解をよく見ると、$A$ の各行も、2つの線形独立な行ベクトル($R$ の2つの行)の線形結合になっていて、その係数が $C$ に現れます。すなわち、行ランクも2なのです。行列計算のルール上、 $C$ の列数は $R$ の行数と同じです。 $C$ の列数(2)と同じ大きさの単位行列( $2 \times 2$ )が $R$ に現れることが核心です。

$C$ と $R$ はそれぞれ役割を変えて、「列ベクトルと線形結合の係数」、「線形結合の係数と行ベクトル」を表現し、それらの掛け算として $A$ が表現されるのです。

$C$の行数(線形独立の列数)と $R$ の行数(線形独立な行数)が等しいので、「列ベクトルのランクと行ベクトルのランクは等しい」、と言うことができます。
$$
\rank A = \rank A\transp
$$
説明は以上です!

$CR$ 分解

この分解を「 $CR$ 分解」といいます。 $C$ は列(column)、 $R$ は行(row)を表します。そして、$R$ を行簡約階段形(reduced row echelon form)といいます。おなじみ、ガウス・ジョルダンの消去法に出てくる形で、ピボット1が上からの階段になっていて、ピボット上下はすべて 0 となる形です。

※ただし、普通にガウス・ジョルダンの消去法を行うと、最下行には元の $A$ と同じ行数になるように、0ばかりからなる行が残ります。ここでの $R$ はその「0ばかりの行」を取り除いたものです。

ここから何が言える?

行列 $A$ の列空間(列ベクトルが張る空間)を $\bCSpace(A)$ と書き、行空間(行ベクトルが張る空間)を $\bCSpace(A\transp)$ と書きます( $A\transp$ は $A$ の転置)。ここまでの議論で、
$$
\rank A = \rank A\transp
$$
空間の言葉で書くと、
$$
\dim \bCSpace(A) = \dim \bCSpace(A\transp)
$$
が言えました。詳しくは下記「4つの部分空間」の記事に譲りますが、このことと、行列 $A$ の零空間 $ = \bNSpace(A)$ が行空間 $\bCSpace(A\transp)$ と直交していることを使うと、次元定理(rank-nullity theorem)が言えます。

$A \in \bR^{m \times n}$ とすると、
$$
n = \dim \bCSpace(A) + \dim \bNSpace(A)
$$

もしくは写像の言葉で、$A$ によって表される $V=\bR^n$ から $W=\bR^m$ への線形写像を $f$ 、とすると、その核 $f^{-1}(\bzero)$ の次元と像 $f(V)$ の次元を足すと、定義域の次元になる、すなわち、
$$
f(V) = \{ A\bx \mid \bx \in V \},\quad f^{-1}(\bzero) = \{ \bx \in V \mid f(\bx) = \bzero \}
$$
として、
$$
\dim V = \dim f(V) + \dim f^{-1}(\bzero)
$$

の関係が成り立ちます。これが、初等線形代数の第一のハイライトです。詳しくは、以下の記事を。

1 枚まとめ

$A$ の数字は本文とは違います。本の中の例です。

このブログについて

この記事は、『図解線形代数:ストラング流直感的理解』のブログシリーズです。こちらに本全体の紹介ページ、他のブログ記事があります。


CR分解 – 行と列のランクはなぜ等しいか」への1件のフィードバック

  1. ピンバック: an Agile Way

返信する