正交性与投影 -- 当向量互不干扰
正交性是 GPS 定位、降噪耳机和 JPEG 压缩的数学基础。本章从正交向量与投影的几何直觉出发,一路讲到 Gram-Schmidt 正交化、QR 分解和最小二乘 -- 现代科学计算的脊梁。
为什么正交性如此重要
两个向量"正交",说的是它们彼此互不干扰:一个方向上的信息不会泄漏到另一个方向。这一句简单的话背后,藏着 GPS 定位、降噪耳机、JPEG 压缩、推荐系统,以及绝大多数数值线性代数。
正交性是线性代数中最大的一类计算捷径。一般的基下,求坐标要解线性方程组;换成正交基之后,每个坐标只需要一个点积——同样的问题,换个角度看,就从难变成了易。
本章会从"垂直"这个最朴素的直觉出发,一路推到科学计算的几大主力:正交投影、Gram-Schmidt 正交化、QR 分解、最小二乘。
你将学到
- 为什么"点积为零"等价于几何意义上的"垂直"
- 正交基与标准正交基为何能让坐标计算变得平凡
- 向量投影:影子的数学
- 子空间投影与投影矩阵$P=A(A^TA)^{-1}A^T$- Gram-Schmidt 正交化:一步一步造出一组正交基
- QR 分解:Gram-Schmidt 的矩阵外壳
- 最小二乘:当方程根本无解时,怎么办
前置知识
- 点积与向量范数(第 1 章)
- 线性独立性与基(第 2 章)
- 矩阵-向量乘法与列空间(第 3、5 章)
从直觉出发:什么是正交
生活中的"互不干扰"
先别急着写公式,感受一下"正交"在生活里是什么样子。
城市街道。 曼哈顿的街道呈方格网,南北向与东西向互相垂直。你往东走 3 个街区,南北方向的位置一动不动。两个方向,零干扰,这就是正交。
电视遥控器。 音量键和频道键,按音量永远不会换台。两个旋钮,互不影响。
调味料。 盐控制咸度,糖控制甜度。在合理范围内,加盐不会让菜更甜(请烹饪老师们原谅这个简化)。
反复出现的模式是:正交方向承载的是彼此独立的信息。
正交的数学定义
两个向量$\vec{u}$、$\vec{v}$正交,当且仅当:$\vec{u}\cdot\vec{v}=0$用分量写出来就是:$u_1v_1+u_2v_2+\cdots+u_nv_n=0$为什么"点积为零"就是"垂直"? 回忆点积的几何形式:$\vec{u}\cdot\vec{v}=\|\vec{u}\|\|\vec{v}\|\cos\theta$当$\theta=90^\circ$时$\cos\theta=0$,整个点积为零。

