本节摘要:向量空间是最广泛存在的代数结构,矩阵是它的自动化工具。本节围绕一个核心问题展开——"线性变换把哪些方向只做伸缩",由此引出特征值与特征向量,并把这条线打通到三个应用:斐波那契通项、马尔可夫链稳态、数据的主成分。行列式、秩、对角化作为配角在需要处登场。
想象你手里有一张灰度图片,把它放大两倍:每个像素向量都被同一个变换拉长。绝大多数二维方向在变换后会"偏转",但总有几个特殊方向只被伸缩、不偏转——这些方向就是特征向量,伸缩倍数就是特征值。这个几何直觉的价值在于:找到特征向量,等于找到了一个变换"最省事的坐标系"。矩阵对角化的本质就是搬家到这个坐标系里,让复杂变换退化成几个独立的伸缩。
判定式来自一个代数观察:矩阵 A 乘向量 v 等于 lambda 乘 v,移项后齐次方程组有非零解当且仅当系数矩阵行列式为零,展开即特征多项式。手算一个小例子走全程:
import sympy as sp A = sp.Matrix([[4, 1], [2, 3]]) lam = sp.symbols('lam') poly = (A - lam * sp.eye(2)).det() print(sp.factor(poly)) # (lam - 5)*(lam - 2):两个特征值 5 和 2 for value in [5, 2]: vecs = (A - value * sp.eye(2)).nullspace() print(value, vecs) # 5 对应 (1,1) 方向;2 对应 (-1,2) 方向 # 验证几何含义:A*(1,1) = (5,5) 纯伸缩;A*(-1,2) = (-2,4) 同向伸缩两倍
**应用一:递推数列的通项。**斐波那契递推写成矩阵形式后,第 n 项由变换矩阵的 n 次幂决定;矩阵可对角化,n 次幂就是对角元 lambda 的 n 次幂,通项立刻闭式化。黄金比作为主特征值浮出水面——增长率的"本征速度"。
**应用二:马尔可夫链的稳态。**转移矩阵每行和为一,最大特征值恰为 1,对应特征向量就是长期分布。网页排序、排队系统、语音模型的语言模型,稳态分析全部走这条路。
**应用三:主成分分析。**数据协方差矩阵的特征向量给出方差最大的方向,大特征值对应主成分。图像压缩、降维、去噪,本质都是在特征坐标系里丢弃小特征值方向。
import sympy as sp # 应用一:斐波那契的矩阵对角化路线 F = sp.Matrix([[1, 1], [1, 0]]) print(F.eigenvals()) # {phi 的平方: 1, ...} 两个特征值为黄金比相关量 phi = (1 + sp.sqrt(5)) / 2 # 通项 f(n) = (phi^n - (1-phi)^n) / sqrt(5),矩阵幂被两个特征值的幂取代 def fib_closed(n): return sp.simplify((phi**n - (1 - phi)**n) / sp.sqrt(5)) print([fib_closed(n) for n in range(1, 8)]) # 输出 1,1,2,3,5,8,13
# 应用二:马尔可夫链稳态 = 特征值 1 的特征向量(归一化) P = sp.Matrix([[0.9, 0.2], [0.1, 0.8]]) # 天气转移:晴->晴 0.9,雨->晴 0.2 steady = (P.T - sp.eye(2)).nullspace()[0] # 解 P 转置乘 pi 等于 pi pi = steady / sum(steady) print(pi) # 约 (2/3, 1/3):长期看三分之二时间晴天,与初始状态无关
应用三的数值版本留一个可直接跑的骨架:
import numpy as np # 应用三:主成分 = 协方差矩阵的特征向量(用数值库验证方向) data = np.array([[2.0, 1.8, 1.6, 2.2, 6.0, 6.2, 5.8], [1.0, 1.2, 0.8, 1.1, 3.0, 3.3, 2.9]]) # 两特征强烈正相关 cov = np.cov(data) values, vectors = np.linalg.eigh(cov) print(values) # 输出一大一小:第一主成分吃掉绝大部分方差 print(vectors[:, -1]) # 最大特征值对应方向,接近数据散布的长轴方向
特征值之外,三个"体检指标"要形成条件反射。行列式是把变换对体积的缩放倍数,为零即把空间压扁——不可逆;且行列式等于全部特征值之积,迹等于特征值之和,两个快捷等式常用于检验计算。秩是列空间维度,衡量变换后保留的维数;线性方程组解的存在性与唯一性全由"秩与增广矩阵秩是否相等、是否等于未知数个数"两问决定。可对角化条件:特征向量凑得满一组基底(几何重数等于代数重数)。实对称矩阵永远可对角化且特征值为实数——这条保证让协方差矩阵、图拉普拉斯矩阵的应用无后顾之忧。
⚠️ 高频坑:数值计算里直接求特征多项式再求根,比直接数值求解特征值更不稳定;工程上永远用现成的数值算法(如 QR 迭代),符号计算用 SymPy、数值计算用 NumPy,各司其职。
下一节回到本章主线的高潮:五次方程为何无根式解——答案就藏在特征值式的"结构直觉"升级版:对称群的可解性里。