Skip to content

特征值与二次型:只拉伸、不扭转的方向

WARNING

🧪 Beta公测版本提示:教程主体已完成,正在优化细节,欢迎大家提Issue反馈问题或建议。

Av=λv 说的是:存在一些方向,矩阵作用完还躺在自己身上,只是长度乘了 λ。对称矩阵上这组方向还两两正交——协方差、PCA、二次型椭圆,用的都是它。前置:线性代数直觉方程组与秩。SVD 的几何仍在直觉章;本章把「特征」从黑话变成可算的迭代。


一、定义与 2×2 图像

Av=λv,v0.

λ 是特征值,v 是特征向量。旋转 90 的矩阵没有实特征向(每个向量都被拧走了);对称正定矩阵一定有一组正交实特征向,而且 λ>0

对对称 A,二次型 xAx=1 是椭圆(正定)或双曲线(不定)。椭圆的轴就是特征向量,半轴长 1/λλ 大的方向「更硬」,椭圆更扁。

特征向量:只拉伸不扭转

图解说明:网格被 A 捏成平行四边形;有两条边仍沿原直线,那就是特征向。底栏:PCA 主轴 = 协方差的特征向。

动画说明:把 I 连续变成 A。红/绿是特征向,始终躺在自己的射线上;其它向量都被拧走。A 与 demo 相同。

对角化 A=QΛQ1。对称时 Q 可取正交,A=QΛQ,换到主轴上乘法变成逐分量乘 λi

特征向量:方向不变,只被拉长

图解说明:单位圆被对称矩阵拉成椭圆。橙箭头在特征向上只缩放;绿箭头被拧离自己的直线。

逐步推导:2×2 对称矩阵的特征多项式(点击展开)

Av=λv 改写 (AλI)v=0,要非零 v,必须 det(AλI)=0。对

A=(abbc),AλI=(aλbbcλ),

行列式 (aλ)(cλ)b2=λ2(a+c)λ+(acb2)。求根公式给出正文的

λ=a+c±(ac)2+4b22.

判别式 (ac)2+4b20,对称 2×2 永远有两个实特征。demo 的 A=(3112)a+c=5,判别式 1+4=5λ=(5±5)/2,大约 3.6181.382。幂迭代盯住较大的那个:反复 vAv/Av,因为 Akvλmaxk 压倒一切。

几何:xAx=1 在主轴坐标里是 λ1y12+λ2y22=1,正定(λ>0)时是椭圆,半轴 1/λi


二、幂迭代:最大的那个自己会冒出来

任取一个不与最大特征向正交的 v0,反复

vk+1=AvkAvk.

分量里 λmaxk 增长最快,于是 vk 倒向对应特征向。Rayleigh 商 vAvv=1)给出 λ 的估计。PageRank、幂法求主奇异值,都是这个想法。

对称 2×2 的精确根:

A=(abbc),λ=a+c±(ac)2+4b22.

demo.pynp.linalg.eigh 当真理,幂迭代画收敛曲线。C++ power.hpp 同一组 A=(3112),最大 λ3.618


三、和 PCA 的关系(一句话)

中心化数据 X 的协方差 1nXX 是对称半正定的。它的最大特征向 = SVD 里 V 的第一列。直觉章用 SVD 画箭头;本章解释箭头为什么是「特征」。降维应用见 降维与特征工程


四、代码在做什么

左图:二次型椭圆 + 两条轴。右图:幂迭代的 Rayleigh 商贴向真 λmax

二次型椭圆

幂迭代收敛

bash
cd docs/math/eigen/code
python demo.py
g++ -std=c++17 demo.cpp -o eigen_demo

五、小结

概念一句话
Av=λv方向不变,只缩放
对称 A实正交特征基;二次型是椭圆
幂迭代反复乘 A,最大 λ 胜出
RayleighvAv 估特征值
下游PCA、谱聚类、量子态、稳定性

下一章 概率与贝叶斯:箭头变成「带分布的信念」。

📥 Code

FileViewDownload
demo.pyOpenDownload
power.hppDownload
demo.cppDownload
exercise.pyOpenDownload

参考

  1. Strang, G. Introduction to Linear Algebra(特征与二次型)
  2. 3Blue1Brown, Eigenvalues(配合几何动画)