系列 · 线性代数 · 第 8 篇

线性代数(八):对称矩阵与二次型

对称矩阵是线性代数中最美好的矩阵 -- 实特征值、正交特征向量、完美对角化。理解对称矩阵是掌握主成分分析、优化理论和物理振动分析的关键。

为什么对称矩阵是“最理想的矩阵”#

在所有你可能遇到的矩阵中,对称矩阵无疑是最“乖巧”的。它们拥有三大超能力:

线性代数(八):对称矩阵与二次型 —— 最棒的矩阵来了 —— visual

  • 特征值全是实数
  • 拥有一组完全正交的特征向量;
  • 可以轻松实现完美对角化 $A = Q \Lambda Q^T$ ,求逆或计算幂次几乎不费力气。

这绝非偶然。实际上,在物理、优化、统计和机器学习中,几乎所有真正重要的矩阵本质上都是对称的:

  • 协方差矩阵 $\Sigma = \tfrac{1}{n} X^T X$ 描述了特征之间的协同变化,其构造天然保证了对称性。
  • Hessian 矩阵 $H_{ij} = \partial^2 f / \partial x_i \partial x_j$ 记录函数的二阶导数。根据 Clairaut 定理,混合偏导数可交换,因此 $H$ 必然对称。
  • 刚度矩阵 $K$ 编码了弹簧系统中各部分的相互作用力。牛顿第三定律强制要求 $K = K^T$
  • 核矩阵Gram 矩阵 $G_{ij} = \langle x_i, x_j \rangle$ 衡量样本间的两两相似性。内积的对称性直接导致 $G$ 对称。

本章将揭示对称性为何能带来如此多优良性质,并展示如何通过二次型的几何视角,一眼看穿对称矩阵的行为。

你将学到#

  • 为什么每个实对称矩阵都有实特征值和正交特征向量。
  • 谱定理——如何对任意对称矩阵进行对角化。
  • 二次型如何表现为碗形、鞍形和山峰。
  • 正定矩阵:如何识别它们以及为何它们至关重要。
  • Cholesky 分解作为正定矩阵的“平方根”。
  • Rayleigh 商及其与 PCA 的联系。
  • SVD 如何成为谱定理在任意矩阵上的自然延伸。

前置知识#


对称矩阵长什么样#

一个实矩阵 $A$对称的,当且仅当 $A = A^T$ ,即对所有 $(i, j)$ 都有 $a_{ij} = a_{ji}$ 。对角线元素可以自由取值,其余元素则以主对角线为轴成对出现。

对称矩阵的结构:对角线自由,非对角元素镜像出现

几何图景:对称变换只会沿着某些正交方向进行拉伸和压缩,绝无扭曲、剪切或隐藏的旋转。想象一下,沿两个互相垂直的轴直接拉伸一块黏土——你改变了它的比例,但从未使其旋转。

弹簧类比:两个质点由弹簧连接。若推动质点 1 会对质点 2 产生一个力,则推动质点 2 也会对质点 1 产生一个大小相等的反作用力。这种相互的互惠性正是 $A = A^T$ 的物理内涵。

对称矩阵出现在哪里#

对象公式为何对称
协方差$\Sigma = \tfrac{1}{n} X^T X$$(X^T X)^T = X^T X$
Hessian$H_{ij} = \partial^2 f/\partial x_i \partial x_j$混合偏导数可交换
Gram 矩阵$G_{ij} = \langle x_i, x_j\rangle$内积具有对称性
刚度$K\vec{x} = \vec{F}$牛顿第三定律
邻接矩阵(无向图)$a_{ij} = a_{ji}$边无方向性

对称矩阵的三大超能力#

超能力 1:实特征值#

定理:每个实对称矩阵的特征值都是实数。

一般矩阵可以旋转空间,而旋转的特征值是复数(例如 $90^\circ$ 旋转的特征值为 $\pm i$ )。对称矩阵从不旋转——它们只做拉伸——因此其特征值始终位于实轴上。

