线性代数(七)正交性与投影
Chen Kai BOSS

正交性是线性代数中最优美的概念之一。当两个向量"互不干扰"时,计算变得简单,理解变得清晰。从 GPS 定位到降噪耳机,从图像压缩到推荐系统,正交性的应用无处不在。本章将从直觉出发,带你理解正交性的深层含义,以及它为何是现代科学计算的基石。

什么是正交?从直觉开始

生活中的"正交"

在进入数学定义之前,让我们先感受一下"正交"在生活中的含义。

城市街道:曼哈顿的街道呈网格状排列,南北向和东西向的街道互相垂直。如果你往东走了 3 个街区,这完全不影响你在南北方向的位置。这就是正交——两个方向彼此独立,互不影响

电视遥控器:遥控器上有音量键和频道键。按音量键不会换台,按频道键不会改变音量。音量和频道是"正交"的控制维度。

调味料:做菜时,盐控制咸度,糖控制甜度。在一定范围内,加盐不会让菜变甜,加糖不会让菜变咸(当然,烹饪学家可能会反驳这个简化的说法)。

这种"互不干扰"的性质,在数学上对应着一个简洁的条件:点积为零

正交的数学定义

两个向量 正交( orthogonal),当且仅当:

用分量形式写出来就是:

$$

u_1 v_1 + u_2 v_2 + + u_n v_n = 0 $$

为什么点积为零意味着垂直? 回忆点积的几何公式:

时,,所以点积为零。

几个重要的特殊情况

  1. 零向量与任何向量正交 对所有 成立
  2. 标准基向量两两正交 正交
  3. 向量与自身正交当且仅当它是零向量

正交性的深层含义:信息独立

正交性的本质是信息独立。当两个向量正交时,知道向量在其中一个方向上的分量,不会告诉你任何关于另一个方向分量的信息。

想象你在描述一个人的外貌: - "身高"和"体重"不是完全正交的(高的人往往更重) - "身高"和"眼睛颜色"更接近正交(知道身高不能预测眼睛颜色)

在数据分析中,我们经常希望找到"正交"的特征,因为它们提供的是独立的信息,没有冗余。这正是主成分分析( PCA)的核心思想。

正交集与正交基

正交集的定义

一组向量 构成正交集,如果其中任意两个不同的向量都正交:

例子:三维空间中的标准基 是正交集:

正交集的关键性质:自动线性独立

定理:一个不含零向量的正交集一定是线性独立的。

直觉解释:想象你有三根互相垂直的棍子。你不可能通过组合其中两根来"模拟"第三根——它们指向完全不同的、互不干扰的方向。

证明:假设 。对于任意的 ,用 点乘等式两边:

$$

c_1(_1 _j) + c_2(_2 _j) + + c_k(_k _j) = 0 $$

由正交性,(当 ),所以只剩下:

$$

c_j(_j _j) = c_j |_j|^2 = 0 $$

因为 ,所以 ,因此 。对所有 都成立,故线性独立。

标准正交基

如果正交集中的每个向量都是单位向量(长度为 1),则称为标准正交集( orthonormal set)。

如果标准正交集还张成整个空间(即构成基),则称为标准正交基

标准正交基的特征:设 是标准正交基,则:

这里 是克罗内克符号( Kronecker delta)。

正交基的计算优势

为什么我们如此偏爱正交基?因为坐标计算变得极其简单

一般基的情况:给定基 ,要求向量 在这组基下的坐标,需要解线性方程组:

$$

c_1_1 + c_2_2 + + c_n_n = $$

这通常需要高斯消元,计算量为

正交基的情况:如果基是正交的,坐标可以直接用点积算出:

$$

c_i = $$

标准正交基的情况更简单:

$$

c_i = _i $$

计算量仅为

生活类比:用正交基分解向量,就像称量行李的重量——你不需要把所有行李放一起称然后解方程,而是一件一件单独称就行了。

向量投影:找最近的点

一维投影:影子的数学

想象阳光从正上方照下来,一根倾斜的棍子在地面上投下影子。这个"影子"就是棍子在地面方向上的投影

向量 在向量 上的正交投影定义为:

让我们拆解这个公式:

  1. :衡量 方向上有多少"分量"
  2. 的长度的平方,用于归一化
  3. :这是一个标量,表示投影的"比例系数"
  4. 乘以 :得到与 同方向的向量

投影的长度(标量投影):

注意:标量投影可以是负数(当 方向相反时)。

投影的几何本质:最短距离

投影有一个深刻的几何意义: 是直线 上离 最近的点

