CR 分解
文章目录
- 一、CR分解
- 1.1.CR分解的定义
- 1.2.CR分解的步骤
- 1.3.CR分解的详细证明
一、CR分解
在线性代数中,CR分解是一种重要且直观的矩阵分解方法,它将任意一个矩阵 AAA 分解为一个列满秩矩阵 CCC 和一个行满秩矩阵 RRR 的乘积。
1.1.CR分解的定义
对于任意一个 m×nm \times nm×n 的矩阵 AAA,其秩为 rrr,CR分解将其表示为:
A=CRA = CRA=CR
其中:
- C 是一个 m×rm \times rm×r 的矩阵,它的列由矩阵 AAA 的 rrr 个线性无关的列构成。这些列构成了 AAA 的列空间的一组基。
- R 是一个 r×nr \times nr×n 的矩阵,它由矩阵 AAA 的简化行阶梯形(Reduced Row Echelon Form, RREF)中的 rrr 个非零行构成。这些行构成了 AAA 的行空间的一组基。
CR分解的核心思想是将矩阵 AAA 的所有列表示为其主列(线性无关列)的线性组合,而这个线性组合的系数就存储在矩阵 RRR 中。
1.2.CR分解的步骤
给定一个矩阵 AAA,求解其CR分解的步骤如下:
-
行化简与确定主元列: 对矩阵 AAA 进行高斯-若尔当消元法,得到其简化行阶梯形矩阵,我们称之为 ARREFA_{RREF}ARREF。在 ARREFA_{RREF}ARREF 中,主元(pivots,即每行第一个非零元素,通常为1)所在的列被称为主元列。
-
构造矩阵C: 矩阵 CCC 由矩阵 AAA 中与 ARREFA_{RREF}ARREF 主元列相对应的原始列向量构成。如果 ARREFA_{RREF}ARREF 的第 j1,j2,…,jrj_1, j_2, \dots, j_rj1,j2,…,jr 列是主元列,那么 CCC 就由 AAA 的第 j1,j2,…,jrj_1, j_2, \dots, j_rj1,j2,…,jr 列组成。
-
构造矩阵R: 矩阵 RRR 直接取自 ARREFA_{RREF}ARREF 的所有非零行。由于 AAA 的秩为 rrr,所以 ARREFA_{RREF}ARREF 将恰好有 rrr 个非零行。事实上,R的每一列即A的每一列在矩阵C列空间作为基下的坐标!。
示例
假设有矩阵 AAA:
A=(12342479361013)A = \begin{pmatrix} 1 & 2 & 3 & 4 \\ 2 & 4 & 7 & 9 \\ 3 & 6 & 10 & 13 \end{pmatrix}A=12324637104913
第一步:求简化行阶梯形
对 AAA 进行行变换:
(12342479361013)→R2−2R1,R3−3R1(123400110011)→R3−R2,R1−3R2(120100110000)\begin{pmatrix} 1 & 2 & 3 & 4 \\ 2 & 4 & 7 & 9 \\ 3 & 6 & 10 & 13 \end{pmatrix} \xrightarrow{R_2 - 2R_1, R_3 - 3R_1} \begin{pmatrix} 1 & 2 & 3 & 4 \\ 0 & 0 & 1 & 1 \\ 0 & 0 & 1 & 1 \end{pmatrix} \xrightarrow{R_3 - R_2, R_1 - 3R_2} \begin{pmatrix} 1 & 2 & 0 & 1 \\ 0 & 0 & 1 & 1 \\ 0 & 0 & 0 & 0 \end{pmatrix}12324637104913R2−2R1,R3−3R1100200311411R3−R2,R1−3R2100200010110
因此,ARREF=(120100110000)A_{RREF} = \begin{pmatrix} 1 & 2 & 0 & 1 \\ 0 & 0 & 1 & 1 \\ 0 & 0 & 0 & 0 \end{pmatrix}ARREF=100200010110。
主元位于第1列和第3列。
第二步:构造矩阵C
由于主元列是第1列和第3列,我们选取 AAA 的第1列和第3列构成 CCC:
C=(1327310)C = \begin{pmatrix} 1 & 3 \\ 2 & 7 \\ 3 & 10 \end{pmatrix}C=1233710
第三步:构造矩阵R
我们取 ARREFA_{RREF}ARREF 的非零行构成 RRR:
R=(12010011)R = \begin{pmatrix} 1 & 2 & 0 & 1 \\ 0 & 0 & 1 & 1 \end{pmatrix}R=(10200111)
验证
现在我们来验证 A=CRA=CRA=CR:
CR=(1327310)(12010011)=(1(1)+3(0)1(2)+3(0)1(0)+3(1)1(1)+3(1)2(1)+7(0)2(2)+7(0)2(0)+7(1)2(1)+7(1)3(1)+10(0)3(2)+10(0)3(0)+10(1)3(1)+10(1))=(12342479361013)=ACR = \begin{pmatrix} 1 & 3 \\ 2 & 7 \\ 3 & 10 \end{pmatrix} \begin{pmatrix} 1 & 2 & 0 & 1 \\ 0 & 0 & 1 & 1 \end{pmatrix} = \begin{pmatrix} 1(1)+3(0) & 1(2)+3(0) & 1(0)+3(1) & 1(1)+3(1) \\ 2(1)+7(0) & 2(2)+7(0) & 2(0)+7(1) & 2(1)+7(1) \\ 3(1)+10(0) & 3(2)+10(0) & 3(0)+10(1) & 3(1)+10(1) \end{pmatrix} = \begin{pmatrix} 1 & 2 & 3 & 4 \\ 2 & 4 & 7 & 9 \\ 3 & 6 & 10 & 13 \end{pmatrix} = ACR=1233710(10200111)=1(1)+3(0)2(1)+7(0)3(1)+10(0)1(2)+3(0)2(2)+7(0)3(2)+10(0)1(0)+3(1)2(0)+7(1)3(0)+10(1)1(1)+3(1)2(1)+7(1)3(1)+10(1)=12324637104913=A
验证成功。
1.3.CR分解的详细证明
CR分解的存在性可以通过高斯-若尔当消元法来证明。
-
行变换与可逆矩阵E: 任何对矩阵 AAA 的初等行变换,都等价于左乘一个相应的初等矩阵。因此,将 AAA 化为简化行阶梯形 ARREFA_{RREF}ARREF 的过程,可以表示为左乘一个可逆矩阵 EEE:
EA=ARREFEA = A_{RREF}EA=ARREF
由于 EEE 是可逆的,我们有:
A=E−1ARREFA = E^{-1}A_{RREF}A=E−1ARREF
-
分块矩阵: 设 AAA 的秩为 rrr。ARREFA_{RREF}ARREF 将有 m−rm-rm−r 个全零行。我们可以将 ARREFA_{RREF}ARREF 分解为只包含非零行的矩阵 RRR 和一些零行。相应地,我们可以对 E−1E^{-1}E−1 进行列分块。
A=E−1(R0)A = E^{-1} \begin{pmatrix} R \\ 0 \end{pmatrix}A=E−1(R0)
其中 RRR 是 r×nr \times nr×n 矩阵,000 是 (m−r)×n(m-r) \times n(m−r)×n 的零矩阵。我们将 E−1E^{-1}E−1 按列分块为 [CD][C \quad D][CD],其中 CCC 是 m×rm \times rm×r 矩阵,DDD 是 m×(m−r)m \times (m-r)m×(m−r) 矩阵。
A=[CD](R0)=CR+D⋅0=CRA = \begin{bmatrix} C & D \end{bmatrix} \begin{pmatrix} R \\ 0 \end{pmatrix} = CR + D \cdot 0 = CRA=[CD](R0)=CR+D⋅0=CR
-
证明C是A的主列: 我们需要证明这样得到的矩阵 CCC 正是由 AAA 的主列构成的。
- 在 ARREFA_{RREF}ARREF 中,主元列是单位向量 eie_iei(在 rrr 维空间中)。设 AAA 的第 jjj 列 AjA_jAj 是一个主列,其在 ARREFA_{RREF}ARREF 中对应的列是 eke_kek。
- 根据 A=CRA=CRA=CR,我们有 Aj=C⋅RjA_j = C \cdot R_jAj=C⋅Rj。而 RjR_jRj 在这里就是 ARREFA_{RREF}ARREF 的第 jjj 列,即 eke_kek。
- 所以,Aj=C⋅ek=CkA_j = C \cdot e_k = C_kAj=C⋅ek=Ck,即 AAA 的第 jjj 个主列恰好是 CCC 的第 kkk 列。
- 这表明矩阵 CCC 的列就是 AAA 的所有主列。
-
证明R是A_{RREF}的非零行:
- 由行变换的性质可知,矩阵 AAA 的行空间与 ARREFA_{RREF}ARREF 的行空间是相同的。
- ARREFA_{RREF}ARREF 的非零行是线性无关的,因此它们构成了行空间的一组基。
- 在 A=CRA=CRA=CR 中,矩阵 AAA 的每一行都是矩阵 RRR 中各行的线性组合。由于 RRR 的行向量构成了 AAA 的行空间的一组基,因此这个 RRR 必须是(或行等价于)从 ARREFA_{RREF}ARREF 中提取的非零行。通过我们的构造方法,它就是 ARREFA_{RREF}ARREF 的非零行本身。
综上所述,任意矩阵 AAA 都可以分解为 A=CRA=CRA=CR 的形式,其中 CCC 由 AAA 的主列构成,RRR 由 AAA 的简化行阶梯形的非零行构成。这一分解直接证明了矩阵的列秩(CCC 的列数)等于行秩(RRR 的行数),均为矩阵的秩 rrr。