快要学期末了,不少学霸开始忙碌起来了。不过对非学霸的我来说,基本上每天都是一样的,希望把自己感兴趣的东西深入研究下去,因为我觉得,真正学会点有用的东西才是最重要的。数学分析和高等代数老师都要求写课程论文,我也写了我比较感兴趣的“欧拉数学”和“超复数研究”,之后会把这部分内容与大家分享。

虽然学期已经接近尾声了,但是我们的课程还没有上完。事实上,我们的新课一直上到十八周~随着考试的接近,我们的《高等代数》课程也已经要落幕了。最近在上的是二次型方面的内容,讲到正定二次型和正定矩阵。关于正定矩阵的判别,教科书上提供了两个判别方法,一个是基于定义的初等变换,另外一个就是主子式法。前者无可厚非,但是后者我似乎难以理解——它虽然是正确的,但是它很丑,计算量又大。我还没有想清楚主子式法到底有什么好的?在我看来,本文所探讨的基于二次方程判别式的方法才是简单、快捷的。

正定二次型
所谓正定二次型,就是关于n个变量x1,x2,...,xn的二次齐次函数,只要xi不全为0,它的值恒为正数。比如
2x21+x222x1x2=x21+(x2x1)2
这是一个比较简单的正定二次型,多元的还有
5x21+x22+5x23+4x1x28x1x34x2x3
等等。但是上式并不容易看出它的正定性,为了判别,我们可以讲它改写为矩阵形式,然后通过初等变换或者主子式法判别。但是我是通过考虑方程
f(t)=5x21+x22+5t2+4x1x2(8x1+4x2)t=0
的解来判别的,首先容易检验
f(0)=5x21+x22+4x1x2=(2x1+x2)2+x210
因为它的判别式
Δ=(8x1+4x2)24×5×(5x21+x22+4x1x2)=36x214x2216x1x2=4[5x21+(2x2x1)2]
x1,x2不全为0时,判别式为负数,因此原方程无解,f(t)恒大于0;当x1=x2=0时,只有一个解t=0,对于t>0,也有f(t)>0。因此上述二次型正定。

正定矩阵
把上面的方法系统整理起来,就得到如下的正定矩阵判别法了。

所谓正定矩阵,就是一个n阶实矩阵\boldsymbol{A}_n,对于任意的n维非零实列向量\boldsymbol{x},都有
\boldsymbol{x}^{T} \boldsymbol{A}_n \boldsymbol{x} > 0

\boldsymbol{A}_n写成分块形式
\boldsymbol{A}_n=\left[ \begin{matrix} \boldsymbol{A}_{n-1}& \boldsymbol{b}\\ {\boldsymbol{c}^T}&d \end{matrix}\right]
其中\boldsymbol{A}_{n-1}是n-1阶矩阵。并且将向量\boldsymbol{x}写成分块向量
\left( {\begin{matrix} {\boldsymbol{y}}\\t \end{matrix}} \right)
其中\boldsymbol{y}是n-1维向量,它\boldsymbol{x}的前n-1个元素,t\boldsymbol{x}的第n个元素。那么
\begin{aligned} f(t)=\boldsymbol{x}^T \boldsymbol{A}_n \boldsymbol{x}&=\left(\boldsymbol{y}^{T},t\right)\left[ {\begin{array}{\cdot {20}{c}} \boldsymbol{A}_{n-1}& \boldsymbol{b}\\ {\boldsymbol{c}^T}&d \end{array}} \right] \left( {\begin{array}{\cdot {20}{c}} {\boldsymbol{y}}\\ t \end{array}} \right)\\ &=d t^2+\left(\boldsymbol{c}^{T} \boldsymbol{y}+\boldsymbol{y}^{T}\boldsymbol{b}\right)t+\boldsymbol{y}^{T}\boldsymbol{A}_{n-1}\boldsymbol{y}\\ &=d t^2+\left[\left(\boldsymbol{b}+\boldsymbol{c}\right)^{T}\boldsymbol{y}\right]t+\boldsymbol{y}^{T}\boldsymbol{A}_{n-1}\boldsymbol{y} \end{aligned}