$$\overline{\vec{v}^* A \vec{v}} = \vec{v}^T A^T \overline{\vec{v}} = \vec{v}^T A \overline{\vec{v}} = \vec{v}^* A \vec{v}.$$

该数 $\vec{v}^* A \vec{v} = \lambda \vec{v}^* \vec{v}$ 等于其自身的共轭,且 $\vec{v}^* \vec{v} > 0$ ,故 $\lambda = \overline{\lambda}$ ,即 $\lambda$ 为实数。

超能力 2:正交特征向量#

定理:对称矩阵对应于不同特征值的特征向量彼此正交。

$$ \vec{v}_1^T (A \vec{v}_2) = \lambda_2 \, \vec{v}_1^T \vec{v}_2, \qquad (A \vec{v}_1)^T \vec{v}_2 = \lambda_1 \, \vec{v}_1^T \vec{v}_2. $$ $$(\lambda_1 - \lambda_2)\, \vec{v}_1^T \vec{v}_2 = 0.$$

$\lambda_1 \ne \lambda_2$ ,必有 $\vec{v}_1 \perp \vec{v}_2$

当特征值重复时,其特征子空间的维数等于重数,我们可以在其中手动选取一组标准正交基。无论如何,总存在一组完整的标准正交特征向量基

超能力 3:谱定理#

结合前两条,便得到本章的核心。

谱定理:每个实对称矩阵 $A$ 都可分解为 $A = Q \Lambda Q^T,$ 其中 $Q$ 是正交矩阵($Q^T Q = I$ ),其列向量为标准正交特征向量,$\Lambda = \mathrm{diag}(\lambda_1, \ldots, \lambda_n)$ 为特征值构成的对角矩阵。

谱定理:对称矩阵的正交特征向量

三种解读方式

  1. 在特征向量基下,$A$ 仅是一串拉伸因子。
  2. $A$ 的作用是沿 $n$ 个互相正交的轴进行纯缩放。
  3. 计算 $A^k$$A^{-1}$$e^A$$A^{1/2}$ 等操作,均可简化为对对角矩阵 $\Lambda$ 执行相同运算。
$$A = \lambda_1 \vec{q}_1 \vec{q}_1^T + \lambda_2 \vec{q}_2 \vec{q}_2^T + \cdots + \lambda_n \vec{q}_n \vec{q}_n^T.$$

每个 $\vec{q}_i \vec{q}_i^T$ 是到第 $i$ 个特征向量方向的秩 1 投影算子,$\lambda_i$ 是其权重。“谱”一词刻意类比光学:白光被分解为纯色(频率);对称矩阵被分解为纯方向(特征向量),并由强度(特征值)加权。


二次型:能量的几何#

定义#

$$Q(\vec{x}) \;=\; \vec{x}^T A \vec{x} \;=\; \sum_{i, j} a_{ij}\, x_i x_j.$$

我们总可假设 $A$ 对称,因为 $\vec{x}^T B \vec{x} = \vec{x}^T \tfrac{B + B^T}{2} \vec{x}$

$$A = \begin{pmatrix} 3 & 2 \\ 2 & 1 \end{pmatrix},$$

其中交叉项系数 $4$ 被对称地拆分为两个 $2$

物理学:耦合弹簧系统的弹性势能为 $E = \tfrac{1}{2} \vec{x}^T K \vec{x}$ 。矩阵 $K$ 是刚度矩阵,而能量 $E$ 就是其二次型。

读取特征值#

$$Q(\vec{x}) \;=\; \vec{y}^T \Lambda \vec{y} \;=\; \lambda_1 y_1^2 + \lambda_2 y_2^2 + \cdots + \lambda_n y_n^2.$$

所有交叉项消失。水平集 $Q = \mathrm{const}$ 的形状可直接由特征值的符号读出——这就是主轴定理

