跳转至

第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,

dim(V) = dim(Ker T) + dim(Im T)

例: 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。


六 · 易错点

  1. 范数 vs 距离: 距离 d(x,y) = ||x-y||
  2. L1 偏好稀疏: 不等于"鼓励更多稀疏", 而是"等值面尖角"
  3. Schmidt 正交化: 必须从前往后减投影, 顺序影响结果(但张成不变)
  4. 零空间 / 行空间: 列空间 vs 行空间 dim 关系是 dim 相等(秩), 不是同一空间
  5. 单位正交基: 既正交又归一, Gram 矩阵是单位阵