$\phantom{}$$
\newcommand\nr{\notag\\}%タグなし改行用
\newcommand\ret{\notag\\&\qquad}%数式改行用
\newcommand\I{\mathrm{i}}
\newcommand\D{\mathrm{d}}
\newcommand\E{\mathrm{e}}
\newcommand\hc{\mathrm{h.c.}}
\newcommand\cc{\mathrm{c.c.}}
\newcommand\O[1]{\mathscr{O}\left(#1\right)}
\newcommand\abs[1]{{\left\rvert #1 \right\lvert}}
\newcommand\Res{\mathop{\mathrm{Res}}}
\newcommand\bra[1]{\mathinner{\langle{#1}|}}
\newcommand\ket[1]{\mathinner{|{#1}\rangle}}
\newcommand\braket[1]{\mathinner{\langle{#1}\rangle}}
\newcommand\Bra[1]{\left\langle#1\right|}
\newcommand\Ket[1]{\left|#1\right\rangle}
\newcommand\Braket[1]{\left\langle #1 \right\rangle}
\newcommand|{\middle|}%\Braket用
\DeclareMathOperator{\Log}{Log}
\DeclareMathOperator{\Arg}{Arg}
\DeclareMathOperator{\sgn}{sgn}
\DeclareMathOperator{\Tr}{Tr}
\newcommand\dashint{\mathchoice
{\int\kern-10pt-}
{\int\kern-8.5pt-}
{\int\kern-6.1pt-}
{\int\kern-4.58pt-}}
\newcommand\set[1]{\left\{#1\right\}}
\newcommand\for[1]{\quad\mathrm{for}\quad #1}
\newcommand\LHS{\mathrm{(LHS)}}
\newcommand\RHS{\mathrm{(RHS)}}
$量子論の民は,或る変態が生み出したブラケット記法という特殊技能が大好きであり,
日々,隙あらば完備関係式をあちこちに挿入しまくるという遊びに没頭している.
この記事は,一般人にもこの遊びに親しめるようになって頂くためのものである.
ただし,ブラケット記法を導入するのではなく,あくまで普通の行列操作の範囲で,その精神だけを輸入するものとする.
ブラケット記法の精神における線型代数
最初に標準ベクトルを取り上げよう.これは最も単純なベクトルでありながら,ここで説明する行列操作の全ての基本を我々に与えてくれる.
標準ベクトルの導入と正規直交完全性
$n\times n$の単位行列を$E^n$として,各列ベクトルを$\vec{e}_j^n$と書く:
\begin{align}
E^n = :\begin{pmatrix}
\vec{e}_1^n & \vec{e}_1^n & \cdots \vec{e}_n^n
\end{pmatrix}. \tag{1}\label{eq:en}
\end{align}
$\vec{e}_j^n$は標準ベクトルと呼ばれる.標準ベクトルは次の重要な恒等式を満たしている:
\begin{align}
(\vec{e}_i^n)^\dagger\vec{e}_j^n & = \delta_{ij}, \tag{2}\label{eq:orth} \\
\sum_{j = 1}^n \vec{e}_j^n (\vec{e}_j^n)^\dagger & = E^n, \tag{3}\label{eq:comp}
\end{align}
ここで$\dagger$記号は転置して複素共役をとる演算とする ($\vec{e}_j^n$の場合,その要素は1と0だけなので転置操作に等しい).
($\ref{eq:orth}$) の性質を正規直交性, ($\ref{eq:comp}$) の性質を完全性と呼び,合わせて正規直交完全性という.
一般に,正規直交完全性を満たすベクトルの集合を正規直交完全基底と呼ぶ.今の場合,$\set{\vec{e}_j^n|1\le j\le n}$は$n$次元数ベクトル空間の正規直交完全基底となっている.
($\ref{eq:orth}$) 自体は直交関係式, ($\ref{eq:comp}$) は完備関係式と呼ぶことにする.完備関係式は単位行列を置ける場所にならどこにでも挿入できるため非常に強力である.この威力を以下の例で見ていくことにしよう.
ベクトルの基本的な遊び方
ベクトルから始める.
$n$次元数ベクトル$\vec{x}^n$を$n$行1列の行列と同一視すると
$\vec{x}^n = E^n \vec{x}^n$と書けて,完備関係式 ($\ref{eq:comp}$) を挿入できる:
\begin{align}
\vec{x}^n = \sum_{j = 1}^n \vec{e}_j^n \left[(\vec{e}_j^n)^\dagger \vec{x}^n\right], \tag{4}\label{eq:xn}
\end{align}
ここで敢えて大括弧で括ったのは,
この式を「大括弧内を展開係数とする$\vec{x}^n$の$\vec{e}_j^n$による展開」と解釈するためである
(任意の$n$次元数ベクトルが$\set{\vec{e}_j^n}$で展開できるのだから,それはまさに「完全」である).
実際,大括弧の左にいる$\vec{e}_j^n$を行列表現に移行すれば,
\begin{align}
\vec{x}^n
=
\begin{pmatrix}
(\vec{e}_1^n)^\dagger \vec{x}^n \\
(\vec{e}_2^n)^\dagger \vec{x}^n \\
\vdots \\
(\vec{e}_n^n)^\dagger \vec{x}^n
\end{pmatrix}
\equiv
\begin{pmatrix}
x_1 \\
x_2 \\
\vdots \\
x_n
\end{pmatrix}
,
\end{align}
となることから$\vec{x}^n$の第$j$成分:$x_j$が$(\vec{e}_j^n)^\dagger \vec{x}^n$になっていること:
\begin{align}
x_j\equiv (\vec{e}_j^n)^\dagger \vec{x}^n, \tag{5}\label{eq:xn2}
\end{align}
が理解されよう.
要するに 「ベクトルの成分が欲しかったらそのベクトルの左側から標準ベクトルのHermite共役を作用させろ!」 及び 「その形を見たらベクトルの成分 (行列でなく只の数) だと思え!」 である.
($\ref{eq:xn}$) をみて「ベクトル代数を考える上で,$x_j$のような具体的なベクトル成分を理論の中に陽に導入することは本質ではないかもしれない…」と思った人がいれば,
それは数ベクトル空間から抽象ベクトル空間へシフトしていくための重要な考え方である.
しかし残念ながら,ここでの扱いにおいてベクトルの抽象化は完全ではない.例えば,完備関係式 ($\ref{eq:comp}$) に具体的な数値成分を持った「単位行列」がいることからも示唆されよう.
この記事では,あくまで数値的に具象化されたベクトルや行列の取り回しを上手くやろうというのが主眼である.
というわけで,次は行列を考えよう.
行列の基本的な遊び方
$A^{mn} = A^{mn}E^n$と ($\ref{eq:en}$) より行列計算によって
\begin{align}
A^{mn} = \begin{pmatrix}
A^{mn}\vec{e}_1^n & A^{mn}\vec{e}_2^n & \cdots & A^{mn}\vec{e}_n^n
\end{pmatrix}, \tag{6}\label{eq:ae}
\end{align}
となる.よって
\begin{align}
A^{mn}\vec{e}^n_j,
\end{align}
は$A^{mn}$の$j$番目の列ベクトルになっている.
要するに, 「行列の列ベクトルが欲しかったらその行列の右側から標準ベクトルを作用させろ!」 及び 「その形を見たら列ベクトルだと思え!」 である.
$A^{mn}$の$j$番目の行ベクトルを取り出すには上式を少し工夫して用いれば良い.
即ち,$A^{mn}$の$j$番目の行ベクトルを得るには,$(A^{mn})^\dagger$の第$j$列ベクトルを取り出したあと,更にHermite共役を取れば良いであろう,というわけだ.
従って,$((A^{mn})^\dagger \vec{e}^m_j)^\dagger$を整理したもの:
\begin{align}
(\vec{e}^m_j)^\dagger A^{mn},
\end{align}
が$A^{mn}$の$j$番目の行ベクトルとなる.
要するに, 「行列の行ベクトルが欲しかったらその行列の左側から標準ベクトルのHermite共役を作用させろ!」 及び 「その形を見たら行ベクトルだと思え!」 である.
まとめると,
\begin{align}
A^{mn}
=
\begin{pmatrix}
A^{mn}\vec{e}_1^n & A^{mn}\vec{e}_2^n & \cdots & A^{mn}\vec{e}_n^n
\end{pmatrix}
=
\begin{pmatrix}
(\vec{e}_1^m)^\dagger A^{mn} \\
(\vec{e}_2^m)^\dagger A^{mn} \\
\vdots \\
(\vec{e}_m^m)^\dagger A^{mn}
\end{pmatrix}
, \tag{7}\label{eq:rg}
\end{align}
と表現できる.このような行列表現に頼らずに列ベクトルから行列を復元するには$A^{mn} = A^{mn}E^n$を用いて完備関係式 ($\ref{eq:comp}$) を挿入すれば良い.
一方,行ベクトルから行列を復元するには$A^{mn} = E^m A^{mn}$を用いて完備関係式 ($\ref{eq:comp}$) を挿入すれば良い:
\begin{align}
A^{mn}
=
\sum_{j = 1}^n
\left[A^{mn}\vec{e}^n_j\right]
(\vec{e}^n_j)^\dagger
=
\sum_{j = 1}^m
\vec{e}^m_j
\left[(\vec{e}^m_j)^\dagger A^{mn}\right], \tag{8}\label{eq:retugyou}
\end{align}
ここで第2辺の大括弧部分が$A^{mn}$の第$j$列ベクトル,第3辺の大括弧部分が第$j$行ベクトルになっている.
このように全く機械的に行列分解が可能である.
先述したように,ベクトルの各成分は左から標準ベクトルのHermite共役を作用させれば抽出できるのだったから,
\begin{align}
(\vec{e}^m_i)^\dagger \left[A^{mn}\vec{e}^n_j\right] = (\vec{e}^m_i)^\dagger A^{mn}\vec{e}^n_j,
\end{align}
は$A^{mn}$の第$j$列ベクトルの$i$成分,即ち,$A^{mn}$の$(i,j)$要素:$(A^{mn})_{ij}$ということになろう.
全く同じことであるが,
\begin{align}
\left[(\vec{e}^m_i)^\dagger A^{mn}\right] \vec{e}^n_j = (\vec{e}^m_i)^\dagger A^{mn}\vec{e}^n_j,
\end{align}
は$A^{mn}$の第$i$行ベクトルの$j$成分,即ち,これまた$A^{mn}$の$(i,j)$要素:$(A^{mn})_{ij}$ということになろう.
これらのことを念頭におけば,$A^{mn} = E^m A^{mn} E^n$に2度完備関係式 ($\ref{eq:comp}$) を使用して得られる式:
\begin{align}
A^{mn} = \sum_{i = 1}^m\sum_{j = 1}^n \vec{e}^m_i \left[(\vec{e}^m_i)^\dagger A^{mn}\vec{e}^n_j\right](\vec{e}^n_j)^\dagger \tag{9}\label{eq:amn}
,
\end{align}
の解釈の方針ははっきりしている.即ち,大括弧部分を一塊で見ることが重要であり,然らばそこは単なる数となっていて,行列成分$(A^{mn})_{ij}$に一致する.
また,標準ベクトルを2本同時に使うことで行列をも展開できるのである.実際に行列表現してみることで確かめてみよう.
$(\vec{e}^m_i)^\dagger A^{mn}\vec{e}^n_j$を一塊で見れば,そこはもはや行列ではなく単なる数であるから
\begin{align}
\vec{e}^m_i \left[(\vec{e}^m_i)^\dagger A^{mn}\vec{e}^n_j\right]= \left[(\vec{e}^m_i)^\dagger A^{mn}\vec{e}^n_j\right] \vec{e}^m_i,
\end{align}
のように場所を入れ替えても構わない (こういう発想はこの記事では非常に大切である):
\begin{align}
A^{mn} = \sum_{i = 1}^m\sum_{j = 1}^n \left[(\vec{e}^m_i)^\dagger A^{mn}\vec{e}^n_j\right] \vec{e}^m_i (\vec{e}^n_j)^\dagger,
\end{align}
ここで$\vec{e}^m_i (\vec{e}^n_j)^\dagger$は$m$行$n$列の行列 (行列単位と呼ばれる) になっていて,その$(k,l)$要素は
\begin{align}
[\vec{e}^m_i (\vec{e}^n_j)^\dagger]_{kl} =
\begin{cases}
1 & [k = i,l = j] \\
0 & \text{for others}
\end{cases},
\end{align}
となっていることに気をつけると
\begin{align}
A^{mn} =
\begin{pmatrix}
(\vec{e}^m_1)^\dagger A^{mn}\vec{e}^n_1 & (\vec{e}^m_1)^\dagger A^{mn}\vec{e}^n_2 & \cdots & (\vec{e}^m_1)^\dagger A^{mn}\vec{e}^n_n \\
(\vec{e}^m_2)^\dagger A^{mn}\vec{e}^n_1 & (\vec{e}^m_2)^\dagger A^{mn}\vec{e}^n_2 & \cdots & (\vec{e}^m_2)^\dagger A^{mn}\vec{e}^n_n \\
\vdots & \vdots & \vdots & \vdots \\
(\vec{e}^m_m)^\dagger A^{mn}\vec{e}^n_1 & (\vec{e}^m_m)^\dagger A^{mn}\vec{e}^n_2 & \cdots & (\vec{e}^m_m)^\dagger A^{mn}\vec{e}^n_n \\
\end{pmatrix}
,
\end{align}
なる行列表現が得られ,我々が期待した結果:
\begin{align}
(A^{mn})_{ij}\equiv(\vec{e}^m_i)^\dagger A^{mn}\vec{e}^n_j,
\end{align}
が上手くいっていることがわかる.
要するに, 「行列の成分が欲しかったらその行列を標準ベクトルで挟め! (ただし左側はHermite共役)」 及び 「その形を見たら行列成分 (行列でなく只の数) だと思え!」 である.
この節の最後に, ($\ref{eq:amn}$) を応用すると数から行列を直接作成できることを指摘しておく.
例えば,$a_{ij}$を$(i,j)$成分にもつ$p\times q$の行列$M^{pq}$を作りたければ,
\begin{align}
M^{pq}: = \sum_{i = 1}^p\sum_{j = 1}^q \vec{e}_i^p a_{ij} (\vec{e}_j^q)^\dagger, \tag{10}\label{eq:mpq}
\end{align}
とすればよい.
小括
標準ベクトルを完備関係式 ($\ref{eq:comp}$) の形に表示して上手く操れば,
ベクトルとその成分,及び,行列と行列要素を其々 ($\ref{eq:xn}$) 及び ($\ref{eq:amn}$) のようにダイレクトに繋ぐことができ,
同時に,行列計算・行列要素の計算・列 (行) ベクトルの計算 ($\ref{eq:retugyou}$) などをシームレスに行ったり来たりすることができるようになった.
もはや,行列を表すのに行列要素を方眼状に書く必要はない.
これらに加えて, ($\ref{eq:mpq}$) によって数から行列を直接生成することも可能となった.
一般の正規直交完全基底
ベクトルと行列を操る上で重要だったのは,標準ベクトルが備える正規直交完全性であった.
従って,他の正規直交完全基底で同じことをやったらどうなるか気になるところである.
まず,$\set{\vec{e}_j^n}$から次のベクトルを用意しよう:
\begin{align}
\vec{u}_j^n: = U^n\vec{e}_j^n,
\end{align}
ここで$U^n$は$(U^n)^\dagger = (U^n)^{-1}$を満たす或る$n\times n$の行列 (ユニタリ行列) である.
容易に確かめられるように,$\set{\vec{u}_j^n}$は次の正規直交完全性を満たしている:
\begin{align}
(\vec{u}_i^n)^\dagger \vec{u}_j^n & = \delta_{ij}, \tag{11}\label{eq:tyokkou2} \\
\sum_{j = 1}^n\vec{u}_j^n (\vec{u}_j^n)^\dagger & = E^n. \tag{12}\label{eq:comp2}
\end{align}
これらで挟まれた行列は
\begin{align}
(\vec{u}_i^m)^\dagger
A^{mn}
\vec{u}_j^n
& =
(\vec{e}_i^m)^\dagger
(U^m)^\dagger
A^{mn}
U^n
\vec{e}_j^n
=
\left[
(U^m)^\dagger
A^{mn}
U^n
\right]_{ij}
,
\end{align}
となり,$A^{mn} = E^mA^{mn}E^n$へ完備関係式 ($\ref{eq:comp2}$) を挿入することにより
\begin{align}
A^{mn} = \sum_{i = 1}^m\sum_{j = 1}^n \vec{u}_i^m
\left[
(U^m)^\dagger
A^{mn}
U^n
\right]_{ij}
(\vec{u}_j^n)^\dagger,
\end{align}
という表示を得る.従って$A^{mn}$が$ (U^m)^\dagger A^{mn} U^n$という新しい行列の要素による表示に移ったことになる.
標準ベクトルによる表示と比較すると,
\begin{align}
A^{mn} = \sum_{i = 1}^m\sum_{j = 1}^n \vec{u}_i^m
\left[
(U^m)^\dagger
A^{mn}
U^n
\right]_{ij}
(\vec{u}_j^n)^\dagger
= \sum_{i = 1}^m\sum_{j = 1}^n \vec{e}_i^m
\left[
A^{mn}
\right]_{ij}
(\vec{e}_j^n)^\dagger
,
\end{align}
となっており,変換前後の行列要素が基底ベクトルを介して適切に等号で結ばれている.この恒等式の導出に余計なことを考える必要は全くない.大事なことは唯一つ, 「基底変換したかったらその基底による完備関係式を挿入しろ!」 である.
場合によっては行空間と列空間の其々で別基底を使いたいときもあるだろうが,やることは単純で
\begin{align}
A^{mn}
= \sum_{i = 1}^m\sum_{j = 1}^n \vec{e}_i^m
\left[
A^{mn}
U^n
\right]_{ij}
(\vec{u}_j^n)^\dagger
,
\end{align}
と行った具合である.
ここで$1\times 1$の行列の複素共役はHermite共役と等価であることから,
\begin{align}
\left[
(\vec{u}_i^m)^\dagger
A^{mn}
\vec{u}_j^n
\right]^*
& =
(\vec{u}_j^n)^\dagger
(A^{mn})^\dagger
\vec{u}_i^m
, \tag{13}\label{eq:cc}
\end{align}
あるいは同じことであるが,
\begin{align}
\left[
(U^m)^\dagger
A^{mn}
U^n
\right]_{ij}^*
=
\left[
(U^n)^\dagger
(A^{mn})^\dagger
U^m
\right]_{ji},
\end{align}
が成立することを強調しておく.
以上の関係式は,標準ベクトルからユニタリ変換で移れる全ての基底が備える性質となる.
その他の基底
世の中には正規直交基底でなくとも有用な基底が存在する.
例えばJordan基底はそれであろう.
このような場合にも今の取り組みを援用できないか検討しよう.
$n$次元数ベクトル空間の任意の基底$\set{\vec{p}_j^n|1\le j\le n}$は,或る正則行列$P^n$によって
\begin{align}
\vec{p}_j^n = P^n\vec{e}_j^n,
\end{align}
と表される.ところが,先程までとは違って,一般には$\vec{p}_j^n$と$(\vec{p}_j^n)^\dagger$の対は正規直交完全性を満たさない.
$\vec{p}_j^n$と対になるベクトルは$P^n$の逆行列を用いた
\begin{align}
(\hat{p}_j^n)^\dagger : = (\vec{e}_j^n)^\dagger (P^n)^{-1},
\end{align}
が相当する.然らば,
\begin{align}
(\hat{p}_i^n)^\dagger \vec{p}_j^n & = \delta_{ij}, \tag{14}\label{eq:tyokkou3} \\
\sum_{j = 1}^n \vec{p}_j^n (\hat{p}_j^n)^\dagger & = E^n, \tag{15}\label{eq:comp3}
\end{align}
という正規直交完全性のような式が成立する.
これらの式を運用していくと,
\begin{align}
(\hat{p}_i^m)^\dagger A^{mn} \vec{p}_j^n
& = \left[ (P^m)^{-1} A^{mn} P^n \right]_{ij}, \tag{16}\label{eq:amnq}
\end{align}
という形の行列要素をメインに扱うことになるだろう.
また,上式の絶対値の2乗を知りたいような場合,対応する共役複素数が必要となる.その時は, ($\ref{eq:cc}$) に類似の関係:
\begin{align}
\left[(\hat{p}_i^m)^\dagger A^{mn} \vec{p}_j^n\right]^*
& =
\left[(\vec{p}_j^n)^\dagger (A^{mn})^\dagger \hat{p}_i^m\right],
\end{align}
を経由して左右の基底が入れ替わった行列要素も計算に入ってくる.
そのため, ($\ref{eq:tyokkou3}$) と ($\ref{eq:comp3}$) のHermite共役である,
\begin{align}
(\vec{p}_i^n)^\dagger \hat{p}_j^n & = \delta_{ij}, \tag{17}\label{eq:tyokkou4} \\
\sum_{j = 1}^n \hat{p}_j^n (\vec{p}_j^n)^\dagger & = E^n, \tag{18}\label{eq:comp4}
\end{align}
も認識しておかねばならない.他にも
\begin{align}
(\vec{p}_i^m)^\dagger A^{mn} \vec{p}_j^n
& = \left[ (P^m)^\dagger A^{mn} P^n \right]_{ij}, \\
(\hat{p}_i^m)^\dagger A^{mn} \hat{p}_j^n
& = \left[ (P^m)^{-1} A^{mn} [(P^m)^{-1}]^\dagger \right]_{ij},
\end{align}
といった表現も出現しうる.
ただし,今の場合$P^n$と$(P^n)^\dagger$はキャンセルしないし,$P^n\neq [(P^n)^{-1}]^\dagger$であるから,
これらの行列表現がいたずらに導入されると式がどんどん複雑になっていく.
そうならぬよう, ($\ref{eq:comp3}$) と ($\ref{eq:comp4}$) の無意味な混在使用は極力控えるべきで,
通常の計算では ($\ref{eq:comp3}$) だけに使用を絞るべきであろう.
そういうわけで,$A^{mn} = E^mA^{mn}E^n$に ($\ref{eq:comp}$) と ($\ref{eq:comp3}$) を挿入することで一般の基底に対する変換:
\begin{align}
A^{mn}
= \sum_{i = 1}^m\sum_{j = 1}^n \vec{p}_i^m \left[(P^m)^{-1}A^{mn}P^n\right]_{ij} (\hat{p}_j^n)^\dagger
= \sum_{i = 1}^m\sum_{j = 1}^n \vec{e}_i^m
\left[
A^{mn}
\right]_{ij}
(\vec{e}_j^n)^\dagger,
\end{align}
が得られる.無論,$P^n$がユニタリ行列の場合は$\hat{p}_j^n = \vec{p}_j^n$となり,前節の結果に帰着される.
例として正方行列を考えたとき,$(P^n)^{-1}A^{nn}P^n$の部分が Jordan canonical form になるような基底 $\set{\vec{p}_j}$ (それは常に存在する) を Jordan 基底と呼ぶ.
もしこの基底をGram--Schmidt法で直交化すれば,正規直交基底に移って前節のようなより簡単な変換理論に帰着されるが,
その代償として,一般には Jordan canonical form は崩れ,上三角行列まで退行することになる.この結果はSchur分解の一例となっている.
応用
行ランクと列ランクが一致すること
或る$n$次元数ベクトル$\vec{x}^n$に$A^{mn}$を作用させてできるベクトル$A^{mn}\vec{x}^n$は$m$次元数ベクトルとなる.
これを全ての$\vec{x}^n$に渡って行ってできる集合$\set{A^{mn}\vec{x}^n|\forall\vec{x}^n}$は$m$次元数ベクトル空間の部分空間を成し,
$A^{mn}$の像空間または列空間という.
像空間が列空間と呼ばれる理由は$A^{mn}\vec{x}^n = A^{mn}E^n\vec{x}^n$として完備関係式 ($\ref{eq:comp}$) を利用すればすぐにわかる:
\begin{align}
A^{mn}\vec{x}^n = \sum_{j = 1}^n\left[A^{mn}\vec{e}_j^n\right](\vec{e}_j^n)^\dagger\vec{x}^n,
\end{align}
なぜなら$A^{mn}\vec{e}_j^n$は ($\ref{eq:rg}$) より$A^{mn}$の第$j$列ベクトルであり,
$(\vec{e}_j^n)^\dagger\vec{x}^n$は ($\ref{eq:xn2}$) より$\vec{x}^n$の第$j$成分であるからだ.
即ち,$A^{mn}\vec{x}^n$は列ベクトルの線形結合となっている.
ここで興味があるのは列空間の次元である.列空間を構成するベクトル達は$m$次元数ベクトル空間のメンバであるが,
一般には一部の者達しか集められないから,列空間の次元は$m$以下となり,自明ではない.
列空間の次元を知るには$A^{mn}\vec{e}_j^n$の線型独立性を調べる必要がある.
以下のように検討してみよう.
$A^{mn}$に列基本変形$Q^{nn}$を施すことで列階段行列$A^{mn}Q^{nn}$が得られたとしよう.
列階段行列の第$j$列ベクトルは$A^{mn}Q^{nn}\vec{e}_j^n$で得られることになるが,
$A^{mn}Q^{nn}$は階段状になっているわけだから
\begin{align}
A^{mn}Q^{nn}\vec{e}_j^n & \neq\vec{0}^m\quad [1\le j\le r], \tag{19}\label{eq:kaidan1} \\
A^{mn}Q^{nn}\vec{e}_j^n & = \vec{0}^m \quad[r+1\le j\le n], \tag{20}\label{eq:kaidan0}
\end{align}
となるような階段の段数$r$が存在する.
段数が最大になる形状で分かりやすいのは,行列の$(j,j)$成分が足場になっている状態である.
最初に$m = n$の正方行列を考えてみると,対角成分が全て非ゼロ (すなわち行列式が非ゼロ) になっている場合に段数最大で,$r = m=n$である.
次に$m$を大きくして ($m > n$) 縦長にしてみても,既に階段は右端に到達しているので段数は増えない.よって$r = n$である.
また$n$を大きくして ($m < n$) 横長にしてみても,既に階段は下端に到達しているので段数は増えない.よって$r = m$である.
従ってまとめて書くと $0\le r\le \min(m,n)$ の範囲に収まることが理解される.
ちなみに矩形行列で$r = \min(m,n)$ (full rank) になるのは$A^{mn}Q^{nn}$の列ベクトルの中にゼロベクトルを含まぬ場合,言い換えると$A^{mn}Q^{nn}$の第$n$列ベクトルが非ゼロベクトルになる場合 ($A^{mn}Q^{nn}\vec{e}_n^n\neq \vec{0}^m$) と言える.
このことをヒントにすると矩形の場合も行列式を使ってfull rankかどうか判断できる:結果は周知の通り Gramian $\neq 0\Longleftrightarrow r = \min(m,n)$である.
また,列ベクトルが階段状になっていることを考えれば
$\set{A^{mn}Q^{nn}\vec{e}_j^n|1\le j\le r}$が線型独立になっていることは理解に容易い.
これらの前提知識の下,$A^{mn}$をいじくり回そう.
まず,$Q^{nn}$には逆行列が存在するため,$A^{mn} = (A^{mn}Q^{nn})(Q^{nn})^{-1} = (A^{mn}Q^{nn})E^n(Q^{nn})^{-1}$と書ける.ここで完備関係式 ($\ref{eq:comp}$) を挿入すると:
\begin{align}
A^{mn} = \sum_{j = 1}^n(A^{mn}Q^{nn}\vec{e}_j^n)\left[(\vec{e}_j^n)^\dagger (Q^{nn})^{-1}\right],
\end{align}
となる.前節で述べたように$A^{mn}Q^{nn}\vec{e}_j^n$は階段行列$A^{mn}Q^{nn}$の第$j$列ベクトルであると解釈でき,階段の段数$r$があるので和の範囲を
\begin{align}
A^{mn} = \sum_{j = 1}^r(A^{mn}Q^{nn}\vec{e}_j^n)\left[(\vec{e}_j^n)^\dagger (Q^{nn})^{-1}\right],
\tag{21}\label{eq:kaidan}
\end{align}
のように$r$で制限することができる.
上式より,任意の$n$次元数ベクトル$\vec{x}^n$について
\begin{align}
A^{mn}\vec{x}^n = \sum_{j = 1}^r(A^{mn}Q^{nn}\vec{e}_j^n)\xi_j,\quad \xi_j: = (\vec{e}_j^n)^\dagger (Q^{nn})^{-1}\vec{x}^n, \tag{22}\label{eq:ax}
\end{align}
であることがわかる.
即ち,$A^{mn}Q^{nn}\vec{e}_j^n$に係数$\xi_j$をかけた線形結合によって列空間を張ることができるのである.
加えて$\set{A^{mn}Q^{nn}\vec{e}_j^n|1\le j\le r}$は線型独立なのだから,これは$A^{mn}$の列空間の基底であり,従ってその次元は$r$である.
ここで「$\xi_j$の一部または全部が恒等的に0になってしまい,次元が$r$より落ちてしまうようなことはないのか」という心配は無用である.
なぜなら$(Q^{nn})^{-1}$は正則で,その行ベクトルは$(\vec{e}_j^n)^\dagger (Q^{nn})^{-1}\neq(\vec{0}^n)^\dagger$であるからだ.
従って全ての$j$に対して$\xi_j\neq 0$になるような$\vec{x}^n$が必ず存在する.
次に行空間の次元はどうなっているか見てみよう.
これは全く同様にできて, ($\ref{eq:kaidan}$) に左から$(\vec{x}^m)^\dagger$を作用させてみると
\begin{align}
(\vec{x}^m)^\dagger A^{mn} = \sum_{j = 1}^r\eta_j \left[(\vec{e}_j^n)^\dagger (Q^{nn})^{-1}\right],\quad \eta_j: = (\vec{x}^m)^\dagger A^{mn}Q^{nn}\vec{e}_j^n,
\end{align}
となる.ここで$(\vec{e}_j^n)^\dagger (Q^{nn})^{-1}$は$(Q^{nn})^{-1}$の第$j$行ベクトルであるが,$Q^{nn}$は正則であるからその逆行列も正則であり,その行ベクトルの集合は線型独立である.
よってその一部である$\set{(\vec{e}_j^n)^\dagger (Q^{nn})^{-1}|1\le j \le r}$も当然線型独立である.上式はこれによって$A^{mn}$の行空間を張ることができると言っているのだから,
$A^{mn}$の行空間の次元もまた$r$であることがわかった
(ここでも ($\ref{eq:kaidan1}$) によって$\eta_j\equiv 0$の心配は不要).
このように,気になるところに完備関係式というメスをいれて──しかも数学的に非破壊で──行列内部を分析することができる.
CR分解
$A^{mn}Q^{nn}$がfull rankでない場合,$A^{mn}Q^{nn}$の第$r+1$列から第$n$列 (最後列) までの部分は$n-r$個のゼロベクトルで充填されている.これらゼロベクトルを削って$m\times r$の行列を作ってみよう.
この作業は ($\ref{eq:mpq}$) を応用してできる:
\begin{align}
\bar C^{mr}
& : = \sum_{i = 1}^m\sum_{j = 1}^r
\vec{e}_i^m\left[(\vec{e}_i^m)^\dagger A^{mn}Q^{nn}\vec{e}_j^n\right] (\vec{e}_j^r)^\dagger
= \sum_{j = 1}^r
\left[A^{mn}Q^{nn}\vec{e}_j^n\right] (\vec{e}_j^r)^\dagger
.
\end{align}
$i$和には完備関係式 ($\ref{eq:comp}$) を使って簡単化した.これに合わせて
\begin{align}
\bar R^{rn}
& : =
\sum_{i = 1}^r
\sum_{j = 1}^n
\vec{e}_i^r
\left[
(\vec{e}_i^n)^\dagger
(Q^{nn})^{-1}
\vec{e}_j^n
\right]
(\vec{e}_j^n)^\dagger
=
\sum_{j = 1}^r
\vec{e}_i^r
\left[
(\vec{e}_i^n)^\dagger
(Q^{nn})^{-1}
\right]
,
\end{align}
という$r\times n$の行列を作っておくと,
\begin{align}
A^{mn} = \bar C^{mr}\bar R^{rn},\tag{23}\label{eq:CR1}
\end{align}
と書き換えられる.$\bar C^{mr}$の各列ベクトルからなる集合は$A^{mn}$の列空間の基底,$\bar R^{rn}$の各行ベクトルからなる集合は$A^{mn}$の行空間の基底となっている.
ところで,$\bar C^{mr}$の$r$本の列ベクトルの集合は$A^{mn}$の列空間の基底であるから,
適当に線形結合を取り直すことで$A^{mn}$から取り出した線形独立な$r$本の列ベクトルに一致させることができる.
この操作は$\bar C^{mr}$に対する列基本変形$\bar Q^{rr}$で表現できるから,その結果を$C^{mr}: = \bar C^{mr}\bar Q^{rr}$と書こう.
同時に$R^{rn}: = (\bar Q^{rr})^{-1}\bar R^{rn}$とおく.そうすると
\begin{align}
A^{mn} = C^{mr} R^{rn},
\end{align}
となり,StrangのいうCR分解となる.
この分解について視覚的に捉えた記事があるのでそちらも参照されたい.
LQ分解
Gram--Schmidt法で ($\ref{eq:CR1}$) の$\bar R^{rn}$の行ベクトルを正規直交基底に変換してみよう.
Gram--Schmidtの変換行列を$G^{rr}_\mathrm{L}$と書いて
\begin{align}
\mathcal{Q}^{rn}&: = G^{rr}_\mathrm{L}\bar R^{rn},
\end{align}
によって$\mathcal{Q}^{rn}$の行ベクトルの集合を正規直交基底にすることができる.
ここで$G^{rr}_\mathrm{L}$は下三角の正則行列である.
一方,
\begin{align}
\mathcal{L}^{nr}&: = \bar C^{nr} (G^{rr}_\mathrm{L})^{-1},
\end{align}
を導入すると,$\bar C^{nr}$は下台形行列,$(G^{rr}_\mathrm{L})^{-1}$は下三角行列の逆行列ということで下三角行列となり,
その積である$\mathcal{L}$は下台形行列となる.
結果的に
\begin{align}
A^{mn} = \mathcal{L}^{mr}\mathcal{Q}^{rn},
\end{align}
となり,この形の分解をLQ分解と呼ぶ.