几个值得记住的特殊情况:
- 零向量与任何向量都正交($\vec{0}\cdot\vec{v}=0$恒成立)。
- 标准基向量两两正交:$\vec{e}_i\cdot\vec{e}_j=0$($i\neq j$)。
- 一个非零向量不可能与自己正交($\vec{v}\cdot\vec{v}=\|\vec{v}\|^2>0$)。
更深一层:信息独立
正交性的本质,其实是信息独立:当两个向量正交时,知道其中一个方向上的分量,对另一个方向上的分量没有任何提示。它们各自度量着各自的事。
举个语言上的小例子。描述一个人:
- “身高"和"体重"高度相关,并不正交。
- “身高"和"眼睛颜色"几乎正交——一个完全预测不了另一个。
数据分析中,我们常常专门去找一组正交特征,因为它们承载的是非冗余信息。这就是主成分分析(PCA)的核心思想,本章末尾会再回到这个话题。
正交集与正交基
定义
向量集合$\{\vec{v}_1,\ldots,\vec{v}_k\}$是正交集,如果其中任意两个不同的向量都正交:$\vec{v}_i\cdot\vec{v}_j=0\quad(\,i\neq j\,)$$\mathbb{R}^3$中的标准基$\{\vec{e}_1,\vec{e}_2,\vec{e}_3\}$是最经典的例子:三根互相垂直的坐标轴。
正交集自动线性独立
定理。 任何一个不含零向量的正交集都是线性独立的。
直觉。 三根互相垂直的木棍指向完全不同的方向。你不可能用其中两根的组合"模拟"出第三根——它们之间没有任何重叠可供拼凑。
一行证明。 假设$c_1\vec{v}_1+\cdots+c_k\vec{v}_k=\vec{0}$,两边同时与$\vec{v}_i$点积。所有$\vec{v}_j\cdot\vec{v}_i$($j\neq i$)项都为零,剩下$c_i\|\vec{v}_i\|^2=0$。因为$\vec{v}_i\neq\vec{0}$,所以$c_i=0$。对每个$i$都成立,证毕。
正交性顺手就送了你线性独立。
标准正交基
如果一组正交向量每个都是单位向量,就叫标准正交集;如果它还张成整个空间,就是标准正交基。
对标准正交基$\{\vec{q}_1,\ldots,\vec{q}_n\}$而言:$\vec{q}_i\cdot\vec{q}_j=\delta_{ij}=\begin{cases}1,&i=j\\0,&i\neq j\end{cases}$### 正交基为什么这么好用
给一个向量$\vec{v}$和一组基$\{\vec{u}_1,\ldots,\vec{u}_n\}$,要找坐标$c_1,\ldots,c_n$使得$\vec{v}=c_1\vec{u}_1+\cdots+c_n\vec{u}_n$。
- 一般基。 解线性方程组$U\vec{c}=\vec{v}$,高斯消元,$O(n^3)$次运算。
- 正交基。 每个坐标都是一个点积:$c_i=\frac{\vec{v}\cdot\vec{u}_i}{\|\vec{u}_i\|^2}$- 标准正交基。 更简单:$c_i=\vec{v}\cdot\vec{q}_i$每个坐标只需要$O(n)$次运算,不需要解方程,也不会因为消元出现灾难性抵消。
打个比方:用一组正交基做分解,就像称量一堆行李。基不正交就像把所有行李堆在一起称,再反过来推每件多重;基正交,就是一件一件分开称。
向量投影:影子的数学

一维投影
想象正午阳光垂直照下,一根斜放的棍子在地上投出影子。这个影子,就是棍子在地面方向上的投影。
向量$\vec{b}$在向量$\vec{a}$上的正交投影定义为:$\mathrm{proj}_{\vec{a}}\vec{b}=\frac{\vec{a}\cdot\vec{b}}{\vec{a}\cdot\vec{a}}\,\vec{a}$慢慢拆开看:
-$\vec{a}\cdot\vec{b}$度量了$\vec{b}$沿$\vec{a}$方向有多少"分量”; -$\vec{a}\cdot\vec{a}=\|\vec{a}\|^2$是用来"归一化”$\vec{a}$的长度平方;
- 比例是一个标量,再乘上$\vec{a}$,就得到了投影向量。
标量投影——投影的有向长度——是:$\mathrm{comp}_{\vec{a}}\vec{b}=\frac{\vec{a}\cdot\vec{b}}{\|\vec{a}\|}$当$\vec{b}$大致背离$\vec{a}$时,这个值会是负的。
投影 = 最近点
这里有一个深刻的几何事实:$\mathrm{proj}_{\vec{a}}\vec{b}$是直线$\mathrm{span}\{\vec{a}\}$上离$\vec{b}$最近的点。
为什么?记投影为$\hat{\vec{b}}$,误差为$\vec{e}=\vec{b}-\hat{\vec{b}}$。由构造,$\vec{e}\perp\vec{a}$。对直线上任何另一点$t\vec{a}$,由勾股定理:$\|\vec{b}-t\vec{a}\|^2=\|\vec{e}\|^2+\|t\vec{a}-\hat{\vec{b}}\|^2\geq\|\vec{e}\|^2$当且仅当$t\vec{a}=\hat{\vec{b}}$时取到等号。投影自动让距离最小。
正交分解
任何向量$\vec{b}$都可以唯一地分解成沿$\vec{a}$方向的分量和垂直于$\vec{a}$方向的分量:$\vec{b}=\underbrace{\mathrm{proj}_{\vec{a}}\vec{b}}_{\text{平行}}+\underbrace{(\vec{b}-\mathrm{proj}_{\vec{a}}\vec{b})}_{\text{垂直}}$两块互相正交。物理里斜面上重力分解成沿斜面和垂直斜面两个分量,正是正交分解的经典应用。
子空间投影:从直线到平面
一般情形
如果不是把向量投影到一条直线,而是投影到一个平面或更高维的子空间$W$呢?$\vec{b}$在$W$上的投影$\hat{\vec{b}}$由下式定义:$\vec{b}-\hat{\vec{b}}\,\perp\,W$误差向量与$W$中所有向量都正交,不止一个。

