4、数学预备知识(二):矩阵的正定性判定、Sylvester准则
好,咱们接着聊。上一节我们把向量和矩阵的基本运算捋了一遍,这一节要啃的,是李雅普诺夫稳定性理论里最核心的数学工具之一——矩阵的正定性。
说实话,我刚入行做控制系统仿真的时候,对“正定矩阵”的理解就停留在“特征值大于零”这个层面。直到有一次,我搭建了一个非线性系统的李雅普诺夫函数,怎么仿真都不收敛,折腾了两天。最后老工程师看了一眼我的矩阵,说:“小伙子,你这矩阵不是正定的。” 我拿Sylvester准则一验算,果然,二阶顺序主子式是负的。嗯,从那以后,我再也不敢小看这个准则了。
4.1 为什么我们需要判断矩阵的正定性?
在李雅普诺夫稳定性理论中,我们经常需要构造一个能量函数 V(x)。这个函数必须满足:
- V(x) > 0 对于所有 x ≠ 0
- V(0) = 0
说白了,这个能量函数必须是“正定”的。而二次型函数 V(x) = xᵀPx 是最常用的形式。这时候,矩阵 P 的正定性就直接决定了 V(x) 是不是一个合格的能量函数。
你想想看,如果 P 不是正定的,那 V(x) 在某些方向上可能是负的。这就好比你说“系统的能量在减少”,结果能量本身是负的——这物理意义就乱套了。
4.2 什么是正定矩阵?
定义其实很简单:一个 n×n 的实对称矩阵 P,如果对于任意非零向量 x ∈ ℝⁿ,都有 xᵀPx > 0,那么 P 就是正定矩阵。
我个人的习惯是,把正定矩阵想象成一个“凸碗”的形状。你往碗里扔一个小球,它总会滑到底部。这个“底部”就是系统的平衡点。
常见的等价条件有:
- 所有特征值 λᵢ > 0
- 所有顺序主子式 > 0(这就是Sylvester准则)
- 存在可逆矩阵 Q,使得 P = QᵀQ
重要提醒: 正定性只针对对称矩阵定义。如果矩阵不对称,我们通常用它的对称部分 (P + Pᵀ)/2 来判断。
4.3 Sylvester准则:实战中最常用的工具
Sylvester准则,说白了就是:一个对称矩阵是正定的,当且仅当它的所有顺序主子式都大于零。
什么叫顺序主子式?就是矩阵左上角 k×k 子矩阵的行列式,k = 1, 2, ..., n。
举个例子,对于矩阵:
P = [4 2]
[2 3]
一阶顺序主子式:Δ₁ = 4 > 0 ✓
二阶顺序主子式:Δ₂ = det(P) = 4×3 - 2×2 = 8 > 0 ✓
所以 P 是正定的。
再来看一个我踩过的坑:
P = [1 2]
[2 1]
Δ₁ = 1 > 0 ✓
Δ₂ = 1×1 - 2×2 = -3 < 0 ✗
你看,一阶主子式是正的,但二阶是负的。这个矩阵就不是正定的。我当时就是犯了这种错误,只检查了特征值没检查全,结果仿真数据全错了。
4.4 半正定、负定与不定矩阵
除了正定,我们还会遇到其他情况:
| 类型 | 定义 | Sylvester准则 |
|---|---|---|
| 正定 | xᵀPx > 0, ∀x ≠ 0 | 所有顺序主子式 > 0 |
| 半正定 | xᵀPx ≥ 0, ∀x | 所有主子式 ≥ 0 |
| 负定 | xᵀPx < 0, ∀x ≠ 0 | (-1)ᵏ × 第k阶顺序主子式 > 0 |
| 不定 | 有正有负 | 不满足以上任何条件 |
实战技巧: 我在做LQR控制器设计时,经常需要验证Riccati方程的解是否正定。我的习惯是先用Sylvester准则快速过一遍,如果发现某个主子式接近零,就说明数值稳定性可能有问题,需要改用更稳定的求解算法。
4.5 知识体系结构图
下面这张图,是我自己总结的矩阵正定性判定逻辑。你照着这个流程走,基本不会出错:
4.6 实战中的注意事项
最后,分享几个我这些年积累的经验:
- 数值稳定性: 实际计算中,主子式接近零的情况很常见。我建议设置一个容差 ε = 1e-8,小于这个值就视为零。
- 大矩阵怎么办? 对于 10×10 以上的矩阵,手动计算主子式不现实。直接用 MATLAB 的
chol(P)函数,如果 Cholesky 分解成功,就是正定的。 - 对称性检查: 我见过太多人忘了检查矩阵是否对称。记住,非对称矩阵没有正定性一说。
曾经踩过的坑: 有一次我在做卫星姿态控制,用了一个 6×6 的矩阵。Sylvester准则算到第5阶主子式都是正的,第6阶突然变成负的。我查了三天代码,最后发现是数据采集时有一个传感器的单位搞错了。所以,矩阵正定性检查也是数据质量检查的一种手段。
好了,这一节的内容就到这里。矩阵正定性是李雅普诺夫方法的基石,你把它吃透了,后面讲稳定性定理的时候就会轻松很多。