为什么?,误差向量为 。投影的定义保证了

现在,取直线上任意另一点 ,距离的平方是:

(第二步用了勾股定理,因为

这个表达式在 时最小,因为

正交分解

每个向量 都可以分解为平行于 的分量垂直于 的分量

记为:

这个分解是唯一的,且两个分量正交。

应用:物理中的力分解。把重力分解为沿斜面方向和垂直斜面方向的分量,就是正交分解的典型应用。

子空间投影:从直线到平面

投影到子空间

如果不是投影到一条直线,而是投影到一个平面或更高维的子空间呢?

的一个子空间,向量 上的投影 满足:

这意味着误差向量 中的每一个向量都正交。

投影矩阵

(矩阵 的列空间)时,投影有优美的矩阵表示。

矩阵,列线性独立。投影 的公式是:

投影矩阵

$$

P = A(ATA){-1}A^T $$

投影矩阵的性质

  1. 幂等性(投影的投影还是自己)
  2. 对称性:$P^T = P(P) = (A) = n$ 幂等性的直觉:想象你把一个物体的影子再投影一次,影子不会变——它已经在"地面"上了。

正规方程

投影公式 中的系数向量 满足正规方程

$$

A^TA = A^T $$

推导:投影的关键条件是 垂直于 ,即 的每一列都正交。用矩阵语言表示就是:

$$

A^T( - A ) = $$

展开得到正规方程

正交补空间

与子空间 相关的一个重要概念是它的正交补( orthogonal complement):

$$

W^{} = { ^n : = 0, W} $$

正交补收集了所有与 正交的向量。

重要性质

即每个向量都可以唯一分解为 中的分量和 中的分量。

四大子空间的正交关系

  • (列空间的正交补是左零空间)
  • (零空间的正交补是行空间)

Gram-Schmidt 正交化:制造正交基

问题的提出

假设你有一组线性独立的向量,但它们不正交。你能否"调整"它们,使它们变成正交的,同时张成相同的空间?

答案是肯定的,方法就是Gram-Schmidt 正交化

算法思想

核心思想是逐步去除之前向量的分量

设原始向量是 ,我们要构造正交向量

步骤

  1. 第一个向量:直接取 2. 第二个向量:从 中减去它在 上的投影 3. 第三个向量:从 中减去它在 上的投影 4. 一般公式5. 单位化:如果需要标准正交基,最后将每个向量除以其长度:

直觉解释

想象你在建造一个正交坐标系:

  • 第一根轴:随便选一个方向(
  • 第二根轴: 大致指向第二个方向,但可能不垂直于第一根轴。我们从 中"扣除"它在第一根轴上的分量,剩下的就垂直于第一根轴了
  • 第三根轴: 从中扣除在前两根轴上的分量,剩下的就同时垂直于前两根轴

每一步都在"清除"之前方向的"污染",只保留新的、独立的信息。

详细例子

进行 Gram-Schmidt 正交化。

第一步 第二步:计算 上的投影

验证:

第三步:计算 上的投影

数值稳定性问题

经典 Gram-Schmidt 算法在数值计算中可能累积误差,导致后面的向量不够正交。改进版 Gram-Schmidt( Modified Gram-Schmidt)在每次投影后立即更新向量,而不是使用原始的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
def modified_gram_schmidt(A):
"""改进版 Gram-Schmidt 正交化"""
m, n = A.shape
Q = A.copy().astype(float)
R = np.zeros((n, n))

for j in range(n):
R[j, j] = np.linalg.norm(Q[:, j])
Q[:, j] = Q[:, j] / R[j, j]
for k in range(j + 1, n):
R[j, k] = Q[:, j] @ Q[:, k]
Q[:, k] = Q[:, k] - R[j, k] * Q[:, j]

return Q, R

QR 分解:正交化的矩阵表示

QR 分解的定义

任何列线性独立的 矩阵 都可以分解为:

$$

A = QR $$

其中: - 矩阵,列为标准正交向量() - 上三角矩阵,对角元为正

与 Gram-Schmidt 的关系

的列就是对 的列进行 Gram-Schmidt 正交化得到的标准正交向量。

的元素记录了原始向量在正交向量上的投影系数:

$$

R_{ij} = _i _j (i j) $$

具体地:

为什么 是上三角的? 因为 只能用 来表示,不需要后面的正交向量。

QR 分解的例子

对矩阵 进行 QR 分解。

Gram-Schmidt 正交化后得到(归一化):

矩阵:

$$

R = =

$$

QR 分解的应用

最小二乘法的改进:正规方程 可以用 QR 分解简化。

$$

A^TA = RTQTQR = R^TR

A^T = RTQT $$

正规方程变为 ,两边乘

$$

R = Q^T $$

这是一个上三角系统,可以用回代法高效求解!

为什么 QR 分解更好? 直接计算 会使条件数平方(),导致数值不稳定。 QR 分解避免了这个问题。

最小二乘法:当方程无解时

问题的提出

现实中,数据往往带有噪声。假设你测量了 5 个数据点,想用一条直线拟合它们。你需要解:

这是 5 个方程 2 个未知数——方程数多于未知数,称为超定系统( overdetermined system)。除非 5 个点恰好共线,否则不存在精确解。

最小二乘解

最小二乘法的思想:既然找不到精确解,就找一个使误差平方和最小的解。

误差向量是 ,我们要最小化:

几何解释 是列空间 中的向量。最小化 就是在 中找离 最近的点——这正是投影

因此,最小二乘解 满足 ,其中 上的投影。

正规方程的推导

最小二乘解满足正规方程

$$

A^TA = A^T $$

推导方法一(几何):投影误差 必须与列空间正交,即

$$

A^T( - A ) = A^TA = A^T $$

推导方法二(微积分):令 ,展开:

$$

f() = (A - )^T(A - ) = TATA - 2^TA + ^T $$

求梯度并令其为零:

得到相同的正规方程。

线性回归的例子

问题:拟合数据点 到直线

构建矩阵

$$

A = , =

$$

计算正规方程

$$

A^TA = , A^T =

$$

求解

解得 $ a = 1/3 b = 3/2线 y = + x$。

加权最小二乘法

有时候不同数据点的可靠性不同。加权最小二乘法给每个数据点一个权重

正规方程变为:

$$

A^TWA = A^TW $$

其中 是权重对角矩阵。

正交矩阵:保持距离与角度

定义与性质

方阵 正交矩阵( orthogonal matrix),如果:

$$

Q^TQ = I $$

等价地,,即转置就是逆。

列向量的性质 的列组成标准正交集。

行向量的性质 的行也组成标准正交集(因为 )。

正交矩阵保持几何

正交矩阵是"刚体变换"——它保持长度、角度和方向性(如果 )。

保持长度

保持内积

保持角度:因为内积保持,而角度由 定义。

正交矩阵的行列式

定理 证明

因此

  • 旋转矩阵( proper orthogonal),保持手性
  • 反射矩阵( improper orthogonal),改变手性

常见的正交矩阵

二维旋转矩阵

$$

R() =

$$

验证:

二维反射矩阵:沿单位向量 的反射

$$

H = I - 2^T $$

验证:,所以

Householder 反射:是 QR 分解的另一种实现方式,数值稳定性比 Gram-Schmidt 更好。

置换矩阵:每行每列只有一个 1,其余为 0 。例如:

$$

P =

$$

作用是交换向量分量的顺序。

正交矩阵的数值优势

正交矩阵的条件数为 1:

这意味着用正交矩阵做计算是数值稳定的——误差不会被放大。

信号处理中的应用

傅里叶基:最重要的正交基

信号处理的核心工具——傅里叶变换——本质上是在一组正交基下的坐标变换。

考虑周期为 的离散信号。定义复指数向量:

这些向量构成正交基(在复内积下):

离散傅里叶变换( DFT)就是把信号 分解到这组正交基上:

$$

X_k = k = {n=0}^{N-1} x_n e^{-2i kn/N} $$

信号分解与滤波

因为傅里叶基是正交的,信号可以无损分解为不同频率分量:

低通滤波:只保留低频分量(小的 ),去除高频噪声

高通滤波:只保留高频分量,提取边缘或突变

带通滤波:只保留特定频率范围

降噪耳机的原理

降噪耳机用麦克风采集外界噪声,然后:

  1. 对噪声信号做傅里叶变换
  2. 生成相位相反的信号
  3. 播放到耳机中

因为正交分量可以独立处理,所以可以"精确抵消"噪声而不影响你听的音乐。

图像压缩: JPEG 中的 DCT

JPEG 图像压缩使用离散余弦变换( DCT),这是傅里叶变换的实数版本。

图像被分成 的小块,每块做 DCT 变换。因为自然图像的高频分量通常很小,可以把它们舍弃或量化,实现压缩。

重建图像时,只需要少数低频分量就能近似原图——这是正交分解的威力。

正交码分多址( CDMA)

手机通信中,多个用户同时使用相同的频率。如何区分不同用户的信号?

CDMA的解决方案:给每个用户分配一个"码",这些码两两正交。

用户 A 的信号: 用户 B 的信号: 接收到的混合信号: 要提取用户 A 的信号,只需:

因为 ,用户 B 的信号被完全过滤掉!

主成分分析( PCA):找最重要的方向

问题的提出

假设你有一组高维数据(比如 1000 个特征),想用少数几个"主要成分"来描述它。如何找到这些主成分?

PCA 的基本思想

PCA 寻找数据方差最大的方向。

第一主成分:数据在这个方向上的投影方差最大

第二主成分:在与第一主成分正交的方向中,方差最大的

...依此类推

为什么要求正交? 正交保证了主成分之间"互不干扰",每个主成分捕获的是独立的信息。

数学表述

设数据矩阵是 (每行是一个样本,已中心化)。

协方差矩阵PCA 等价于对 做特征值分解:

$$

C = V V^T $$

其中 是正交矩阵(特征向量), 是特征值对角矩阵。

的列就是主成分方向,特征值表示该方向上的方差。

降维

保留前 个主成分,数据从 维降到 维:

$$

Y = XV_k $$

其中 的前 列。

这是"最优"的线性降维——在 维空间中,最大程度保留了原始数据的方差(信息)。

Python 实现示例

Gram-Schmidt 正交化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import numpy as np

def gram_schmidt(A):
"""
经典 Gram-Schmidt 正交化
输入: A - 矩阵,列为待正交化的向量
输出: Q - 列为标准正交向量的矩阵
"""
m, n = A.shape
Q = np.zeros((m, n))

for j in range(n):
v = A[:, j].copy()
for i in range(j):
v = v - (Q[:, i] @ A[:, j]) * Q[:, i]
Q[:, j] = v / np.linalg.norm(v)

return Q

# 测试
A = np.array([[1, 1, 0],
[1, 0, 1],
[0, 1, 1]], dtype=float).T
Q = gram_schmidt(A)
print("正交矩阵 Q:")
print(Q)
print("\n 验证 Q^T Q = I:")
print(Q.T @ Q)

QR 分解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
def qr_decomposition(A):
"""
QR 分解
输入: A - m × n 矩阵,列线性独立
输出: Q - m × n 正交矩阵, R - n × n 上三角矩阵
"""
m, n = A.shape
Q = np.zeros((m, n))
R = np.zeros((n, n))

for j in range(n):
v = A[:, j].copy()
for i in range(j):
R[i, j] = Q[:, i] @ A[:, j]
v = v - R[i, j] * Q[:, i]
R[j, j] = np.linalg.norm(v)
Q[:, j] = v / R[j, j]

return Q, R

# 测试
A = np.array([[1, 1],
[1, 0],
[0, 1]], dtype=float)
Q, R = qr_decomposition(A)
print("Q =\n", Q)
print("\nR =\n", R)
print("\n 验证 A = QR:\n", Q @ R)

最小二乘法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
def least_squares(A, b):
"""
用正规方程求解最小二乘问题
"""
return np.linalg.solve(A.T @ A, A.T @ b)

def least_squares_qr(A, b):
"""
用 QR 分解求解最小二乘问题(更稳定)
"""
Q, R = np.linalg.qr(A)
return np.linalg.solve(R, Q.T @ b)

# 线性拟合示例
x = np.array([1, 2, 3, 4, 5])
y = np.array([2.1, 3.9, 6.2, 7.8, 10.1])

# 构建设计矩阵
A = np.column_stack([np.ones(len(x)), x])

# 求解
coeffs = least_squares_qr(A, y)
print(f"拟合结果: y = {coeffs[0]:.4f} + {coeffs[1]:.4f}x")

投影可视化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import matplotlib.pyplot as plt

def visualize_projection():
"""可视化向量投影"""
fig, ax = plt.subplots(figsize=(8, 8))

# 定义向量
a = np.array([3, 1])
b = np.array([1, 3])

# 计算投影
proj = (np.dot(a, b) / np.dot(a, a)) * a
error = b - proj

# 绘制
ax.quiver(0, 0, a[0], a[1], angles='xy', scale_units='xy', scale=1,
color='blue', label=r'$\vec{a}$', width=0.02)
ax.quiver(0, 0, b[0], b[1], angles='xy', scale_units='xy', scale=1,
color='green', label=r'$\vec{b}$', width=0.02)
ax.quiver(0, 0, proj[0], proj[1], angles='xy', scale_units='xy', scale=1,
color='red', label=r'proj$_{\vec{a }}\vec{b}$', width=0.02)
ax.quiver(proj[0], proj[1], error[0], error[1], angles='xy',
scale_units='xy', scale=1, color='orange',
label='误差向量', width=0.02)

ax.set_xlim(-1, 5)
ax.set_ylim(-1, 5)
ax.set_aspect('equal')
ax.grid(True)
ax.legend()
ax.set_title('向量投影示意图')
plt.show()

visualize_projection()

练习题

基础题

习题 1:验证向量 是否正交。如果正交,将它们单位化得到标准正交基。

习题 2:计算向量 在向量 上的投影。并验证误差向量与 正交。

习题 3:对向量组 进行 Gram-Schmidt 正交化,并验证结果向量正交。

习题 4:设 ,验证 是投影矩阵(即 )。

习题 5:旋转矩阵 是正交矩阵吗?验证

进阶题

习题 6:证明如果 是正交集(不含零向量),则它们线性独立。

习题 7:证明投影矩阵 满足 。几何上解释为什么"投影的投影还是自己"。

习题 8:对矩阵 进行 QR 分解,并验证

习题 9:用最小二乘法拟合数据点 到直线

习题 10:设 。求向量 上的投影。

习题 11:证明两个正交矩阵的乘积仍是正交矩阵。

习题 12:设 矩阵($ m > nA = QR$ 是它的 QR 分解。证明 的列空间等于 的列空间。

应用题

习题 13:某实验测量了 5 组数据 ,怀疑满足关系 。通过变量替换 ,将问题转化为线性拟合 ,并用最小二乘法求

数据: 习题 14:在信号处理中,给定被噪声污染的信号 ,设计最小二乘方法估计

习题 15:解释为什么 JPEG 图像压缩使用离散余弦变换( DCT)而不是直接存储像素值。正交变换在其中起什么作用?

编程题

习题 16:实现改进版 Gram-Schmidt 算法( Modified Gram-Schmidt),并与经典版本比较数值稳定性。提示:使用接近线性相关的向量测试。

习题 17:用 Python 实现投影矩阵的计算,并可视化向量到平面的投影。

习题 18:实现一个简单的主成分分析( PCA),对二维数据进行降维和可视化。

习题 19:用 QR 分解实现最小二乘法,并与 NumPy 的 np.linalg.lstsq 结果比较。

习题 20:模拟一个简单的 CDMA 系统: - 生成 3 个正交码(长度为 4) - 3 个用户分别发送比特 0 或 1 - 模拟接收混合信号 - 用正交性分离每个用户的信号

本章总结

核心概念

  1. 正交,表示向量"互不干扰"

  2. 投影

    • 一维: - 子空间:$ = A(ATA){-1}ATATA = A^T$,最小二乘问题的核心
  3. Gram-Schmidt:将任意线性独立向量组变成正交基

  4. QR 分解 正交、 上三角,数值稳定

  5. 正交矩阵,保持长度和角度

应用领域

领域 应用 使用的概念
数据分析 线性回归 最小二乘法
机器学习 PCA 降维 正交分解
信号处理 FFT 、滤波 正交基
图像处理 JPEG 压缩 DCT 变换
通信 CDMA 正交码
数值计算 解线性方程组 QR 分解

下一章预告

《对称矩阵与二次型》 将探讨:

  • 对称矩阵的谱定理
  • 实对称矩阵的特征值都是实数
  • 正定矩阵的判定与应用
  • 二次型的几何意义
  • 主轴定理
  • 优化问题中的 Hessian 矩阵

参考资料

  1. Strang, G. (2019). Introduction to Linear Algebra. Chapters 4, 10.
  2. Trefethen, L. N. & Bau, D. (1997). Numerical Linear Algebra. Lectures 7-11.
  3. 3Blue1Brown. Essence of Linear Algebra, Chapters 9, 11.
  4. Golub, G. H. & Van Loan, C. F. (2013). Matrix Computations. Chapter 5.

本文是《线性代数的本质与应用》系列的第 7 章,共 18 章。

  • 本文标题:线性代数(七)正交性与投影
  • 本文作者:Chen Kai
  • 创建时间:2019-02-06 15:30:00
  • 本文链接:https://www.chenk.top/%E7%BA%BF%E6%80%A7%E4%BB%A3%E6%95%B0%EF%BC%88%E4%B8%83%EF%BC%89%E6%AD%A3%E4%BA%A4%E6%80%A7%E4%B8%8E%E6%8A%95%E5%BD%B1/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
 评论