特征值符号名称二维形状心智图像
$> 0$正定椭圆 / 碗小球位于碗底
$< 0$负定倒椭圆 / 山丘小球置于山顶
符号混合不定双曲线 / 鞍点鞍点,无最小也无最大
$\ge 0$ ,部分 $= 0$半正定沿某轴平坦

四种情形的完整展示,每幅图均以其特征值标注:

二次型的形状:碗、鞍、山

四类对称矩阵

标准化实例#

$$Q = 4 y_1^2 + 2 y_2^2,$$

这是一个椭圆,其主轴相对于原始 $x$ 轴倾斜 $45^\circ$


正定矩阵#

线性代数(八):对称矩阵与二次型 — 章节小结图

定义#

$$\vec{x}^T A \vec{x} > 0.$$

几何上,能量在原点之外的任何方向都增加——曲面是一个真正的碗,原点是其唯一最小值点。

相关概念:

  • 半正定(PSD):$\vec{x}^T A \vec{x} \ge 0$ (某些方向平坦)。
  • 负定$\vec{x}^T A \vec{x} < 0$ (山顶)。
  • 不定:取值可正可负(鞍点)。

四种等价判据#

对实对称矩阵 $A$ ,以下条件等价:

  1. 特征值判据:所有 $\lambda_i > 0$
  2. Sylvester 判据:每个顺序主子式为正:
$$ a_{11} > 0, \quad \begin{vmatrix} a_{11} & a_{12} \\ a_{21} & a_{22}\end{vmatrix} > 0, \quad \ldots, \quad \det(A) > 0. $$

3. Cholesky 存在$A = L L^T$ ,其中 $L$ 为对角元正的下三角矩阵。 4. 主元判据:对 $A$ 进行高斯消元会产生 $n$ 个正主元。

在数值实践中,尝试 Cholesky 分解是最可靠的检验方法:它成功当且仅当 $A$ 正定,且能免费获得一个有用的分解。

有用性质#

  • 可逆$\det(A) = \prod \lambda_i > 0$
  • 对角元为正:取 $\vec{x} = \vec{e}_i$ ,得 $a_{ii} = \vec{e}_i^T A \vec{e}_i > 0$
  • 逆矩阵正定:若 $A = Q\Lambda Q^T$ ,则 $A^{-1} = Q\Lambda^{-1} Q^T$ ,其特征值 $1/\lambda_i$ 为正。
  • 和仍正定:若 $A, B$ 正定,则 $A + B$ 正定。
  • 平方根:存在唯一的正定矩阵 $A^{1/2}$ 满足 $A^{1/2} A^{1/2} = A$
  • $X^T X$ 半正定,且当且仅当 $X$ 列满秩时正定。

Cholesky 分解:矩阵平方根#

定义#

$$ A = L L^T, $$

其中 $L$ 是对角元严格为正的下三角矩阵。该分解存在且唯一。可将其视为 $\sqrt{4} = 2$ 在矩阵上的推广:一个 PD 矩阵可分解为 $L \times L^T$

二维计算#

$$ L = \begin{pmatrix} \sqrt{a} & 0 \\ b/\sqrt{a} & \sqrt{c - b^2/a} \end{pmatrix}. $$ $$ l_{11} = 2, \quad l_{21} = 1, \quad l_{22} = \sqrt{3 - 1} = \sqrt{2}, \qquad L = \begin{pmatrix} 2 & 0 \\ 1 & \sqrt{2} \end{pmatrix}. $$

验证 $LL^T = A$

Cholesky 为何重要#

  • 求解 $A\vec{x} = \vec{b}$ :先前向求解 $L\vec{y} = \vec{b}$ ,再后向求解 $L^T \vec{x} = \vec{y}$ 。速度约为同等问题 LU 分解的两倍,且数值稳定性极佳。
  • 采样相关高斯变量:要生成 $\vec{z} \sim \mathcal{N}(\vec{0}, \Sigma)$ ,先采样 $\vec{u} \sim \mathcal{N}(\vec{0}, I)$ ,再令 $\vec{z} = L\vec{u}$ (其中 $\Sigma = LL^T$ )。此时 $\mathrm{Cov}(\vec{z}) = L L^T = \Sigma$
  • 正定性检验:Cholesky 失败(平方根下出现负数)即可断定 $A$ 非正定。

