第 09 章

内积与正交性

从角度与长度出发,理解正交投影与 Gram-Schmidt 正交化

01

核心概念

内积(点积)的定义

在 Rⁿ 空间中,两个向量 u 和 v 的内积(又称点积、标量积)定义为对应分量乘积之和:

u · v = u₁v₁ + u₂v₂ + ... + uₙvₙ = uᵀv

内积将两个向量映射为一个实数,它是连接代数与几何的桥梁。内积满足对称性、线性性和正定性三条公理。

几何直觉

内积的另一种表达是 u · v = ||u|| ||v|| cosθ,其中 θ 是两向量夹角。当内积为零时,两向量互相垂直(正交)。

范数(长度)

向量 v 的范数(或长度、模)由内积诱导:

||v|| = √(v · v) = √(v₁² + v₂² + ... + vₙ²)

范数满足非负性、齐次性和三角不等式。单位向量是范数为 1 的向量,任何非零向量可通过 v̂ = v / ||v|| 单位化。

夹角与正交

两非零向量 u 和 v 的夹角 θ 满足:

cosθ = (u · v) / (||u|| ||v||)

u · v = 0 时,称 u 与 v 正交(垂直),记作 u ⊥ v。零向量与所有向量正交。

正交投影

向量 y 在向量 u 方向上的正交投影为:

projᵤ(y) = ((y · u) / (u · u)) u

投影的核心意义在于:它是子空间中距离 y 最近的点。误差向量 e = y − projᵤ(y) 与 u 正交,这就是"正交"名称的由来。

正交补

设 W 是 Rⁿ 的子空间,W 的正交补 W⊥ 包含所有与 W 中向量正交的向量:

W⊥ = { v ∈ Rⁿ | v · w = 0, ∀w ∈ W }

正交补满足重要性质:dim(W) + dim(W⊥) = n,且 (W⊥)⊥ = W。

Gram-Schmidt 正交化

给定子空间 W 的一组基 {x₁, x₂, ..., xₚ},Gram-Schmidt 过程可构造出 W 的一组正交基 {v₁, v₂, ..., vₚ}:

v₁ = x₁
v₂ = x₂ − projᵥ₁(x₂)
v₃ = x₃ − projᵥ₁(x₃) − projᵥ₂(x₃)
...

每一步都从前一个向量中减去它在已得正交向量上的投影,确保新向量与之前所有向量正交。最后将各 vᵢ 单位化即得标准正交基。

关键要点

正交基的优势在于:计算坐标时无需解线性方程组,直接通过投影即可。若 {u₁, ..., uₚ} 是 W 的正交基,则 y ∈ W 的坐标 cᵢ = (y · uᵢ) / (uᵢ · uᵢ)。

02

计算方法

1. 计算内积与范数

对 u = (3, −1, 2),v = (1, 2, −1):

2. 计算正交投影

求 y = (3, 2, 1) 在 u = (1, 1, 0) 上的投影:

3. Gram-Schmidt 正交化步骤

以基 x₁=(1,1,1), x₂=(0,1,1), x₃=(0,0,1) 为例:

  1. v₁ = x₁ = (1,1,1)
  2. v₂ = x₂ − ((x₂·v₁)/(v₁·v₁))v₁ = (0,1,1) − (2/3)(1,1,1) = (−2/3, 1/3, 1/3)
  3. v₃ = x₃ − ((x₃·v₁)/(v₁·v₁))v₁ − ((x₃·v₂)/(v₂·v₂))v₂ = (0,0,1) − (1/3)(1,1,1) − (1/3)/(2/3)·(−2/3,1/3,1/3) = (0,−1/2,1/2)

4. 求正交补的基

若 W = Span{a₁, ..., aₖ},则 W⊥ = Nul(A),其中 A 的行向量为 aᵢᵀ。通过行简化求 A 的零空间基即可。

03

工程应用

最小二乘逼近

当线性方程组 Ax = b 无解时,最小二乘解 x̂ 满足 Ax̂ 是 b 在 Col(A) 上的正交投影。正交性条件 Aᵀ(b − Ax̂) = 0 导出正规方程 AᵀAx̂ = Aᵀb。正交投影是"最优逼近"的数学基础。

信号处理:正交调制

在通信系统中,正交载波 sin(ωt) 与 cos(ωt) 互相正交,使得两路信号可在同一频带传输而不互相干扰(QAM 调制)。正交性保证了接收端能独立恢复原始信号。

GPS 定位与最小距离

GPS 通过测量到多颗卫星的距离求解位置。由于测量误差,方程组通常不一致。最小二乘法利用正交投影寻找使误差平方和最小的位置估计,本质上是将观测向量投影到解空间。

计算机图形学:法向量

三维模型的表面法向量决定了光照计算。通过三角形两边向量的叉积(由内积派生)得到法向量,而法向量的单位化(归一化)依赖范数计算。正交基还是摄像机坐标系的核心。

04

例题

例题 1:计算正交投影

题目:设 y = (3, −1, 2),u = (1, 2, 1)。求 y 在 u 上的正交投影 projᵤ(y),并验证误差向量与 u 正交。

解:

首先计算内积:y · u = 3×1 + (−1)×2 + 2×1 = 3 − 2 + 2 = 3。

u · u = 1² + 2² + 1² = 6。

投影为 projᵤ(y) = (3/6) u = (1/2)(1, 2, 1) = (0.5, 1, 0.5)

误差向量 e = y − projᵤ(y) = (3, −1, 2) − (0.5, 1, 0.5) = (2.5, −2, 1.5)。

