四个基本子空间
学习目标
完成本节后,你将能够: - 描述矩阵的四个基本子空间 - 计算各子空间的一组基 - 理解子空间之间的正交关系 - 画出基本子空间关系图
1. 四个基本子空间概述
对于一个 \(m \times n\) 的矩阵 \(A\),四个基本子空间是:
| # | 子空间 | 符号 | 所在空间 | 维度 | |---|--------|------|----------|------| | 1 | 列空间 | \(C(A)\) | \(\mathbb{R}^m\) | \(r\) | | 2 | 零空间 | \(N(A)\) | \(\mathbb{R}^n\) | \(n-r\) | | 3 | 行空间 | \(C(A^T)\) | \(\mathbb{R}^n\) | \(r\) | | 4 | 左零空间 | \(N(A^T)\) | \(\mathbb{R}^m\) | \(m-r\) |
其中 \(r = \text{rank}(A)\)。
2. 正交关系——最重要的洞察
### 2.1 正交补
行空间 ⟂ 零空间:\(C(A^T) \perp N(A)\)
为什么?因为 \(A\mathbf{x} = \mathbf{0}\) 意味着 \(A\) 的每一行与 \(\mathbf{x}\) 正交。所以 \(\mathbf{x}\) 与所有行正交,从而与整个行空间正交。
列空间 ⟂ 左零空间:\(C(A) \perp N(A^T)\)
### 2.2 正交补的含义
\[\mathbb{R}^n = C(A^T) \oplus N(A)\] \[\mathbb{R}^m = C(A) \oplus N(A^T)\]
意义:\(\mathbb{R}^n\) 中的任何向量可以唯一地分解为行空间分量 + 零空间分量。这两个分量相互垂直。
3. 通过行最简形 (RREF) 求基本子空间
### 3.1 理解行最简形
行最简形是消元过程的终点——你在主元位置得到 1,并且主元上方的列也被清除。
\[A \rightarrow R = \text{rref}(A)\]
- **主元列**在 RREF 中是标准基向量
- **自由列**对应零空间中的特殊解
### 3.2 用 RREF 求基
行空间基:RREF 中的非零行 列空间基:原矩阵中对应主元列的列 零空间基:解 \(R\mathbf{x} = \mathbf{0}\) 的特殊解
def rref(A):
"""计算行最简形"""
A = A.astype(float).copy()
m, n = A.shape
row = 0
for col in range(n):
if row >= m: break
# 找主元
pivot = np.argmax(abs(A[row:, col])) + row
if abs(A[pivot, col]) < 1e-10: continue
A[[row, pivot]] = A[[pivot, row]]
# 归一化
A[row] /= A[row, col]
# 清除其他行
for r in range(m):
if r != row:
A[r] -= A[r, col] * A[row]
row += 1A = np.array([[1, 2, 3], [2, 4, 6], [1, 2, 3]]) R = rref(A) print("RREF:") print(np.round(R, 2)) # 非零行是行空间基 # 主元列对应原矩阵的列是列空间基 ```
4. Python 综合:四个子空间计算
def all_subspaces(A):
"""用 SVD 计算四个基本子空间"""
m, n = A.shape
U, s, Vt = np.linalg.svd(A)return { "列空间 C(A)": U[:, :r], "左零空间 N(A^T)": U[:, r:], "行空间 C(A^T)": Vt[:r].T, "零空间 N(A)": Vt[r:].T, }
A = np.array([[1, 0, 1], [2, 1, 3], [1, 0, 1]]) subspaces = all_subspaces(A) for name, basis in subspaces.items(): print(f"{name} (dim={basis.shape[1]}):") print(np.round(basis, 3)) print()
# 验证正交性 CS = subspaces["列空间 C(A)"] NS = subspaces["左零空间 N(A^T)"] print("C(A) ⟂ N(A^T)?", np.allclose(CS.T @ NS, 0)) ```
5. 本节习题
- 对 3×5 的秩为 2 的矩阵,四个子空间的维度分别是多少?
- 证明 \(C(A^T)\) 和 \(N(A)\) 是正交补
- 找出 \(A = \begin{bmatrix} 1 & 2 \\ 2 & 4 \end{bmatrix}\) 的四个子空间并验证正交关系
- 为什么 \(A\) 和 \(A^T\) 有相同的秩?
- 如果 \(A\) 是 5×3 满秩矩阵,哪些子空间只有零向量?
总结
- 四个基本子空间完整刻画了矩阵的映射行为 - 行空间和零空间在 \(\mathbb{R}^n\) 中互补,列空间和左零空间在 \(\mathbb{R}^m\) 中互补 - \(C(A^T) \perp N(A)\),\(C(A) \perp N(A^T)\) - SVD 是计算所有四个子空间的最简洁方法