投影矩阵
当$W=\mathrm{Col}(A)$且$m\times n$矩阵$A$的列线性独立时,投影有一个干净的闭式解:$\hat{\vec{b}}=A(A^TA)^{-1}A^T\vec{b}$投影矩阵就是:$P=A(A^TA)^{-1}A^T$有三条性质值得背下来:
- 幂等性:$P^2=P$。影子已经在地上了,再投一次还是它自己。
- 对称性:$P^T=P$。正交投影是对称的;非正交(斜投影)则不是。
- 秩:$\mathrm{rank}(P)=n=\dim W$。
这三条合在一起,恰好唯一刻画了正交投影矩阵。
正规方程
满足$\hat{\vec{b}}=A\hat{\vec{x}}$的坐标向量$\hat{\vec{x}}$,是正规方程的解:$A^TA\hat{\vec{x}}=A^T\vec{b}$推导很短:正交条件$\vec{b}-A\hat{\vec{x}}\perp\mathrm{Col}(A)$等价于$A^T(\vec{b}-A\hat{\vec{x}})=\vec{0}$,整理就是上式。
正交补空间
子空间$W\subseteq\mathbb{R}^n$的正交补,是所有与$W$正交的向量构成的集合:$W^{\perp}=\{\vec{v}\in\mathbb{R}^n:\vec{v}\cdot\vec{w}=0,\ \forall\vec{w}\in W\}$
任何向量都能唯一分解为$\vec{v}=\vec{v}_W+\vec{v}_{W^{\perp}}$,其中$\vec{v}_W\in W$,$\vec{v}_{W^{\perp}}\in W^{\perp}$。我们记作$\mathbb{R}^n=W\oplus W^{\perp}$。
矩阵$A$的四大基本子空间满足:
-$\mathrm{Col}(A)^{\perp}=\mathrm{Null}(A^T)$(列空间的正交补是左零空间) -$\mathrm{Null}(A)^{\perp}=\mathrm{Row}(A)$(零空间的正交补是行空间)
这就是 Strang 老爷子在每节课结尾都要画在黑板下方的"正交结构图"。
Gram-Schmidt:手工制造正交基
问题
你有一组线性独立的向量$\vec{a}_1,\ldots,\vec{a}_n$,但它们不正交。能不能调整一下,把它们变成一组正交向量,且张成的空间不变?
可以。Gram-Schmidt 算法一次构造一根轴,依次完成。

