用二次方程判别式判断正定矩阵
By 苏剑林 | 2013-12-24 | 62165位读者 |快要学期末了,不少学霸开始忙碌起来了。不过对非学霸的我来说,基本上每天都是一样的,希望把自己感兴趣的东西深入研究下去,因为我觉得,真正学会点有用的东西才是最重要的。数学分析和高等代数老师都要求写课程论文,我也写了我比较感兴趣的“欧拉数学”和“超复数研究”,之后会把这部分内容与大家分享。
虽然学期已经接近尾声了,但是我们的课程还没有上完。事实上,我们的新课一直上到十八周~随着考试的接近,我们的《高等代数》课程也已经要落幕了。最近在上的是二次型方面的内容,讲到正定二次型和正定矩阵。关于正定矩阵的判别,教科书上提供了两个判别方法,一个是基于定义的初等变换,另外一个就是主子式法。前者无可厚非,但是后者我似乎难以理解——它虽然是正确的,但是它很丑,计算量又大。我还没有想清楚主子式法到底有什么好的?在我看来,本文所探讨的基于二次方程判别式的方法才是简单、快捷的。
正定二次型
所谓正定二次型,就是关于n个变量x1,x2,...,xn的二次齐次函数,只要xi不全为0,它的值恒为正数。比如
2x21+x22−2x1x2=x21+(x2−x1)2
这是一个比较简单的正定二次型,多元的还有
5x21+x22+5x23+4x1x2−8x1x3−4x2x3
等等。但是上式并不容易看出它的正定性,为了判别,我们可以讲它改写为矩阵形式,然后通过初等变换或者主子式法判别。但是我是通过考虑方程
f(t)=5x21+x22+5t2+4x1x2−(8x1+4x2)t=0
的解来判别的,首先容易检验
f(0)=5x21+x22+4x1x2=(2x1+x2)2+x21≤0
因为它的判别式
Δ=(8x1+4x2)2−4×5×(5x21+x22+4x1x2)=−36x21−4x22−16x1x2=−4[5x21+(2x2−x1)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}},
}
December 24th, 2013
你们上到18周啊我们16周就结了,话说去年学的线性代数早就忘关啦。。。。。
正常来说我们都不会忘记自己创造的东西~当你真正把学到的东西用自己的方式创造出来时,就不会忘了。^_^
我们要奋斗到最后一天~可能是因为我们平时有比较多的自由研究时间,课程不多,因此就一直上到尾才能上得完
不过其实理解本文的思想好像不需要任何线性代数的基础,就是一元二次方程的判别式...
June 22nd, 2014
在写出f(t)的最后的展开式时,t^2的系数应该是d吧,文中写成了c。
还有就是如果A,B正定,那么A+B正定,但是A或者B正定,并且A+B正定,不知是否可以推出B或A正定?
再有就是由于b=c,所以m可以简化为b吧。
你说的错误我已经修正了,谢谢。
关于b、c问题,因为我一开始没有假设矩阵是对称矩阵,所以就没有这个简化了。
我误以为只对实对称矩阵有效,因为我们用的是线代书是只针对实矩阵进行讲解的,而实际上可以扩展至复数域,谢谢指正。
不客气,欢迎常来~多多交流
July 17th, 2015
说实话,我把这个看作了站长关于各阶主子式判别法的证明了,因为以前一直没看到相关证明,一看站长这玩意,就开心(∩_∩)极了。