原理
这一篇我们来介绍满秩分解(Full-Rank-Factorization),其定义如下:设 A ∈ F m × n A\in F^{m\times n} A∈Fm×n,rank(A)=r,若存在秩为r的矩阵 B ∈ F m × r , C ∈ F r × n B\in F^{m\times r},C\in F^{r\times n} B∈Fm×r,C∈Fr×n,使得 A = B C A=BC A=BC,称该分解为A的满秩分解。从秩的大小来看,我们可以知道, r < m ∣ n r< m|n r<m∣n,所以满秩分解把A分解成了一个“瘦高”矩阵乘上一个“胖矮”矩阵。
对于任何非零的矩阵 A ∈ F m × n A\in F^{m\times n} A∈Fm×n,都存在满秩分解。 这是一个很强的存在性,我们也可以这么理解,只要不是零矩阵,其极大无关组的个数至少是1,其他列向量可以被该极大无关组线性表出,满秩分解可以理解为是找极大无关组并给出线性表示原矩阵的过程。
基于初等行变换的满秩分解
首先满秩分解可以有很多不同的求法,这里我们选择计算较为简单,不需要引入求逆(求逆往往是不稳定的操作),就可以得到矩阵A的满秩分解。
还是先来看下教材上的例子,设A为:
A = [ 0 1 0 − 1 5 6 0 2 0 0 0 − 14 2 − 1 2 − 4 0 1 − 2 1 − 2 2 10 25 ] A=\begin{bmatrix} 0 & 1 & 0 & -1 & 5 & 6 \\ 0 & 2 & 0 & 0 & 0 & -14 \\ 2 & -1 & 2 & -4 & 0 & 1\\ -2 & 1 & -2 & 2 & 10 & 25\\ \end{bmatrix} A=⎣⎢⎢⎡002−212−11002−2−10−42500106−14125⎦⎥⎥⎤
经过初等行变换,得到
A = [ 1 0 1 0 − 10