階数因数分解

階数因数分解(かいすういんすうぶんかい、: rank factorization)あるいは階数分解(rank decomposition)とは、数学線型代数学の分野において、階数 r {\displaystyle r} のある与えられた m × n {\displaystyle m\times n} 行列 A {\displaystyle A} のある m × r {\displaystyle m\times r} 行列 C {\displaystyle C} r × n {\displaystyle r\times n} 行列 F {\displaystyle F} の積としての表示 A = C F {\displaystyle A=CF} のことを言う。

全ての有限次元行列には階数因数分解が存在する A {\displaystyle A} を、列階数 r {\displaystyle r} であるような m × n {\displaystyle m\times n} 行列とする。すなわち、 A {\displaystyle A} には r {\displaystyle r} 個の線型独立な列が含まれる。あるいは同じ意味であるが、 A {\displaystyle A} 列空間の次元は r {\displaystyle r} である。 c 1 , c 2 , , c r {\displaystyle c_{1},c_{2},\ldots ,c_{r}} を、 A {\displaystyle A} の列空間の任意の基底とし、それらを列ベクトルとして m × r {\displaystyle m\times r} 行列 C = [ c 1 : c 2 : : c r ] {\displaystyle C=[c_{1}:c_{2}:\ldots :c_{r}]} を構成する。したがって、 A {\displaystyle A} の全ての列ベクトルは、 C {\displaystyle C} の列の線型結合である。正確に言うと、 A = [ a 1 : a 2 : : a n ] {\displaystyle A=[a_{1}:a_{2}:\ldots :a_{n}]} を第 j {\displaystyle j} 列が a j {\displaystyle a_{j}} であるような m × n {\displaystyle m\times n} 行列とすれば、

a j = f 1 j c 1 + f 2 j c 2 + + f r j c r , {\displaystyle a_{j}=f_{1j}c_{1}+f_{2j}c_{2}+\cdots +f_{rj}c_{r},}

となる。ただし f i j {\displaystyle f_{ij}} は、基底 c 1 , c 2 , , c r {\displaystyle c_{1},c_{2},\ldots ,c_{r}} に関する a j {\displaystyle a_{j}} のスカラー係数である。このことは、 f i j {\displaystyle f_{ij}} ( i , j ) {\displaystyle (i,j)} -成分とする行列 F {\displaystyle F} によって A = C F {\displaystyle A=CF} が得られることを意味する。

rank(A) = rank(AT)

階数因数分解から直ちに従う帰結として、 A {\displaystyle A} の階数はその転置行列 A T {\displaystyle A^{\text{T}}} の階数と等しい、というものがある。すると A {\displaystyle A} の列は A T {\displaystyle A^{\text{T}}} の行であることから、 A {\displaystyle A} 列階数行階数は等しいことが分かる。

証明:これが真であることを示すために、はじめに行列の「階数」とはその「列階数」を意味するものであると定義しておく。 A = C F {\displaystyle A=CF} より、 A T = F T C T {\displaystyle A^{\text{T}}=F^{\text{T}}C^{\text{T}}} が従う。行列乗算(英語版)の定義から、この等式は A T {\displaystyle A^{\text{T}}} の各列が F T {\displaystyle F^{\text{T}}} の列の線型結合であることを意味する。したがって、 A T {\displaystyle A^{\text{T}}} の列空間は F T {\displaystyle F^{\text{T}}} の列空間に含まれるものであることが分かり、したがって rank( A T {\displaystyle A^{\text{T}}} ) ≤ rank( F T {\displaystyle F^{\text{T}}} ) が成立する。今 F T {\displaystyle F^{\text{T}}} n {\displaystyle n} × r {\displaystyle r} 行列であるので、 F T {\displaystyle F^{\text{T}}} には r {\displaystyle r} 個の列が存在し、したがって rank( A T {\displaystyle A^{\text{T}}} ) ≤ r {\displaystyle r} = rank( A {\displaystyle A} ) が成立する。これより rank( A T ) {\displaystyle A^{\text{T}})} ≤ rank( A {\displaystyle A} ) が示された。続いて、その逆の不等式が成立することを示すために、 A T {\displaystyle A^{\text{T}}} に対して上述の結果を適用する。 ( A T ) T {\displaystyle (A^{\text{T}})^{\text{T}}} = A {\displaystyle A} なので、rank( A {\displaystyle A} ) = rank( ( A T ) T ) {\displaystyle (A^{\text{T}})^{\text{T}})} ≤ rank( A T {\displaystyle A^{\text{T}}} ) と書くことが出来る。このことから rank( A ) {\displaystyle A)} ≤ rank( A T {\displaystyle A^{\text{T}}} ) が示される。したがって、rank( A T ) {\displaystyle A^{\text{T}})} ≤ rank( A {\displaystyle A} ) かつ rank( A {\displaystyle A} ) ≤ rank( A T {\displaystyle A^{\text{T}}} ) であることから、rank( A {\displaystyle A} ) = rank( A T {\displaystyle A^{\text{T}}} ) が示された。

