矩阵的CR分解
本文主要由AI生产,请读者自己识别里面内容
1. 核心思想与定义
CR分解 将一个矩阵 A 分解为两个矩阵的乘积:
其中:
C 是一个由 A 的 线性无关列(Linear Independent Columns)组成的矩阵。
R 是一个由 A 的 行最简形(Row Reduced Echelon Form, RREF)的前 r 行(即非零行)组成的矩阵。
关键点:
设 A 是一个 m×n 的矩阵,其秩(Rank)为 r(即 rank(A)=r)。
则 C 是 m×r 的矩阵。
R 是 r×n 的矩阵。
分解后的乘积 CR 的秩也为 r,完美保留了原矩阵的秩。
2. 分解的步骤
通过一个具体例子来演示是最清晰的。设矩阵:
A=121243364123 Step 1: 求矩阵 A 的秩并确定主元列
对 A 进行行化简,得到其行最简形(RREF)。
RREF(A)=1002000105−20 (□ 框出的为主元)
2. 秩 r 就是主元的个数。这里 r=2。
3. 主元所在的列号(第1列和第3列)指示了原矩阵 A 中哪些列是线性无关的。
Step 2: 构造矩阵 C
C 由 A 的主元列(Pivot Columns)组成。即第1列和第3列。
C=121364 C 的列空间 Col(C) 就等于 A 的列空间 Col(A)。所有其他的列都是这些主元列的线性组合。
Step 3: 构造矩阵 R
R 就是 A 的行最简形(RREF)中的非零行。
R=[1020015−2] R 的行空间 Row(R) 就等于 A 的行空间 Row(A)。
Step 4: 验证分解
CR=121364[1020015−2]=1⋅1+3⋅02⋅1+6⋅01⋅1+4⋅01⋅2+3⋅02⋅2+6⋅01⋅2+4⋅01⋅0+3⋅12⋅0+6⋅11⋅0+4⋅11⋅5+3⋅(−2)2⋅5+6⋅(−2)1⋅5+4⋅(−2)=121242364−1−2−3 我们发现结果不等于原始的 A。哪里出错了?
关键修正:我们必须使用原始矩阵 A 的主元列,而不是 RREF 后的主元列。 在这个例子中,我们正确地从 A 中选取了第1和第3列作为 C。
错误在于验证时的一个疏忽。让我们重新计算 CR 的第四列:
C 的第1列 × R 第1行第4列: 1×5=5
C 的第2列 × R 第2行第4列: 3×(−2)=−6
总和: 5+(−6)=−1,但这与 A 的第四列 [1,2,3]T 不符。
这说明了一个重要问题:CR分解要求我们使用来自原始矩阵 A 的线性无关列,但 R 矩阵必须正确地表征这些列如何组合出整个 A。 在这个例子中,我们的 R 是从 RREF 直接取来的,但我们需要确保 CR 精确重构 A。
实际上,正确的 R 应该满足 A=CR。这意味着 R 的列是 C 的列表示 A 的每一列的系数。我们可以通过求解 CR=A 来找到 R,这正好是 RREF 过程所做的事情。因此,我们的步骤在理论上是正确的,但验证时需要仔细计算。
重新验证第四列:
C 的第1列 × R 第1行第4列: 1×5=5
C 的第2列 × R 第2行第4列: 3×(−2)=−6
第一行第四列结果: 5+(−6)=−1
第二行第四列: 2×5+6×(−2)=10−12=−2
第三行第四列: 1×5+4×(−2)=5−8=−3
这得到了 [−1,−2,−3]T,但 A 的第四列是 [1,2,3]T。矛盾表明我可能在最初的 RREF 计算中出了错。
让我们重新计算 A 的 RREF:
A=121243364123 步骤:
R2 = R2 - 2*R1, R3 = R3 - R1:
100201301102 Swap R2 and R3:
100210310120 R1 = R1 - 2*R2:
100010110−320 所以正确的 RREF 是:
RREF(A)=100010110−320 主元在第1列和第2列!所以秩 r=2。
修正后的 Step 2: 构造矩阵 C
C 由 A 的主元列(第1列和第2列)组成。
C=121243 修正后的 Step 3: 构造矩阵 R
R 就是 A 的行最简形(RREF)中的非零行。
R=[100111−32] 修正后的 Step 4: 验证分解
CR=121243[100111−32]=1⋅1+2⋅02⋅1+4⋅01⋅1+3⋅01⋅0+2⋅12⋅0+4⋅11⋅0+3⋅11⋅1+2⋅12⋅1+4⋅11⋅1+3⋅11⋅(−3)+2⋅22⋅(−3)+4⋅21⋅(−3)+3⋅2=121243364123=A 验证成功!
这个修正后的例子强调了正确计算 RREF 和识别主元列的重要性。
3. 为什么叫“CR”分解?
C 代表 Column(列)或 Basis for the Column space(列空间的基)。
R 代表 Row(行)或 Basis for the Row space(行空间的基),或者 Reduced(最简形)。
4. CR分解的性质与意义
列空间(Column Space):
Col(A)=Col(C)
矩阵 C 的列构成了 A 的列空间的一组基。
行空间(Row Space):
Row(A)=Row(R)
矩阵 R 的行构成了 A 的行空间的一组基。
秩(Rank):
rank(A)=rank(C)=rank(R)=r
分解显式地给出了矩阵的秩。
唯一性(Uniqueness):
矩阵 R (即RREF)是唯一的。
矩阵 C 的列来自 A 的特定列(主元列),这部分选择是唯一的。但如果我们选择列空间的任意一组基来构成 C,那么 R 也会相应改变。所以,基于主元列的CR分解是唯一的。
与其它分解的关系:
与QR分解的区别:QR分解要求 C 的列是正交的(通过Gram-Schmidt过程得到),而CR分解中的 C 只是原矩阵的列,不一定正交。
与LU分解的区别:LU分解侧重于求解方程组的三角系统,而CR分解侧重于揭示矩阵的列和行空间结构。
5. 应用场景
理解矩阵结构:CR分解是理解一个矩阵的列空间和行空间最直接的方式之一。
低秩矩阵近似:在数据科学中,如果矩阵 A 是近似低秩的,我们可以通过CR分解取前 r 个主元列和前 r 行来得到一个很好的低秩近似 A≈CrRr。
理论推导:在线性代数的理论证明中,CR分解是一种非常有用的工具。
6. 总结
| 特性 | 描述 |
|---|
| 形式 | A=CR |
| 矩阵C | m×r 矩阵,由 A 的 r 个线性无关列(主元列)组成。 |
| 矩阵R | r×n 矩阵,是 A 的行最简形(RREF) 的前 r 行。 |
| 核心意义 | 清晰地展示了矩阵的列空间和行空间的结构。 |
| 唯一性 | 基于主元列的分解是唯一的。 |
| 主要应用 | 理解矩阵结构、理论证明、低秩近似。 |
简单来说,CR分解告诉我们:原矩阵 A 的所有列,都可以由 C 中的“主元列”通过 R 中的行系数线性组合而成。 它是一种非常直观和基础的分解。
A=CR 分解图解
A=CR 所有一般的长矩阵 A 都有相同的行秩和列秩.这个分解是理解这一定理最直观的方法.C 由 A 的线性无关列组成,R 为 A 的行阶梯形矩阵(消除了零行).A=CR 将 A 化简为 r 的线性无关列 C 和线性无关行 R的乘积.
A[122335]=CR=[1223][100111] 推导过程:从左往右看 A 的列。保留其中线性无关的列,去掉可以由前者线性表出的列。则第1、2列被保留,而第三列因为可以由前两列之和表示而被去掉。而要通过线性无关的 1、2 两列重新构造出 A ,需要右乘一个行阶梯矩阵 R .

现在你会发现行的秩为 2 ,因为 C 中只有 2 个线性无关列.而 A 中所有的列都可以由 C 中的 2 列线性表出.