如果矩阵\boldsymbol{A}_n是正定的,那么f(0)=\boldsymbol{y}^{T}\boldsymbol{A}_{n-1}\boldsymbol{y} \geq 0,即\boldsymbol{A}_{n-1}是正定的,这是一个必要条件;另外一个必要条件是d > 0

同时f(t)=0的判别式必须非正数,即
\begin{aligned} \Delta &=\left[\left(\boldsymbol{b}+\boldsymbol{c}\right)^{T}\boldsymbol{y}\right]^2-4d\boldsymbol{y}^{T}\boldsymbol{A}_{n-1}\boldsymbol{y}\\ &=4\boldsymbol{y}^{T}\left(\boldsymbol{m}\boldsymbol{m}^T-d\boldsymbol{A}_{n-1}\right)\boldsymbol{y}\\ &\leq 0 \end{aligned}
其中\boldsymbol{m}=\frac{1}{2}(\boldsymbol{b}+\boldsymbol{c})。上式也就是说\left(d\boldsymbol{A}_{n-1}-\boldsymbol{m}\boldsymbol{m}^T\right)是正定的。并且注意到矩阵\boldsymbol{m}\boldsymbol{m}^T是正定的,因此如果\left(d\boldsymbol{A}_{n-1}-\boldsymbol{m}\boldsymbol{m}^T\right)是正定的,那么\boldsymbol{A}_{n-1}一定是正定的(两个正定矩阵的和还是正定矩阵),所以后者已经包含在前者里边。那么我们就得到了如下判别法:

矩阵\boldsymbol{A}_n=\left[ \begin{array}{*{20}{c}} \boldsymbol{A}_{n-1}& \boldsymbol{b}\\ {\boldsymbol{c}^T}&d \end{array} \right]是正定的,当且仅当d >0\left(d\boldsymbol{A}_{n-1}-\boldsymbol{m}\boldsymbol{m}^T\right)是正定的。其中\boldsymbol{m}=\frac{1}{2}(\boldsymbol{b}+\boldsymbol{c})

这样n阶矩阵的正定性问题就变成了n-1阶矩阵的正定性问题,类似地可以变成n-2阶矩阵的正定性判定...直到变为单个数的正性判断。

结束语
不论怎么看,本文所提供的判别法的计算量应该比初等变换和主子式法要低,而且推导也比较简单。所以我现在还想不明白为什么教材和网络上对此几乎没有提及。事实上,即使在写作业中,我也愿意用判别式的方法而不是常规的方法来判断正定性。因为对于我来说,我自己想出来的、能够解决问题的方法才是好方法。如果我没有接触二次型的矩阵基础知识,我也可以用判别式来判断一个二次型是否正定,而纵使让我探究上几年,估计我也不会想出像主子式那样“丑陋”的方法。

不过可能让读者感到意外的是,主子式这样“丑陋”的方法,却是跟本文的方法本质一样的。我们先判断对角线最下面的元素是否为正数,然后把矩阵降低一阶,再判断新矩阵的对角线最下面的元素是否为正数,依此类推...每一步需要判断的对角线最下面的元素其实就相当于一个主子式。两者没有本质区别,但是如果真的使用计算机编程,那么显然本文的方法在效率上会略胜一筹。

转载到请包括本文地址:https://kexue.fm/archives/2195

更详细的转载事宜请参考:《科学空间FAQ》

如果您还有什么疑惑或建议,欢迎在下方评论区继续讨论。

如果您觉得本文还不错,欢迎分享/打赏本文。打赏并非要从中获得收益,而是希望知道科学空间获得了多少读者的真心关注。当然,如果你无视它,也不会影响你的阅读。再次表示欢迎和感谢!

如果您需要引用本文,请参考:

苏剑林. (Dec. 24, 2013). 《用二次方程判别式判断正定矩阵 》[Blog post]. Retrieved from https://kexue.fm/archives/2195

@online{kexuefm-2195,
        title={用二次方程判别式判断正定矩阵},
        author={苏剑林},
        year={2013},
        month={Dec},
        url={\url{https://kexue.fm/archives/2195}},
}