第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) 都可以分解为:
应用: 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%}")