算法
依次构造正交向量$\vec{u}_1,\ldots,\vec{u}_n$。
第 1 步。 第一个向量原封不动:$\vec{u}_1=\vec{a}_1$。
第 2 步。 从$\vec{a}_2$中减去它沿$\vec{u}_1$方向的部分:$\vec{u}_2=\vec{a}_2-\frac{\vec{u}_1\cdot\vec{a}_2}{\vec{u}_1\cdot\vec{u}_1}\,\vec{u}_1$第 3 步。 从$\vec{a}_3$中减去它沿前两根轴的分量:$\vec{u}_3=\vec{a}_3-\frac{\vec{u}_1\cdot\vec{a}_3}{\vec{u}_1\cdot\vec{u}_1}\,\vec{u}_1-\frac{\vec{u}_2\cdot\vec{a}_3}{\vec{u}_2\cdot\vec{u}_2}\,\vec{u}_2$一般公式:$\vec{u}_k=\vec{a}_k-\sum_{j=1}^{k-1}\frac{\vec{u}_j\cdot\vec{a}_k}{\vec{u}_j\cdot\vec{u}_j}\,\vec{u}_j$如果想要标准正交基,再把每个$\vec{u}_k$归一化:$\vec{q}_k=\vec{u}_k/\|\vec{u}_k\|$。
直觉解释
可以把它想成一根一根搭建正交坐标系:
- 第一根轴。 随便选一个方向。
- 第二根轴。 找一个"大致指向别处"的向量,把它沿第一根轴的分量扣掉。剩下的部分必然垂直于第一根轴。
- 第三根轴。 再找一个向量,把它沿前两根轴的分量都扣掉。剩下的就同时垂直于前两根。
每一步都是在"清除前面方向带来的污染",只保留真正的新信息。
数值稳定性:改进版 Gram-Schmidt
经典算法在浮点运算下有一个隐患。每一次减法都会带入小误差,向量数量一多,误差会累积,靠后的$\vec{u}_k$就慢慢偏离了"和前面正交"的状态。
改进版 Gram-Schmidt 把同样的运算重新排列,使工作向量在每次投影后立刻被更新,数值上要稳得多:
| |
工业级实现一般用 Householder 反射(numpy.linalg.qr 内部就是它),稳定性还要更好。
QR 分解:Gram-Schmidt 的矩阵外壳

定义
任何列线性独立的$m\times n$矩阵$A$都可以分解为:$A=QR$其中$Q$是$m\times n$、列标准正交($Q^TQ=I$),$R$是$n\times n$上三角且对角元为正。
Q 和 R 是怎么来的
$Q$的列就是对$A$的列做 Gram-Schmidt 得到的标准正交向量。$R$的元素则记录了投影系数:$r_{ij}=\vec{q}_i\cdot\vec{a}_j$为什么$R$是上三角的? 因为$\vec{a}_j$只能用前$j$个$\vec{q}$来表达——它从不需要"后来才出现"的正交向量。对角线下方的位置都是$\vec{a}_j$在编号靠后的$\vec{q}_k$($k>j$)上的系数,必然为零。
换句话说:$\vec{a}_j$生活在前$j$根标准正交轴张成的子空间里,$R$是从$\vec{q}$回到$\vec{a}$的"换基矩阵"。
QR 为什么这么有用:稳定的最小二乘
正规方程$A^TA\hat{\vec{x}}=A^T\vec{b}$在数值上有一个老问题:构造$A^TA$会让条件数平方:$\kappa(A^TA)=\kappa(A)^2$。数据稍微共线一点,结果就崩了。
QR 分解可以绕过这一关。把$A=QR$代入:$R^TQ^TQR\hat{\vec{x}}=R^TQ^T\vec{b}$因为$Q^TQ=I$、$R^T$可逆,整个式子化简成:$R\hat{\vec{x}}=Q^T\vec{b}$这是一个上三角方程组,回代求解只需要$O(n^2)$次运算——又快又稳。
| |
最小二乘:方程无解的时候

