跳转至

第02章 · 矩阵 · 阶段测试题答案


一 · 单选 (8 题)

1.1 A - 只有对角矩阵的转置 = 自身(特殊对称情况)。一般矩阵 A^T ≠ A。

1.2 B - 矩阵乘法要求左列 = 右行, (3×2)(2×4) → (3×4)。

1.3 A - det(AB) = det(A) × det(B)。

1.4 B - det = 0 的矩阵不可逆。

1.5 C - A×v = λ×v, λ 是特征值, v 是特征向量。

1.6 A - 实对称矩阵一定能正交对角化。

1.7 B - PCA 用 SVD 找主成分, 不需要构造协方差矩阵。

1.8 C - QR 分解把 A 分解成正交 Q 和上三角 R。


二 · 多选 (4 题)

2.1 ABCD - 都是矩阵的重要运算。

2.2 ABD - C 错: AB ≠ BA 一般情况。

2.3 AC - 矩阵可逆要求行列式 ≠ 0 且满秩。

2.4 ABD - C 错: 不是所有矩阵都特征分解。


三 · 简答 (5 题)

3.1 矩阵乘法

答: (A×B)ᵢⱼ = Σₖ Aᵢₖ × Bₖⱼ - 左列 = 右行, 否则不合法 - 不满足交换律: AB ≠ BA 一般 - 满足结合律 (AB)C = A(BC) - 满足分配律 A(B+C) = AB+AC

3.2 行列式含义

几何: 行列式 = 矩阵列向量张成的平行多面体体积的"绝对值" 代数: |A| = Σ_σ sign(σ) Πᵢ Aᵢ,σ(i) (Leibniz 公式) 性质: |AB|=|A||B|, |A^T|=|A|, |A^(-1)|=1/|A|

3.3 特征值与特征向量

答: A v = λ v, v 是特征向量(方向不变), λ 是特征值(伸缩因子)。 求法: 解 det(A - λI) = 0 (特征多项式) 应用: - PCA: 最大方差方向 - PageRank: 主特征向量 - 微分方程组: 解的稳定性

3.4 SVD 分解

答: 任何矩阵 A(m×n) 都可以分解为:

A = U Σ V^T
U (m×m): 左奇异向量, 正交
Σ (m×n): 对角矩阵, 奇异值 σ₁ ≥ σ₂ ≥ ... ≥ 0
V (n×n): 右奇异向量, 正交
应用: PCA / 推荐系统 / 图像压缩 / 伪逆 低秩近似: 取前 k 个奇异值, 最佳秩 k 近似。

3.5 矩阵求导

常用公式: - ∂(Ax)/∂x = A^T - ∂(x^T A x)/∂x = (A + A^T)x - ∂(log det X)/∂X = (X^T)^(-1)


四 · 编程 (2 题)

4.1 矩阵运算

import numpy as np

A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])

# 乘法
print(A @ B)
# 转置
print(A.T)
# 行列式
print(np.linalg.det(A))
# 逆
print(np.linalg.inv(A))
# 特征值
eigvals, eigvecs = np.linalg.eig(A)
# SVD
U, S, V = np.linalg.svd(A)

4.2 SVD 图像压缩

from PIL import Image
import numpy as np

img = np.array(Image.open("photo.jpg").convert("L"))
U, S, V = np.linalg.svd(img, full_matrices=False)

# 保留前 k 个分量
for k in [10, 50, 100]:
    compressed = U[:, :k] @ np.diag(S[:k]) @ V[:k, :]
    # 重建, 内存: k*(m+n) vs m*n
    print(f"k={k}: 压缩比 {k*(img.shape[0]+img.shape[1])/(img.shape[0]*img.shape[1]):.2%}")