第01章 · 向量 · 阶段测试题答案¶
配套测试题:
zh/教辅/阶段测试题/第01章.md建议用时: 60 分钟 评分标准: 见每题末尾
一 · 单选题 (8 题)¶
1.1 C
向量空间必须对加法和标量乘法封闭。{x≥0} 对加法封闭但对 -1×x 封闭失败。{ax+by: a,b≥0} 对负标量不封闭。
1.2 B
范数必须满足 ① 正定性 ② 三角不等式 ③ 齐次。三角不等式是核心。
1.3 A
||u - v||² = ||u||² + ||v||² - 2u·v = 1 + 1 - 2cos60° = 1, 故 ||u - v|| = 1。
1.4 B
n 维空间的基需要 n 个线性无关向量。
1.5 C
cos θ = u·v / (||u|| × ||v||) = -1/2, 故 θ = 120°。
1.6 B
Schmidt 正交化将任意线性无关向量组变为正交向量组, 不改变张成空间。
1.7 C
Rank-Nullity 定理: dim(V) = dim(Ker) + dim(Im)。
1.8 A
矩阵的列空间维数 = 秩。
二 · 多选题 (4 题)¶
2.1 ABCD
4 个都是向量的常用运算。
2.2 ABD
C 错: 零向量的范数应为 0, 不是正数。
2.3 AC
B 错: 不一定正交; D 错: 不一定线性无关(可能有零向量)。
2.4 BC
A 错: 零空间一定过原点; D 错: 不一定(零空间可能不是子空间维数等)。
三 · 简答题 (5 题)¶
3.1 范数 3 大公理¶
答: 1. 正定性: ||x|| ≥ 0, 且 ||x|| = 0 iff x = 0 2. 三角不等式: ||x + y|| ≤ ||x|| + ||y|| 3. 齐次性: ||αx|| = |α| × ||x||
反例: - ||x|| = -1 (不满足正定性) - ||x|| = x₁² + x₂² + 1 (在 x=0 时为 1, 不满足正定性) - ||x|| = x₁² + |x₂| (不满足齐次性, ||2x|| = 4x₁² + 2|x₂| ≠ 2||x||)
3.2 L1 vs L2 范数¶
L1: ||x||₁ = Σ|xᵢ|, 稀疏性 (SVM / Lasso), 几何: 菱形 L2: ||x||₂ = √(Σxᵢ²), 数值稳定 (Ridge), 几何: 球形
L1 偏好稀疏解: 因为 L1 等值面在坐标轴有"尖角", 优化时容易"撞"到稀疏点(某一维 = 0)。
3.3 正交基与标准基¶
标准基: e₁=(1,0), e₂=(0,1), 正交但非完备(只覆盖 ℝ² 的"基本方向") 正交基: 任何正交向量组展开空间, 如 Schmidt 正交化结果。
Gram-Schmidt 步骤: 对每个新向量减去它在已有正交基上的投影。
3.4 点积的几何与代数¶
代数: u·v = Σ uᵢvᵢ 几何: u·v = ||u|| × ||v|| × cos θ - cos θ = 1: 同向, 最大 - cos θ = 0: 正交 - cos θ = -1: 反向, 最小(最负) - cos θ = 0.5: 60° - cos θ = -0.5: 120°
3.5 维数公式¶
答: 对线性映射 T: V → W,
例: T: ℝ³ → ℝ², dim(Ker)=1, dim(Im)=2 → dim(V)=3 ✓
四 · 编程题 (2 题)¶
4.1 向量范数实现¶
import numpy as np
def l1_norm(x): return np.sum(np.abs(x))
def l2_norm(x): return np.sqrt(np.sum(x**2))
def linf_norm(x): return np.max(np.abs(x))
# 验证范数公理
def verify_norm_axioms(norm_func):
x = np.random.randn(10)
assert norm_func(x) >= 0 # 正定
assert abs(norm_func(0) - 0) < 1e-9
y = np.random.randn(10)
assert norm_func(x + y) <= norm_func(x) + norm_func(y) + 1e-9 # 三角
alpha = np.random.randn()
assert abs(norm_func(alpha * x) - abs(alpha) * norm_func(x)) < 1e-9 # 齐次
print(f"{norm_func.__name__} axioms OK")
verify_norm_axioms(l1_norm)
verify_norm_axioms(l2_norm)
4.2 Gram-Schmidt¶
def gram_schmidt(vectors):
ortho = []
for v in vectors:
for u in ortho:
v = v - np.dot(v, u) / np.dot(u, u) * u
if np.linalg.norm(v) > 1e-10: # 跳过零向量
ortho.append(v / np.linalg.norm(v)) # 归一化
return np.array(ortho)
# 测试
v1 = np.array([1, 1, 0], dtype=float)
v2 = np.array([1, 0, 1], dtype=float)
v3 = np.array([0, 1, 1], dtype=float)
orthonormal = gram_schmidt([v1, v2, v3])
print(orthonormal)
# 验证正交性
print(orthonormal @ orthonormal.T) # 应该是单位矩阵
五 · 评分标准¶
| 题号 | 分值 | 评分要点 |
|---|---|---|
| 单选 ×8 | 32 分 | 每题 4 分, 全对得满分 |
| 多选 ×4 | 20 分 | 每题 5 分, 错选漏选 0 分 |
| 简答 ×5 | 30 分 | 每题 6 分: 概念 2 + 推导 2 + 实例 2 |
| 编程 ×2 | 18 分 | 每题 9 分: 正确性 4 + 完整 3 + 风格 2 |
总分 ≥ 80: 优秀, ≥ 60: 合格, < 60: 需复习 Ch01 §01-§05。
六 · 易错点¶
- 范数 vs 距离: 距离 d(x,y) = ||x-y||
- L1 偏好稀疏: 不等于"鼓励更多稀疏", 而是"等值面尖角"
- Schmidt 正交化: 必须从前往后减投影, 顺序影响结果(但张成不变)
- 零空间 / 行空间: 列空间 vs 行空间 dim 关系是 dim 相等(秩), 不是同一空间
- 单位正交基: 既正交又归一, Gram 矩阵是单位阵