行階段形からの階数因数分解

実際、特定の階数因数分解を次の手順で構成することが出来る: A {\displaystyle A} 行既約階段形 B {\displaystyle B} は計算することで得られる。このとき、上述の行列 C {\displaystyle C} A {\displaystyle A} から全ての非ピボット列を除くことで得られ、 F {\displaystyle F} B {\displaystyle B} から全てのゼロ行を除くことで得られる。

行列

A = [ 1 3 1 4 2 7 3 9 1 5 3 1 1 2 0 8 ] [ 1 0 2 0 0 1 1 0 0 0 0 1 0 0 0 0 ] = B {\displaystyle A={\begin{bmatrix}1&3&1&4\\2&7&3&9\\1&5&3&1\\1&2&0&8\end{bmatrix}}\sim {\begin{bmatrix}1&0&-2&0\\0&1&1&0\\0&0&0&1\\0&0&0&0\end{bmatrix}}=B}

を考える。 B {\displaystyle B} は既約階段形である。このとき、 C {\displaystyle C} は、 A {\displaystyle A} の唯一つの非ピボット列である第三列を除くことで得られ、 F {\displaystyle F} は最後のゼロ行を除くことで得られる。すなわち、

C = [ 1 3 4 2 7 9 1 5 1 1 2 8 ] , F = [ 1 0 2 0 0 1 1 0 0 0 0 1 ] {\displaystyle C={\begin{bmatrix}1&3&4\\2&7&9\\1&5&1\\1&2&8\end{bmatrix}}{\text{,}}\qquad F={\begin{bmatrix}1&0&-2&0\\0&1&1&0\\0&0&0&1\end{bmatrix}}}

が得られる。次の関係式が、直ちに確かめられる:

A = [ 1 3 1 4 2 7 3 9 1 5 3 1 1 2 0 8 ] = [ 1 3 4 2 7 9 1 5 1 1 2 8 ] [ 1 0 2 0 0 1 1 0 0 0 0 1 ] = C F . {\displaystyle A={\begin{bmatrix}1&3&1&4\\2&7&3&9\\1&5&3&1\\1&2&0&8\end{bmatrix}}={\begin{bmatrix}1&3&4\\2&7&9\\1&5&1\\1&2&8\end{bmatrix}}{\begin{bmatrix}1&0&-2&0\\0&1&1&0\\0&0&0&1\end{bmatrix}}=CF{\text{.}}}

証明

P {\displaystyle P} を、ブロック区分けの形式で A P = ( C , D ) {\displaystyle AP=(C,D)} が成立するような n × n {\displaystyle n\times n} 置換行列とする。ただし C {\displaystyle C} はその列が A {\displaystyle A} r {\displaystyle r} 個のピボット列であるものとする。 D {\displaystyle D} の全ての列は C {\displaystyle C} の列の線形結合であり、したがって D = C G {\displaystyle D=CG} が成立するような行列 G {\displaystyle G} が存在する。ただし G {\displaystyle G} の列は、それら各線形結合の係数を含むものである。すると、 r × r {\displaystyle r\times r} 単位行列 I r {\displaystyle I_{r}} によって A P = ( C , C G ) = C ( I r , G ) {\displaystyle AP=(C,CG)=C(I_{r},G)} と書くことが出来る。続いて、 ( I r , G ) = F P {\displaystyle (I_{r},G)=FP} を証明する。

A P {\displaystyle AP} を、基本行列の積であるような行列 E {\displaystyle E} を左から掛けることによって、行既約階段形へと変換する。すなわち、 E A P = B P = E C ( I r , G ) {\displaystyle EAP=BP=EC(I_{r},G)} が得られる。ただし E C = [ I r 0 ] {\displaystyle EC={\begin{bmatrix}I_{r}\\0\end{bmatrix}}} である。すると、 B P = [ I r G 0 0 ] {\displaystyle BP={\begin{bmatrix}I_{r}&G\\0&0\end{bmatrix}}} と書くことが出来、したがって ( I r , G ) = F P {\displaystyle (I_{r},G)=FP} ということが分かる。これはすなわち、 A {\displaystyle A} に対して行ったものと同様の置換を列に対して行うことで得られる、行既約階段形に含まれる非ゼロの r {\displaystyle r} 個の行である。したがって、 A P = C F P {\displaystyle AP=CFP} が得られ、 P {\displaystyle P} が可逆であることから A = C F {\displaystyle A=CF} が得られる。以上で証明は完成された。

参考文献

  • Lay, David C. (2005), Linear Algebra and its Applications (3rd ed.), Addison Wesley, ISBN 978-0-201-70970-4 
  • Golub, Gene H.; Van Loan, Charles F. (1996), Matrix Computations, Johns Hopkins Studies in Mathematical Sciences (3rd ed.), The Johns Hopkins University Press, ISBN 978-0-8018-5414-9 
  • Stewart, Gilbert W. (1998), Matrix Algorithms. I. Basic Decompositions, SIAM, ISBN 978-0-89871-414-2