主轴:水平集的几何#

对 PD 矩阵,水平集 $\vec{x}^T A \vec{x} = 1$ 是一个椭球。其主轴恰好是特征向量 $\vec{q}_i$ ,对应的半轴长度为 $1/\sqrt{\lambda_i}$ (特征值越大,“弹簧”越强,轴越短)。

椭圆的主轴方向 = A 的特征向量

在特征基下,椭圆与坐标轴对齐,交叉项消失——同一曲面,只是用其自然坐标书写。

三维情形同理,这正是转动惯量计算可行的原因:选取刚体惯量张量的主轴,转动方程便解耦。


Rayleigh 商#

定义#

$$ R(\vec{x}) \;=\; \frac{\vec{x}^T A \vec{x}}{\vec{x}^T \vec{x}}. $$

分子衡量 $A$ 在方向 $\vec{x}$ 上的“拉伸”程度;分母对长度归一化。

极小-极大性质#

对每个非零 $\vec{x}$ ,有 $\lambda_{\min} \;\le\; R(\vec{x}) \;\le\; \lambda_{\max}$ 。 最大值 $\lambda_{\max}$ 在对应特征向量处取得;最小值 $\lambda_{\min}$ 在其特征向量处取得。

一行证明:在标准正交特征基下将 $\vec{x} = \sum c_i \vec{q}_i$ ,则 $R(\vec{x}) = \sum \lambda_i c_i^2 / \sum c_i^2$ ,这是特征值的非负加权平均。

瑞利商在特征向量方向取得极值

这正是 PCA 的核心:最大方差方向是协方差矩阵的主特征向量,该最大方差即为主特征值。最简单的特征值算法——幂迭代法——正是此性质的直接推论。


白化与去相关#

$$ \Sigma^{-1/2} \;=\; Q \Lambda^{-1/2} Q^T. $$ $$ \mathrm{Cov}(\vec{z}) \;=\; \Sigma^{-1/2} \, \Sigma \, \Sigma^{-1/2} \;=\; I. $$

许多 ML 算法(线性回归、高斯朴素贝叶斯、ICA)隐含假设输入已白化。白化作为一行预处理步骤,常能显著改善数值条件和收敛速度。


应用巡礼#

协方差与 PCA#

样本协方差 $\Sigma = \tfrac{1}{n} X^T X$ 对称且 PSD。其谱分解正是主成分分析(PCA):特征向量为主方向;特征值为沿这些方向的方差。PCA 无非是“对协方差矩阵对角化并保留前 $k$ 项”。

Hessian 与优化#

$$ f(\vec{x}_0 + \vec{h}) \;\approx\; f(\vec{x}_0) + \tfrac{1}{2} \vec{h}^T H \vec{h}. $$

Hessian 矩阵 $H$ 对称,其特征值可分类临界点:

  • $H$ PD $\Longrightarrow$ 局部极小值。
  • $H$ ND $\Longrightarrow$ 局部极大值。
  • $H$ 不定 $\Longrightarrow$ 鞍点。

这就是多元函数的二阶导数检验,三行即明。

岭回归#

$$ \hat{\vec{w}} \;=\; (X^T X + \lambda I)^{-1} X^T \vec{y}. $$

添加 $\lambda I$ 将对称 PSD 矩阵 $X^T X$ 的每个特征值提升 $\lambda$ ,使其严格 PD 且良态。几何上,岭回归将损失曲面中的平坦谷底替换为严格碗形,恢复唯一全局最小值。

振动系统#