问题
现实中的数据总有噪声。想用一条直线去拟合 5 个测量点?这就是 5 个方程、2 个未知数——超定方程组。除非这 5 个点恰好共线,否则没有任何$\vec{x}$能精确满足$A\vec{x}=\vec{b}$。
我们不放弃,只是换一个问题。
最小二乘思想
既然没法精确求解$A\vec{x}=\vec{b}$,那就找一个$\hat{\vec{x}}$,让误差平方和最小:$\min_{\vec{x}}\|A\vec{x}-\vec{b}\|^2$几何解释。 当$\vec{x}$在所有可能的取值中变化时,$A\vec{x}$会跑遍列空间$\mathrm{Col}(A)$。最小化$\|A\vec{x}-\vec{b}\|$就是要在$\mathrm{Col}(A)$中找离$\vec{b}$最近的点——这恰好就是正交投影!于是$\hat{\vec{x}}$满足$A\hat{\vec{x}}=\hat{\vec{b}}$,其中$\hat{\vec{b}}$是$\vec{b}$在$\mathrm{Col}(A)$上的投影。
上图左边是熟悉的"散点 + 最佳拟合直线"画面,右边是同一件事的几何视角:把$\vec{b}$投影到代表列空间的那个平面。两幅画面,同一个问题。
正规方程(再来一遍)
正交条件$\vec{b}-A\hat{\vec{x}}\perp\mathrm{Col}(A)$给出$A^T(\vec{b}-A\hat{\vec{x}})=\vec{0}$,也就是:$A^TA\hat{\vec{x}}=A^T\vec{b}$用微积分也能推:展开$\|A\vec{x}-\vec{b}\|^2$,对$\vec{x}$求梯度并令其为零,结果一字不差。
线性回归示例
用$y=\beta_0+\beta_1 x$拟合数据点$(1,2.1),(2,3.9),(3,6.2),(4,7.8),(5,10.1)$:
| |
加权最小二乘
如果不同测量点的可信度不一样,就给它们不同的权重$w_i$:$\min_{\vec{x}}\sum_i w_i(\vec{a}_i^T\vec{x}-b_i)^2$正规方程相应变成$A^TWA\hat{\vec{x}}=A^TW\vec{b}$,其中$W=\mathrm{diag}(w_1,\ldots,w_m)$。
正交矩阵:保几何
定义
方阵$Q$是正交矩阵,如果:$Q^TQ=I$等价地$Q^{-1}=Q^T$。转置就是逆——这正是正交矩阵"求逆几乎不要钱"的原因。
正交矩阵保住了一切
它们是"刚体变换",保留:
- 长度:$\|Q\vec{x}\|=\|\vec{x}\|$- 内积:$(Q\vec{x})\cdot(Q\vec{y})=\vec{x}\cdot\vec{y}$- 角度: 内积一保,角度自然保
旋转 vs. 反射
正交矩阵的行列式必然是$\pm 1$:
-$\det Q=+1$:旋转,保左右手定则。 -$\det Q=-1$:反射,翻转左右手定则。
二维旋转矩阵是经典例子:$R(\theta)=\begin{pmatrix}\cos\theta&-\sin\theta\\\sin\theta&\cos\theta\end{pmatrix}$Householder 反射是另一类重要的正交矩阵,是工业 QR 算法的核心积木。
为什么数值计算偏爱正交矩阵
正交矩阵的条件数恰好是 1:$\kappa(Q)=\frac{\sigma_{\max}}{\sigma_{\min}}=1$用正交矩阵做的运算永远不会放大误差。这就是为什么高质量数值算法(QR、SVD、Householder、Givens)几乎都围绕正交矩阵展开。
应用举例
傅里叶分析
离散傅里叶变换(DFT)从数学上看就是把信号换到一组复指数构成的正交基下。每个频率分量都可以被独立地处理,因为基向量之间互不干扰——这正是滤波能成立的根本原因。
降噪耳机
麦克风采到外界噪声,处理器用 FFT 把它分解成正交的频率分量,生成相位相反的信号,再送到扬声器。因为正交分量彼此独立,噪声可以被精确抵消,而你想听的音乐丝毫不受影响。
图像压缩(JPEG)
JPEG 用的是离散余弦变换(DCT),DFT 的实数版本。每个$8\times 8$像素小块被表示成一组余弦正交基的系数。自然图像里高频系数往往很小,于是被粗暴量化或干脆丢掉,从而把文件压小。正交性保证了"丢一些系数不会污染剩下的"。
CDMA 移动通信
每个用户分到一个"码字",不同用户的码字两两正交。多个用户共用同一频段同时收发。要从混合信号里恢复用户 A 的内容,接收端只需把收到的信号点积上 A 的码字;用户 B 的贡献会因为$\vec{c}_A\cdot\vec{c}_B=0$而归零。
PCA:找最重要的方向
主成分分析在数据中寻找方差最大的若干正交方向。具体做法:把中心化的数据矩阵$X$的协方差$\Sigma=\frac{1}{n-1}X^TX=Q\Lambda Q^T$做特征分解。$Q$的列就是主轴(互相正交),$\Lambda$的特征值代表每个方向上承载的方差。保留前$k$列就完成了"最优"线性降维。
要求正交,是为了让各主成分独立——每一个都在捕获新的结构,而不是重复前一个已经讲过的话。
Python 工具箱
Gram-Schmidt 正交化
| |
QR 解最小二乘
| |
投影可视化
| |
习题
热身
- 验证$\vec{u}=(1,2,-1)$与$\vec{v}=(2,-1,0)$是否正交。如果是,再把它们单位化。
- 计算$\vec{b}=(3,4)$在$\vec{a}=(1,0)$上的投影,并验证误差向量与$\vec{a}$正交。
- 对$\vec{a}_1=(1,1,0)$、$\vec{a}_2=(1,0,1)$做 Gram-Schmidt,并验证结果正交。
进阶
- 证明:不含零向量的正交集一定是线性独立的。
- 证明$P=A(A^TA)^{-1}A^T$满足$P^2=P$。从几何上解释为什么"投影的投影还是它自己"。
- 手算$A=\begin{pmatrix}1&1\\1&0\\0&1\end{pmatrix}$的 QR 分解,并验证$A=QR$。
- 用最小二乘法把$(1,1),(2,3),(3,2),(4,4)$拟合到直线$y=\beta_0+\beta_1 x$。
- 证明两个正交矩阵的乘积仍然是正交矩阵。
编程题
- 实现改进版 Gram-Schmidt,并在近似线性相关的向量(例如 Hilbert 矩阵的列)上比较它和经典版本的正交性误差。
- 模拟一个 3 用户的 CDMA 系统:长度为 4 的正交码、3 个用户各发一个比特、混合信号用各自的码字点积分离。验证正交性带来的"零干扰"。
本章总结
| 概念 | 关键公式 | 一句话直觉 |
|---|---|---|
| 正交 | $\vec{u}\cdot\vec{v}=0$ | 向量"互不干扰" |
| 一维投影 | $\mathrm{proj}_{\vec{a}}\vec{b}=\dfrac{\vec{a}\cdot\vec{b}}{\vec{a}\cdot\vec{a}}\vec{a}$ | 直线上的影子 |
| 子空间投影 | $\hat{\vec{b}}=A(A^TA)^{-1}A^T\vec{b}$ | 子空间中的最近点 |
| 正规方程 | $A^TA\hat{\vec{x}}=A^T\vec{b}$ | 最小二乘的核心 |
| Gram-Schmidt | 反复减去投影 | 清除前轴的"污染" |
| QR 分解 | $A=QR$ | 正交化的稳定矩阵形式 |
| 正交矩阵 | $Q^TQ=I$ | 保长保角,条件数为 1 |
系列导航
- 上一篇: 第 6 章 – 特征值与特征向量
- 下一篇: 第 8 章 – 对称矩阵与二次型
- 系列: 线性代数的本质(第 7 篇,共 18 篇)
参考资料
- Strang, G. (2019). Introduction to Linear Algebra, 第 4、10 章。
- Trefethen, L. N. & Bau, D. (1997). Numerical Linear Algebra, Lectures 7–11。
- 3Blue1Brown. Essence of Linear Algebra, 第 9、11 集。
- Golub, G. H. & Van Loan, C. F. (2013). Matrix Computations, 第 5 章。