验证:e · u = 2.5×1 + (−2)×2 + 1.5×1 = 2.5 − 4 + 1.5 = 0,正交成立。

答案:projᵤ(y) = (0.5, 1, 0.5)
例题 2:Gram-Schmidt 正交化

题目:对 R³ 中的基 x₁ = (1, 0, 1),x₂ = (0, 1, 1),x₃ = (1, 1, 0),用 Gram-Schmidt 过程构造一组标准正交基。

解:

Step 1:v₁ = x₁ = (1, 0, 1)。||v₁|| = √2,故 e₁ = (1/√2, 0, 1/√2)。

Step 2:v₂ = x₂ − ((x₂·v₁)/(v₁·v₁))v₁ = (0,1,1) − (1/2)(1,0,1) = (−0.5, 1, 0.5)。

||v₂|| = √(0.25+1+0.25) = √1.5 = √(3/2),e₂ = (−1/√6, 2/√6, 1/√6)。

Step 3:v₃ = x₃ − ((x₃·v₁)/(v₁·v₁))v₁ − ((x₃·v₂)/(v₂·v₂))v₂

x₃·v₁ = 1,x₃·v₂ = −0.5+1+0 = 0.5,v₂·v₂ = 1.5。

v₃ = (1,1,0) − 0.5(1,0,1) − (0.5/1.5)(−0.5,1,0.5) = (1,1,0) − (0.5,0,0.5) − (−1/6, 1/3, 1/6) = (2/3, 2/3, −2/3)

||v₃|| = √(4/9+4/9+4/9) = √(12/9) = 2/√3,故 e₃ = (1/√3, 1/√3, −1/√3)。

标准正交基:e₁=(1/√2,0,1/√2), e₂=(−1/√6,2/√6,1/√6), e₃=(1/√3,1/√3,−1/√3)
例题 3:求正交补

题目:设 W 是 R⁴ 中由 a₁=(1,2,3,0) 和 a₂=(0,1,−1,2) 张成的子空间,求 W⊥ 的一组基。

解:

W⊥ = Nul(A),其中 A = [a₁ᵀ; a₂ᵀ] = [[1,2,3,0],[0,1,−1,2]]。

对 A 行简化:R₂ 不变,R₁ − 2R₂ → [1, 0, 5, −4]。得主元列 1, 2;自由变量 x₃, x₄。

由 x₁ + 5x₃ − 4x₄ = 0 和 x₂ − x₃ + 2x₄ = 0:

  • 令 x₃=1, x₄=0:x₂=1, x₁=−5 → v₁ = (−5, 1, 1, 0)
  • 令 x₃=0, x₄=1:x₂=−2, x₁=4 → v₂ = (4, −2, 0, 1)
W⊥ 的基:{(−5, 1, 1, 0), (4, −2, 0, 1)}
例题 4:最小二乘逼近

题目:求数据点 (0,1), (1,3), (2,4), (3,4) 的最佳拟合直线 y = mx + b。

解:

设计矩阵 A = [[1,0],[1,1],[1,2],[1,3]],观测向量 b = (1,3,4,4)ᵀ。

AᵀA = [[4,6],[6,14]],Aᵀb = (12, 23)ᵀ。

解正规方程 [[4,6],[6,14]][b;m] = [12;23]:

行列式 det = 4×14 − 6×6 = 56 − 36 = 20。

b = (14×12 − 6×23)/20 = (168 − 138)/20 = 1.5

m = (−6×12 + 4×23)/20 = (−72 + 92)/20 = 1.0

最佳拟合直线:y = x + 1.5
05

MATLAB 代码

MATLAB · 内积、范数与投影
% 定义向量 u = [1; 2; 1]; y = [3; -1; 2]; % 内积与范数 dp = dot(u, y) % 3 norm_u = norm(u) % sqrt(6) ≈ 2.449 norm_y = norm(y) % sqrt(14) ≈ 3.742 % 正交投影 proj = (dot(y,u) / dot(u,u)) * u % [0.5; 1; 0.5] e = y - proj; % 误差向量 dot(e, u) % 验证正交:0 % 夹角 theta = acos(dot(u,y)/(norm(u)*norm(y))) * 180/pi % 角度(度)
MATLAB · Gram-Schmidt 正交化
% Gram-Schmidt 正交化函数 function [Q, R] = gram_schmidt(A) [m, n] = size(A); Q = zeros(m, n); R = zeros(n, n); for k = 1:n v = A(:,k); for j = 1:k-1 R(j,k) = dot(Q(:,j), A(:,k)); v = v - R(j,k) * Q(:,j); end R(k,k) = norm(v); Q(:,k) = v / R(k,k); end end % 测试 A = [1 0 1; 0 1 1; 1 1 0]; [Q, R] = gram_schmidt(A); Q % 标准正交列 Q'*Q % 验证正交:单位矩阵
MATLAB · 最小二乘解
% 最小二乘拟合直线 x = [0; 1; 2; 3]; b = [1; 3; 4; 4]; A = [ones(4,1), x]; % 方法1:正规方程 sol = (A'*A)\(A'*b) % [1.5; 1.0] % 方法2:反斜杠运算符 sol2 = A\b % 相同结果 % 方法3:QR 分解(数值更稳定) [Q, R] = qr(A, 0); sol3 = R\(Q'*b)
Gram-Schmidt 正交化过程可视化(二维示例)
← 上一章:特征值与特征向量 下一章:正交对角化与谱定理 →