耦合质点-弹簧系统有动能 $T = \tfrac{1}{2} \dot{\vec{x}}^T M \dot{\vec{x}}$ 和势能 $V = \tfrac{1}{2} \vec{x}^T K \vec{x}$ ,其中 $M, K$ 对称且 PD。固有频率来自广义特征值问题 $K \vec{v} = \omega^2 M \vec{v}$ 。特征向量即简正模——系统振荡时形状不变的模式。每把吉他的泛音、每座桥梁的共振、每个分子的振动,都是某个刚度矩阵的特征值。

投资组合优化#

Markowitz 均值-方差投资组合在目标收益下最小化风险 $\vec{w}^T \Sigma \vec{w}$$\Sigma$ 的 PD 性保证唯一解和良态二次规划。以保持 PD 性的方式估计 $\Sigma$ (收缩法、因子模型)本身就是一个研究子领域。


SVD:初探#

$$ A \;=\; U \Sigma V^T, $$

其中 $U, V$ 正交,$\Sigma$ 为对角矩阵,其对角元为非负数(奇异值)。该分解对任意矩阵均存在。

SVD 预览:任意矩阵将单位圆映射为椭圆

SVD 与本章有两个清晰联系:

  • $A$ 的奇异值是其对称 PSD 矩阵 $A^T A$ 特征值的平方根。
  • 右奇异向量 $\vec{v}_i$$A^T A$ 的特征向量;左奇异向量 $\vec{u}_i$$A A^T$ 的特征向量。

因此,SVD 就是将谱定理应用于对称伴生矩阵 $A^T A$$A A^T$ 第 9 章 将专述此题。


Python 实操#

谱分解#

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
import numpy as np

A = np.array([[3.0, 1.0],
              [1.0, 3.0]])

eigenvalues, Q = np.linalg.eigh(A)
Lambda = np.diag(eigenvalues)

print("特征值:", eigenvalues)
print("Q^T Q (应该是单位矩阵 I):\n", Q.T @ Q)
print("重建 Q Lambda Q^T:\n", Q @ Lambda @ Q.T)

Cholesky 分解#

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
A = np.array([[4.0, 2.0],
              [2.0, 3.0]])

L = np.linalg.cholesky(A)
print("L:\n", L)
print("L L^T:\n", L @ L.T)

b = np.array([6.0, 5.0])
y = np.linalg.solve_triangular(L, b, lower=True)  # numpy 中没有这个函数
x = np.linalg.solve_triangular(L.T, y, lower=False)  # 实际中用 scipy 提供的函数

二次型与主轴#

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
import matplotlib.pyplot as plt

A = np.array([[2.0, 1.0],
              [1.0, 3.0]])

g = np.linspace(-3, 3, 200)
X, Y = np.meshgrid(g, g)
Z = A[0, 0] * X**2 + 2 * A[0, 1] * X * Y + A[1, 1] * Y**2

eigvals, eigvecs = np.linalg.eigh(A)

fig, ax = plt.subplots(figsize=(6, 6))
ax.contour(X, Y, Z, levels=15, cmap='viridis')
for i in range(2):
    v = eigvecs[:, i] * 2
    ax.arrow(0, 0, v[0], v[1], head_width=0.1, color='red', linewidth=2)
    ax.text(v[0] * 1.1, v[1] * 1.1, f'$\\lambda$={eigvals[i]:.2f}')
ax.set_aspect('equal')
ax.set_title('二次型等高线与特征向量方向')
plt.show()

练习题#

基础题#

  1. 用特征值法和 Sylvester 判据判断 $A = \bigl(\begin{smallmatrix} 2 & 1 \\ 1 & 2 \end{smallmatrix}\bigr)$ 是否正定。
  2. $Q(x_1,x_2) = 5x_1^2 + 4x_1x_2 + 2x_2^2$ 写为 $\vec{x}^T A \vec{x}$ 并判断 $A$ 是否正定。
  3. 计算 $A = \bigl(\begin{smallmatrix} 9 & 6 \\ 6 & 5 \end{smallmatrix}\bigr)$ 的 Cholesky 因子。

进阶题#

  1. 证明若 $A$ 正定,则 $A^{-1}$ 正定。
  2. 证明 $X^T X$ 恒为 PSD,且当且仅当 $X$ 列满秩时为 PD。
  3. $Q = 2x_1^2 + 4x_1x_2 + 5x_2^2$ :求特征值、写标准形、画 $Q=1$ 的等高线。
  4. 证明对任意对称 $A$ ,有 $\mathrm{tr}(A) = \sum \lambda_i$$\det(A) = \prod \lambda_i$
  5. 证明 PSD 矩阵为 PD 当且仅当其可逆。

编程题#

  1. 从零实现 Cholesky(禁用 numpy.linalg.cholesky),在随机 PD 矩阵上测试。
  2. 数值验证谱定理:生成随机对称矩阵,分解后检查 $\| A - Q \Lambda Q^T \|$
  3. 在 2D 相关高斯数据上实现 PCA:绘数据、主方向及第一主成分投影。
  4. 实现白化:生成相关高斯样本,用 $\Sigma^{-1/2}$ 变换,验证白化协方差接近单位阵。

总结#

概念关键事实为何重要
对称矩阵$A = A^T$仅拉伸,无扭曲
实特征值恒为实数无复数意外
正交特征向量不同 $\lambda$ 对应正交清晰分解
谱定理$A = Q \Lambda Q^T$PCA、简正模之基石
二次型$\vec{x}^T A \vec{x}$碗、鞍、山顶
正定$\vec{x}^T A \vec{x} > 0$能量稳定,唯一最小值
Rayleigh 商$\lambda_{\min} \le R \le \lambda_{\max}$变分刻画,PCA 之源
Cholesky$A = L L^T$快速稳定的“平方根”
SVD$A = U \Sigma V^T$任意矩阵的谱定理

参考文献#

  • Strang, G. (2019). Introduction to Linear Algebra, 第 6 章 .
  • Horn, R. A. & Johnson, C. R. (2012). Matrix Analysis, 第 2 版.
  • Boyd, S. & Vandenberghe, L. (2004). Convex Optimization.
  • Golub, G. H. & Van Loan, C. F. (2013). Matrix Computations, 第 4 版.
  • 3Blue1Brown. Essence of Linear Algebra 系列视频。
本系列

线性代数 18 篇

  1. 01 线性代数(一):向量的本质——不仅仅是箭头
  2. 02 线性代数(二):线性组合与向量空间
  3. 03 线性代数(三):矩阵作为线性变换
  4. 04 线性代数(四):行列式的秘密
  5. 05 线性代数(五):线性方程组与列空间
  6. 06 线性代数(六):特征值与特征向量
  7. 07 线性代数(七):正交性与投影——当向量互不干扰
  8. 08 线性代数(八):对称矩阵与二次型 当前
  9. 09 线性代数(九):奇异值分解 SVD
  10. 10 线性代数(十):矩阵范数与条件数——数值计算的健康体检
  11. 11 线性代数(十一):矩阵微积分与优化——从梯度到反向传播
  12. 12 线性代数(十二):稀疏矩阵与压缩感知——少即是多的数学奇迹
  13. 13 线性代数(十三):张量与多线性代数——从标量到高维数据立方体
  14. 14 线性代数(十四):随机矩阵理论——混沌中的秩序
  15. 15 线性代数(十五):机器学习中的线性代数——从 PCA 到推荐系统
  16. 16 线性代数(十六):深度学习中的线性代数——从全连接到 Transformer
  17. 17 线性代数(十七):计算机视觉中的线性代数——从像素到三维重建
  18. 18 线性代数(十八):前沿应用与总结——量子计算、GNN、大模型,与十八章回望

读有所得?

GitHub 关注我 → 新文周更

GitHub