一、正定矩阵
这一节关注的是特征值都是正数的对称矩阵。如果对称使得矩阵很重要,那么这个额外的性质(所有的 λ>0\lambda>0λ>0)会使得它更加的特殊。我们所说的特殊并不表示它稀有,特征值都是正数的对称矩阵几乎是所有应用的中心,称之为正定(positive definite)。
第一个问题是如何识别正定矩阵。当然求出所有的特征值然后测试 λ>0\lambda>0λ>0 是可以的,但是特征值的计算工作量挺大的,当我们需要 λ′s\lambda'sλ′s,我们可以计算,但是我们仅仅是想知道它的所有 λ′s\lambda'sλ′s 是不是都是正的,会有很多种更快的方法。本节有两个目标:
- 找出快速判定对称矩阵是正数特征值的方法。
- 说明正定的重要应用。
由于是对称矩阵,所以它的每个特征值都是实数。
从 2×2 的矩阵开始,什么时候 S=[abbc]有 λ1>0 且 λ2>0 ?\pmb{从 \,2\times2 \,的矩阵开始,什么时候 \,S=\begin{bmatrix}a&b\\b&c\end{bmatrix} 有\, \lambda_1>0 \,且\, \lambda_2>0}\,?从2×2的矩阵开始,什么时候S=[abbc]有λ1>0且λ2>0?
测试: SSS 的特征值都是正数当且仅当 a>0 且 ac−b2>0.\color{blue}a>0\,且\,ac-b^2>0.a>0且ac−b2>0.
S1=[1221]S_1=\begin{bmatrix}1&2\\2&1\end{bmatrix}S1=[1221] 不是正定,因为 ac−b2=1−4<0ac-b^2=1-4<0ac−b2=1−4<0
S2=[1−2−26]S_2=\begin{bmatrix}\kern 7pt1&-2\\-2&\kern 7pt6\end{bmatrix}S2=[1−2−26] 正定,因为 a=1a=1a=1 且 ac−b2=6−4>0ac-b^2=6-4>0ac−b2=6−4>0
S3=[−122−6]S_3=\begin{bmatrix}-1&\kern 7pt2\\\kern 7pt2&-6\end{bmatrix}S3=[−122−6] 不是正定(尽管 detA=+2\det A=+2detA=+2),因为 a=−1a=-1a=−1
S1S_1S1 的特征值是 333 和 −1-1−1,可以确认 S1S_1S1 不是正定,有正数迹 3−1=23-1=23−1=2,但是负数行列式 (3)(−1)=−3(3)(-1)=-3(3)(−1)=−3。S3=−S2S_3=-S_2S3=−S2 是负定(negative definite)。S2S_2S2 有两个正数特征值,S3S_3S3 有两个负数特征值。
证明:当 λ1>0\lambda_1>0λ1>0 和 λ2>0\lambda_2>0λ2>0 时,可以通过 2×22\times22×2 的测试。乘积 λ1λ2\lambda_1\lambda_2λ1λ2 是行列式所以 ac−b2>0ac-b^2>0ac−b2>0,它们的和 λ1+λ2\lambda_1+\lambda_2λ1+λ2 是迹 a+c>0a+c>0a+c>0,则 aaa 和 ccc 都是正数(如果 aaa 和 ccc 不是正数,ac−b2ac-b^2ac−b2 就不会成立)。这个证明反之亦然,可以证明 a>0a>0a>0 和 ac>b2ac>b^2ac>b2 能够保证 λ1>0\lambda_1>0λ1>0 和 λ2>0\lambda_2>0λ2>0。
这个测试使用了 1×11\times11×1 的行列式 aaa 和 2×22\times22×2 的行列式 ac−b2ac-b^2ac−b2,当 SSS 是 3×33\times33×3 时,第三步测试是要求 detS>0\det S>0detS>0。
下一个测试要求正主元。
测试:SSS 的特征值都是正数当且仅当主元都是正数:
a>0且ac−b2a>0\color{blue}a>0\kern 5pt且\kern 5pt\frac{ac-b^2}{a}>0a>0且aac−b2>0
这两项测试中都要求 a>0a>0a>0,所以对于行列式的测试以及现在的主元测试,ac>b2ac>b^2ac>b2 也是必要的。重点是得到 SSS 的第二主元:[abbc]→乘数是 b/a第一主元是 a[ab0c−bab]第二主元是 c−b2a=ac−b2a\begin{bmatrix}a&b\\b&c\end{bmatrix}\xrightarrow[乘数是\,b/a]{第一主元是\,a}\begin{bmatrix}a&b\\0&c-\displaystyle\frac{b}{a}b\end{bmatrix}\kern 10pt\pmb{第二主元是\,c-\frac{b^2}{a}=\frac{ac-b^2}{a}}[abbc]第一主元是a乘数是b/a[a0bc−abb]第二主元是c−ab2=aac−b2这个将线性代数的两大部分联系在了一起,对于对称矩阵正数特征值意味着正数主元,反之亦然。每个主元都是左上角行列式的比值,通过主元可以快速判定 λ>0\lambda>0λ>0,这比计算特征值要快很多。
3×3 的例子S=[211121112]正定特征值是:1,1,4行列式是:2,3,4主元是:2,3/2,4/3\pmb{3\times3\,的例子}\kern 6ptS=\begin{bmatrix}2&1&1\\1&2&1\\1&1&2\end{bmatrix}正定\kern 7pt\begin{array}{l}\pmb{特征值}是:1,1,4\\\pmb{行列式}是:2,3,4\\\pmb{主元}是:2,3/2,4/3\end{array}3×3的例子S=211121112正定特征值是:1,1,4行列式是:2,3,4主元是:2,3/2,4/3S−IS-IS−I 会是半正定(semidefinite)矩阵:特征值是 0,0,30,0,30,0,3;S−2IS-2IS−2I 是不定的,因为它的特征值是 λ=−1,−1,2\lambda=-1,-1,2λ=−1,−1,2。
下面有一个不同的方法来验证对称矩阵是否是正特征值。
二、能量基定义
由正定矩阵 Sx=λxS\boldsymbol x=\lambda\boldsymbol xSx=λx,两边同时左乘 xT\boldsymbol x^TxT 得 xTSx=λxTx\boldsymbol x^TS\boldsymbol x=\lambda\boldsymbol x^T\boldsymbol xxTSx=λxTx,右边是一个正数 λ\lambdaλ 乘一个正数 xTx=∣∣x∣∣2\boldsymbol x^T\boldsymbol x=||\boldsymbol x||^2xTx=∣∣x∣∣2,所以左边 xTSx\boldsymbol x^TS\boldsymbol xxTSx 对任意的特征向量也是正数。
而对于任意的非零向量 x\boldsymbol xx 都可以写成特征向量的组合 x=c1x1+c2x2+⋯+cnxn\boldsymbol x=c_1\boldsymbol x_1+c_2\boldsymbol x_2+\cdots+c_n\boldsymbol x_nx=c1x1+c2x2+⋯+cnxn,那么 xTSx=(c1x1+c2x2+⋯+cnxn)T(λ1c1x+λ2c2x2+⋯+λncnxn)=c12λ1x1Tx1+c22λ2x2Tx2+⋯+cn2λnxnTxn\boldsymbol x^TS\boldsymbol x=(c_1\boldsymbol x_1+c_2\boldsymbol x_2+\cdots+c_n\boldsymbol x_n)^T(\lambda_1c_1\boldsymbol x+\lambda_2c_2\boldsymbol x_2+\cdots+\lambda_nc_n\boldsymbol x_n)=c_1^2\lambda_1\boldsymbol x_1^T\boldsymbol x_1+c_2^2\lambda_2\boldsymbol x_2^T\boldsymbol x_2+\cdots+c_n^2\lambda_n\boldsymbol x_n^T\boldsymbol x_nxTSx=(c1x1+c2x2+⋯+cnxn)T(λ1c1x+λ2c2x2+⋯+λncnxn)=c12λ1x1Tx1+c22λ2x2Tx2+⋯+cn2λnxnTxn,由于是对称矩阵,所以特征向量均正交,即所有交叉项 xiTxj=0\boldsymbol x_i^T\boldsymbol x_j=0xiTxj=0,故可得上式,若所有的 λ>0\lambda>0λ>0,则对于任意的非零向量 x\boldsymbol xx 都有 xTSx>0\boldsymbol x^TS\boldsymbol x>0xTSx>0.
重点:新的概念是 xTSx\boldsymbol x^TS\boldsymbol xxTSx 对于所有的非零向量 x\boldsymbol xx 都是正数,而不仅仅是特征向量。很多应用中 xTSx\boldsymbol x^TS\boldsymbol xxTSx (或 12xTSx\displaystyle\frac{1}{2}\boldsymbol x^TS\boldsymbol x21xTSx)是系统的能量(energy)。正能量得到要求给出了正定矩阵的另一个定义,这个能量基(energy-based)的定义是基础的一个。
特征值和主元是两种等效的检验 xTSx>0\boldsymbol x^TS\boldsymbol x>0xTSx>0 的方法。
定义: 如果对于任意的非零向量 x\boldsymbol xx 都有 xTSx>0\boldsymbol x^TS\boldsymbol x>0xTSx>0,则 SSS 正定:
2×2xTSx=[xy][abbc][xy]=ax2+2bxy+cy2>0(6.5.1)\pmb{2\times2}\kern 10pt{\color{blue}\boldsymbol x^TS\boldsymbol x}=\begin{bmatrix}x&y\end{bmatrix}\begin{bmatrix}a&b\\b&c\end{bmatrix}\begin{bmatrix}x\\y\end{bmatrix}={\color{blue}ax^2+2bxy+cy^2>0}\kern 12pt(6.5.1)2×2xTSx=[xy][abbc][xy]=ax2+2bxy+cy2>0(6.5.1)
四个元素 a,b,b,ca,b,b,ca,b,b,c 得到 xTSx\boldsymbol x^TS\boldsymbol xxTSx 的四个部分,从 aaa 和 ccc 得到了纯平方项 ax2ax^2ax2 和 cy2cy^2cy2,从非对角线处的 bbb 和 bbb 得到相同的两个交叉项 bxybxybxy 和 byxbyxbyx,将这四项加起来得到 xTSx\boldsymbol x^TS\boldsymbol xxTSx。这个能量基的定义可以得到一个基础的事实:如果 S 和 T 对称正定,那么 S+T 也是。\color{blue}如果\,S\,和 \,T\,对称正定,那么\,S+T\,也是。如果S和T对称正定,那么S+T也是。原因: xT(S+T)x\boldsymbol x^T(S+T)\boldsymbol xxT(S+T)x 就是 xTSx+xTTx\boldsymbol x^TS\boldsymbol x+\boldsymbol x^TT\boldsymbol xxTSx+xTTx,若 x≠0\boldsymbol x\neq\boldsymbol 0x=0,则这两项都是正数,所以 S+TS+TS+T 也正定。当两个矩阵相加时,主元和特征值并不容易追踪,但是能量只需要简单的相加。
xTSx\boldsymbol x^TS\boldsymbol xxTSx 和我们其它确认正定矩阵的方法相联系。从任意矩阵 AAA 开始,也可以是矩形矩阵,我们知道 S=ATAS=A^TAS=ATA 是一个对称的方阵,不仅如此,如果 AAA 的列线性无关,则 SSS 正定:测试:如果 A 的列线性无关,则 S=ATA 正定。\pmb{测试:如果\,A\,的列线性无关,则\,S=A^TA\,正定。}测试:如果A的列线性无关,则S=ATA正定。这里使用特征值和主元判断并不容易,但是数字 xTSx\boldsymbol x^TS\boldsymbol xxTSx 和 xTATAx\boldsymbol x^TA^TA\boldsymbol xxTATAx 相同,xTATAx\boldsymbol x^TA^TA\boldsymbol xxTATAx 就是 (Ax)T(Ax)=∣∣Ax∣∣2(A\boldsymbol x)^T(A\boldsymbol x)=||A\boldsymbol x||^2(Ax)T(Ax)=∣∣Ax∣∣2 —— 这是又一个使用括号的重要证明!由于 AAA 的列是无关列,所以当 x≠0\boldsymbol x\neq\boldsymbol 0x=0 时,向量 AxA\boldsymbol xAx 也不为零,则 xTSx\boldsymbol x^TS\boldsymbol xxTSx 是一个正数 ∣∣Ax∣∣2||A\boldsymbol x||^2∣∣Ax∣∣2,所以这个矩阵 SSS 正定。
到目前为止,有五个等效的判断正定矩阵的判据。这个关键的概念联系了线性代数的整个主题:主元、行列式、特征值和最小二乘(从 ATAA^TAATA)。
当一个对称矩阵 SSS 有下面五个中的任意一个性质时,它就有下面所有的性质:
1、SSS 的所有 nnn 个主元是正数。
2、所有的 nnn 个左上行列式(主子式)都是正数。
3、SSS 的所有 nnn 个特征值都是正数。
4、除 x=0\boldsymbol x=\boldsymbol 0x=0 外,xTSx\boldsymbol x^T S\boldsymbol xxTSx 对于任意的向量 x\boldsymbol xx 都是正数。这是能量基的定义。
5、SSS 等于 ATAA^TAATA,其中 AAA 有无关列。
“左上行列式(upper left determinants)” 即主子式是 1×11\times11×1,2×22\times22×2,⋯\cdots⋯ 一直到 n×nn\times nn×n 的行列式,最后一个就是整个矩阵 SSS 的行列式。这个定理将线性代数的所有内容都联系结合在了一起。
【例1】测试下面的对称矩阵 SSS 和 TTT 的正定性:S=[2−10−12−10−12]和T=[2−1b−12−1b−12]S=\begin{bmatrix}\kern 7pt2&-1&\kern 7pt0\\-1&\kern 7pt2&-1\\\kern 7pt0&-1&\kern 7pt2\end{bmatrix}\kern 5pt和\kern 5ptT=\begin{bmatrix}\kern 7pt2&-1&\kern 7ptb\\-1&\kern 7pt2&-1\\\kern 7ptb&-1&\kern 7pt2\end{bmatrix}S=2−10−12−10−12和T=2−1b−12−1b−12解: SSS 的主元是 222、32\displaystyle\frac{3}{2}23 和 43\displaystyle\frac{4}{3}34,都是正数。它的左上行列式是 222、333 和 444,都是正数。SSS 的特征值是 2−22-\sqrt22−2、222 和 2+22+\sqrt22+2,都是正数。这些就完成了性质 111、222、333 的测试,每一个测试都可以决定它的正定。
对于性质 555,有三个候选矩阵 A1A_1A1、A2A_2A2 和 A3A_3A3,使得 S=ATAS=A^TAS=ATA,都可以证明 SSS 的正定性。A1A_1A1 是一个 4×34\times34×3 的一阶差分矩阵,得到 SSS 中的 −1-1−1、222 和 −1-1−1:S=A1TA1[2−10−12−10−12]=[1−10001−10001−1][100−1100−1100−1]\pmb{S=A_1^TA_1}\kern 20pt\begin{bmatrix}\kern 7pt2&-1&\kern 7pt0\\-1&\kern 7pt2&-1\\\kern 7pt0&-1&\kern 7pt2\end{bmatrix}=\begin{bmatrix}1&-1&\kern 7pt0&\kern 7pt0\\0&\kern 7pt1&-1&\kern 7pt0\\0&\kern 7pt0&\kern 7pt1&-1\end{bmatrix}\begin{bmatrix}\kern 7pt1&\kern 7pt0&\kern 7pt0\\-1&\kern 7pt1&\kern 7pt0\\\kern 7pt0&-1&\kern 7pt1\\\kern 7pt0&\kern 7pt0&-1\end{bmatrix}S=A1TA12−10−12−10−12=100−1100−1100−11−10001−10001−1A1A_1A1 的三个列是无关的,因此 SSS 正定。
A2A_2A2 来自于 S=LDLTS=LDL^TS=LDLT(S=LUS=LUS=LU 的对称版本),消元法可以得到 DDD 中的主元 2,32,432,\displaystyle\frac{3}{2},\frac{4}{3}2,23,34,LLL 中的乘数 −12,0,−23-\displaystyle\frac{1}{2},0,-\frac{2}{3}−21,0,−32,令 A2=(LD)T\pmb{A_2=(L\sqrt D)^T}A2=(LD)T。LDLT=[1−1210−231][23243][1−1201−231]=(LD)(LD)T=A2TA2A2 是 S 的 Cholesky 因子LDL^T=\begin{bmatrix}\kern 7pt1\\-\frac{1}{2}&\kern 7pt1\\\kern 7pt0&-\frac{2}{3}&1\end{bmatrix}\begin{bmatrix}2\\&\frac{3}{2}\\&&\frac{4}{3}\end{bmatrix}\begin{bmatrix}1&-\frac{1}{2}&\kern 7pt0\\&\kern 7pt1&-\frac{2}{3}\\&&\kern 7pt1\end{bmatrix}=\begin{array}{l}\\(L\sqrt D)(L\sqrt D)^T=A_2^TA_2\\\color{blue}A_2\,是\,S\,的\,\textrm{Cholesky}\,因子\end{array}LDLT=1−2101−321223341−2110−321=(LD)(LD)T=A2TA2A2是S的Cholesky因子这个 AAA 的三角形矩阵中出现了平方根,没有那么漂亮。这个是 SSS 的 “Cholesky factor”,MATLAB 中的指令是 A=chol(S)A=\textrm{chol}(S)A=chol(S)。在应用中,矩形 A1A_1A1 是我们如何建立的 SSS,而 Cholesky A2A_2A2 是如何分解它。
特征值得到对称的选择 A3=QΛQT\pmb{A_3=Q\sqrt \Lambda Q^T}A3=QΛQT,其中 A3TA3=QΛQT=SA_3^TA_3=Q\Lambda Q^T=SA3TA3=QΛQT=S,所有的测试都证明了 −1,2,−1-1,2,-1−1,2,−1 矩阵 SSS 是正定的。
要看能量 xTSx\boldsymbol x^TS\boldsymbol xxTSx 是不是正的,我们将它写成平方和的形式。这三个选择 A1,A2,A3A_1,A_2,A_3A1,A2,A3 有三种不同的分离 xTSx\boldsymbol x^TS\boldsymbol xxTSx 的方式:xTSx=2x12−2x1x2+2x22−2x2x3+2x32改写成平方∣∣A1x∣∣2=x12+(x2−x1)2+(x3−x2)2+x32使用差分的 A1∣∣A2x∣∣2=2(x1−12x2)2+32(x2−23x3)2+43x32使用 S=LDLT∣∣A3x∣∣2=λ1(q1Tx)2+λ2(q2Tx)2+λ3(q3Tx)2使用 S=QΛQT\begin{array}{ll}\boldsymbol x^TS\boldsymbol x=2x_1^2-2x_1x_2+2x_2^2-2x_2x_3+2x_3^2&\pmb{改写成平方}\\||A_1\boldsymbol x||^2=x_1^2+(x_2-x_1)^2+(x_3-x_2)^2+x_3^2&\pmb{使用差分的\,A_1}\\||A_2\boldsymbol x||^2=2(x_1-\frac{1}{2}x_2)^2+\frac{3}{2}(x_2-\frac{2}{3}x_3)^2+\frac{4}{3}x_3^2&\pmb{使用\,S=LDL^T}\\||A_3\boldsymbol x||^2=\lambda_1(\boldsymbol q_1^T\boldsymbol x)^2+\lambda_2(\boldsymbol q_2^T\boldsymbol x)^2+\lambda_3(\boldsymbol q_3^T\boldsymbol x)^2&\pmb{使用\,S=Q\Lambda Q^T}\end{array}xTSx=2x12−2x1x2+2x22−2x2x3+2x32∣∣A1x∣∣2=x12+(x2−x1)2+(x3−x2)2+x32∣∣A2x∣∣2=2(x1−21x2)2+23(x2−32x3)2+34x32∣∣A3x∣∣2=λ1(q1Tx)2+λ2(q2Tx)2+λ3(q3Tx)2改写成平方使用差分的A1使用S=LDLT使用S=QΛQT下面看矩阵 TTT,(1,3)(1,3)(1,3) 和 (3,1)(3,1)(3,1) 元素从 000 变成了 bbb,这个 bbb 一定不能太大!行列式的测试是最简单的,1×11\times11×1 行列式是 222,2×22\times22×2 的行列式还是 333,3×33\times33×3 的行列式包含 bbb:对 T 进行测试detT=4+2b−2b2=(1+b)(4−2b)一定要是正数\pmb{对\,T\,进行测试}\kern 10pt\det T=4+2b-2b^2=(1+b)(4-2b)\kern 10pt一定要是正数对T进行测试detT=4+2b−2b2=(1+b)(4−2b)一定要是正数在 b=−1b=-1b=−1 和 b=2b=2b=2 时得到 detT=0\det T=0detT=0,当 −1<b<2-1<b<2−1<b<2 时矩阵 TTT 正定。矩阵 SSS 角落中的元素 b=0b=0b=0,它在 −1-1−1 和 222 之间,所以是安全的。
三、半正定矩阵
很多时候我们会在正定的边缘,此时行列式为零,最小的特征值是零,这个特征向量的能量是 xTSx=xT0x=0\boldsymbol x^TS\boldsymbol x=\boldsymbol x^T0\boldsymbol x=0xTSx=xT0x=0。这些边缘情况的矩阵称为半正定(positive semidefinite)。下面是两个例子(不可逆):S=[1224]和T=[2−1−1−12−1−1−12]都是半正定S=\begin{bmatrix}1&2\\2&4\end{bmatrix}\kern 5pt和\kern 5ptT=\begin{bmatrix}\kern 7pt2&-1&-1\\-1&\kern 7pt2&-1\\-1&-1&\kern 7pt2\end{bmatrix}都是半正定S=[1224]和T=2−1−1−12−1−1−12都是半正定SSS 的特征值是 555 和 000,它的左上行列式分别是 111 和 000,秩只有 111。这个矩阵 SSS 可分解成 ATAA^TAATA,但是 AAA 是有相关列:A 有相关列半正定的 S[1224]=[1020][1200]=ATA\begin{array}{l}\pmb{A\,有相关列}\\\pmb{半正定的\,S}\end{array}\kern 5pt\begin{bmatrix}1&2\\2&4\end{bmatrix}=\begin{bmatrix}1&0\\2&0\end{bmatrix}\begin{bmatrix}1&2\\0&0\end{bmatrix}=A^TAA有相关列半正定的S[1224]=[1200][1020]=ATA如果 444 再稍微变大一点,矩阵 SSS 就变成正定的了。循环 TTT 的行列式也是零(例 111 中当 b=−1b=-1b=−1 时),TTT 是奇异的,特征向量 x=(1,1,1)\boldsymbol x=(1,1,1)x=(1,1,1) 有 Tx=0T\boldsymbol x=\boldsymbol 0Tx=0 且能量 xTTx=0\boldsymbol x^TT\boldsymbol x=0xTTx=0。其它方向的向量 x\boldsymbol xx 都得到正能量。这个 TTT 可以写成很多种 ATAA^TAATA 的形式,但是 AAA 一定有相关列,因为 (1,1,1)(1,1,1)(1,1,1) 在它的零空间:二阶差分 T来自于一阶差分 A循环 T 来自于循环 A[2−1−1−12−1−1−12]=[1−1001−1−101][10−1−1100−11]\begin{array}{l}\pmb{二阶差分\,T}\\\pmb{来自于一阶差分\,A}\\\pmb{循环\,T\,来自于循环\,A}\pmb{}\end{array}\kern 7pt\begin{bmatrix}\kern7pt2&-1&-1\\-1&\kern 7pt2&-1\\-1&-1&\kern 7pt2\end{bmatrix}=\begin{bmatrix}\kern 7pt1&-1&\kern 7pt0\\\kern 7pt0&\kern 7pt1&-1\\-1&\kern 7pt0&\kern 7pt1\end{bmatrix}\begin{bmatrix}\kern 7pt1&\kern 7pt0&-1\\-1&\kern 7pt1&\kern 7pt0\\\kern 7pt0&-1&\kern 7pt1\end{bmatrix}二阶差分T来自于一阶差分A循环T来自于循环A2−1−1−12−1−1−12=10−1−1100−111−1001−1−101半正定矩阵的所有 λ≥0\lambda\geq0λ≥0 且所有的 xTSx≥0\boldsymbol x^TS\boldsymbol x\geq0xTSx≥0,这些弱不等式(≥\pmb{\geq}≥ 而不是 >\pmb{>}>)包括正定 SSS 和处于边缘的奇异矩阵。
四、椭圆 ax2+2bxy+cy2=1ax^2+2bxy+cy^2=1ax2+2bxy+cy2=1
考虑一下如 Figure 6.7a 所示的倾斜的椭圆(ellipse) xTSx=1\boldsymbol x^TS\boldsymbol x=1xTSx=1,它的中心是 (0,0)(0,0)(0,0),将它旋转到与坐标轴对齐(XXX 和 YYY 轴),就是 Figrue 6.7(b)。这两张图展示了 S=QΛQ−1=QΛQTS=Q\Lambda Q^{-1}=Q\Lambda Q^TS=QΛQ−1=QΛQT 这种分解背后的几何意义:
- 倾斜的椭圆对应于 SSS,它的方程是 xTSx=1\boldsymbol x^TS\boldsymbol x=1xTSx=1。
- 与坐标轴对齐的椭圆对应于 Λ\LambdaΛ,它的方程是 XTΛX=1X^T\Lambda X=1XTΛX=1。
- 使得椭圆旋转到与坐标轴对齐的旋转矩阵是特征向量矩阵 QQQ。
【例2】求出倾斜椭圆 5x2+8xy+5y2=15x^2+8xy+5y^2=15x2+8xy+5y2=1 的轴。
解: 从匹配这个方程的正定矩阵开始:方程是[xy][5445][xy]=1矩阵是S=[5445]方程是\kern 10pt\begin{bmatrix}x&y\end{bmatrix}\begin{bmatrix}5&4\\4&5\end{bmatrix}\begin{bmatrix}x\\y\end{bmatrix}=1\kern 12pt矩阵是\kern 5pt\boxed{S=\begin{bmatrix}5&4\\4&5\end{bmatrix}}方程是[xy][5445][xy]=1矩阵是S=[5445]特征向量是 [11]\begin{bmatrix}1\\1\end{bmatrix}[11] 和 [1−1]\begin{bmatrix}\kern 7pt1\\-1\end{bmatrix}[1−1],除以 2\sqrt22 得到单位向量,则 S=QΛQTS=Q\Lambda Q^TS=QΛQT:特征向量在 Q 中特征值是 9 和 1[5445]=12[111−1][9001]12[111−1]\begin{array}{l}\pmb{特征向量在\,Q\,中}\\\pmb{特征值是\,9\,和\,1}\end{array}\kern 10pt\begin{bmatrix}5&4\\4&5\end{bmatrix}=\frac{1}{\sqrt2}\begin{bmatrix}1&\kern 7pt1\\1&-1\end{bmatrix}\begin{bmatrix}\pmb9&0\\0&\pmb1\end{bmatrix}\frac{1}{\sqrt2}\begin{bmatrix}1&\kern 7pt1\\1&-1\end{bmatrix}特征向量在Q中特征值是9和1[5445]=21[111−1][9001]21[111−1]现在左乘 [xy]\begin{bmatrix}x&y\end{bmatrix}[xy] 再右乘 [xy]\begin{bmatrix}x\\y\end{bmatrix}[xy] 得到 xTSx=(xTQ)Λ(QTx)\boldsymbol x^TS\boldsymbol x=(\boldsymbol x^TQ)\Lambda(Q^T\boldsymbol x)xTSx=(xTQ)Λ(QTx):xTSx=平方和5x2+8xy+5y2=9(x+y2)2+1(x−y2)(6.5.2){\color{blue}\boldsymbol x^TS\boldsymbol x=平方和}\kern 13pt5x^2+8xy+5y^2=9\Big(\frac{x+y}{\sqrt2}\Big)^2+1\Big(\frac{x-y}{\sqrt2}\Big)\kern 14pt(6.5.2)xTSx=平方和5x2+8xy+5y2=9(2x+y)2+1(2x−y)(6.5.2)系数不是来自于 DDD 的主元 555 和 9/59/59/5,而是来自于 Λ\LambdaΛ 的特征值 999 和 111。平方里面是特征向量 q1=12[11]\boldsymbol q_1=\displaystyle\frac{1}{\sqrt2}\begin{bmatrix}1\\1\end{bmatrix}q1=21[11] 和 q2=12[1−1]\boldsymbol q_2=\displaystyle\frac{1}{\sqrt2}\begin{bmatrix}\kern 7pt1\\-1\end{bmatrix}q2=21[1−1]。
倾斜椭圆的轴指向特征向量。这个解释了为什么 S=QΛQTS=Q\Lambda Q^TS=QΛQT 称为 “主轴定理”,因为它显示了轴。不仅有轴的方向(来自于特征向量),还有轴的长度(来自于特征值)。要完全看到这些,我们用大写字母作为对齐坐标轴后的椭圆的新坐标:Line up 对齐x+y2=X和x−y2=Y和9X2+Y2=1\pmb{\textrm{Line\,up}\,\,对齐}\kern 14pt\frac{x+y}{\sqrt2}=X\kern 5pt和\kern 5pt\frac{x-y}{\sqrt2}=Y\kern 5pt和\kern 5pt\pmb{9X^2+Y^2=1}Lineup对齐2x+y=X和2x−y=Y和9X2+Y2=1X2X^2X2 的最大值是 1/91/91/9,短轴的端点是 X=1/3X=1/3X=1/3 和 Y=0Y=0Y=0。
注意:大的特征值 λ1=9\lambda_1=9λ1=9 得到的是短轴,半长(half-length)是 1/λ1=1/31/\sqrt{\lambda_1}=1/31/λ1=1/3;小的特征值 λ2=1\lambda_2=1λ2=1 得到长轴,半长是 1/λ2=11/\sqrt{\lambda_2}=11/λ2=1。
在 xyxyxy 系统中,轴是沿着 SSS 的特征向量;在 XYXYXY 系统中,轴是沿着 Λ\LambdaΛ 的特征向量 —— 即坐标轴。这些全部都来自于 S=QΛQTS=Q\Lambda Q^TS=QΛQT。
当所有的 λi>0\lambda_i>0λi>0 时,S=QΛQTS=Q\Lambda Q^TS=QΛQT 正定,xTSx=1\boldsymbol x^TS\boldsymbol x=1xTSx=1 的图形是一个椭圆:椭圆[xy]QΛQT[xy]=[XY]Λ[XY]=λ1X2+λ2Y2=1(6.5.3)\boxed{\pmb{椭圆}\kern 15pt\begin{bmatrix}x&y\end{bmatrix}Q\Lambda Q^T\begin{bmatrix}x\\y\end{bmatrix}=\begin{bmatrix}X&Y\end{bmatrix}\Lambda\begin{bmatrix}X\\Y\end{bmatrix}=\pmb{\lambda_1X^2+\lambda_2Y^2=1}}\kern 16pt(6.5.3)椭圆[xy]QΛQT[xy]=[XY]Λ[XY]=λ1X2+λ2Y2=1(6.5.3)轴指向 SSS 的特征向量,半长是 1/λ11/\sqrt{\lambda_1}1/λ1 和 1/λ21/\sqrt{\lambda_2}1/λ2。
S=IS=IS=I 得到圆 x2+y2=1x^2+y^2=1x2+y2=1,如果一个特征值是负的(交换 SSS 中的 4′s4's4′s 和 5′s5's5′s),椭圆将变成一个双曲线(hyperbola),平方和变成了平方的差:9X2−Y2=19X^2-Y^2=19X2−Y2=1。若是一个负定矩阵如 S=−IS=-IS=−I,它两个特征值 λ\lambdaλ 都是负数,−x2−y2=1-x^2-y^2=1−x2−y2=1 的图形就没有一个点。
如果 SSS 是 n×nn\times nn×n 的矩阵,xTSx=1\boldsymbol x^TS\boldsymbol x=1xTSx=1 是 Rn\pmb{\textrm R}^nRn 中的一个 “椭球体(ellipsoid)”,它轴的方向是 SSS 的特征向量。
五、重要应用:最小值判断
在点 (x,y)=(0,0)(x,y)=(0,0)(x,y)=(0,0) 处,如果 ∂F/∂x=0\partial F/\partial x=0∂F/∂x=0 且 ∂F/∂y=0\partial F/\partial y=0∂F/∂y=0,那么 F(x,y)F(x,y)F(x,y) 有极小值吗?
对于 f(x)f(x)f(x),我们通过微积分来判断是否存在极小值:df/dx=0df/dx=0df/dx=0 且 d2f/dx2>0d^2f/dx^2>0d2f/dx2>0。对于F(x,y)F(x,y)F(x,y), 它的两个变量得到一个对称矩阵 SSS,它包含了四个二阶导数。d2f/dx2\pmb{d^2f/dx^2}d2f/dx2 为正数的要求变成了矩阵 S\pmb SS 正定:如果 ∂F/∂x=∂F/∂y=0\partial F/\partial x=\partial F/\partial y=0∂F/∂x=∂F/∂y=0 且 SSS 正定时,F(x,y)F(x,y)F(x,y) 存在极小值。
原因:SSS 显示了 ax2+2bxy+cy2ax^2+2bxy+cy^2ax2+2bxy+cy2 在 (x,y)=(0,0)(x,y)=(0,0)(x,y)=(0,0) 附近全部的重要项,FFF 的二阶导数是 2a,2b,2b,2c2a,2b,2b,2c2a,2b,2b,2c。对于 F(x,y,z)F(x,y,z)F(x,y,z) 矩阵 SSS 是 3×33\times33×3 的。
六、主要内容总结
- 正定矩阵的特征值和主元都是正数。
- 通过左上行列式(主子式)可以快速判断正定:a>0a>0a>0 且 ac−b2>0ac-b^2>0ac−b2>0。
- 能量 xTSx\boldsymbol x^TS\boldsymbol xxTSx 的图是一个从 x=0\boldsymbol x=\boldsymbol 0x=0 处朝上的 “碗”:xTSx=ax2+2bxy+cy2除了(x,y)=(0,0) ,均为正数\boldsymbol x^TS\boldsymbol x=ax^2+2bxy+cy^2\kern 10pt除了\kern 1pt(x,y)=(0,0)\,,均为正数xTSx=ax2+2bxy+cy2除了(x,y)=(0,0),均为正数
- 如果 AAA 是无关列,则 S=ATAS=A^TAS=ATA 正定。
- 椭球体 xTSx=1\boldsymbol x^TS\boldsymbol x=1xTSx=1 的轴沿着 SSS 的特征向量,半长是 1/λ1/\sqrt \lambda1/λ。
- 如果 ∂F∂x=∂F∂y=0\displaystyle\frac{\partial F}{\partial x}=\frac{\partial F}{\partial y}=0∂x∂F=∂y∂F=0 且二阶导数矩阵正定,则 F(x,y)F(x,y)F(x,y) 有极小值。
七、例题
【例3】对称矩阵的分解:S=LDLTS=LDL^TS=LDLT 来自于主元和乘数;S=QΛQTS=Q\Lambda Q^TS=QΛQT 来自于特征值和特征向量。测试下面的矩阵的正定性:pascal(6)、ones(6)、hilb(6) 和 rand(6)+rand(6)'。
解: pascal(6) 正定,因为它所有的主元都是 111
ones(6) 半正定,因为它的特征值是 0,0,0,0,0,60,0,0,0,0,60,0,0,0,0,6
H = hilb(6) 正定,尽管 eig(H) 得到的特征值非常接近于零。
希尔伯特矩阵 Hilbert matrix: xTHx=∫01(x1+x2s+⋯+x6s5)2ds>0, Hij=1/(i+j−1)\boldsymbol x^TH\boldsymbol x=\int_0^1(x_1+x_2s+\cdots+x_6s^5)^2ds>0, \,H_{ij}=1/(i+j-1)xTHx=∫01(x1+x2s+⋯+x6s5)2ds>0,Hij=1/(i+j−1)
rand(6)+rand(6)’ 也可能正定,也可能不是正定。使用 MATLAB 测试 200002000020000 次中正定矩阵的个数。
n = 20000;
p = 0;
for k=1:n
A = rand(6);
p = p + all(eig(A+A')>0); % 正定矩阵的个数
end
disp(p); % 输出 p 的值
可能每次结果不同,本次输出结果是 777:
【例4】什么时候对称的分块矩阵 M=[ABBTC]M=\begin{bmatrix}A&B\\B^T&C\end{bmatrix}M=[ABTBC] 正定?
解: MMM 第二行减去第一行左乘 BTA−1B^TA^{-1}BTA−1,得到一个零块,角落里得到舒尔补 S=C−BTA−1BS=C-B^TA^{-1}BS=C−BTA−1B:[I0−BTA−1I][ABBTC]=[AB0C−BTA−1B]=[AB0S](6.5.4)\begin{bmatrix}I&0\\-B^TA^{-1}&I\end{bmatrix}\begin{bmatrix}A&B\\B^T&C\end{bmatrix}=\begin{bmatrix}A&B\\0&C-B^TA^{-1}B\end{bmatrix}=\begin{bmatrix}\pmb A&B\\0&\pmb S\end{bmatrix}\kern 15pt(6.5.4)[I−BTA−10I][ABTBC]=[A0BC−BTA−1B]=[A0BS](6.5.4)这两块 AAA 和 SSS 一定要正定。它们的主元就是 MMM 的主元。
【例5】求 −1,2,−1-1,2,-1−1,2,−1 三对角 n×nn\times nn×n 矩阵 SSS 的特征值。
解: 最好的方法是猜 λ\lambdaλ 和 x\boldsymbol xx,然后检验 Sx=λxS\boldsymbol x=\lambda\boldsymbol xSx=λx。虽说大部分矩阵都无法猜测,但是特殊情况也占了数学的一大部分(纯数学与应用)。
关键信息隐藏在了一个微分方程中,二阶差分矩阵 SSS 就像二阶导数,这些特征值会更容易得到:
特征值 λ1,λ2,⋯特征函数 y1,y2,⋯d2ydx2=λy且y(0)=0y(1)=0(6.5.5)\begin{array}{l}\pmb{特征值\,\lambda_1,\lambda_2,\cdots}\\\pmb{特征函数\,y_1,y_2,\cdots}\end{array}\kern 15pt{\color{blue}\frac{d^2y}{dx^2}=\lambda y\kern 5pt且\kern 5pt\begin{matrix}y(0)=0\\y(1)=0\end{matrix}}\kern 25pt(6.5.5)特征值λ1,λ2,⋯特征函数y1,y2,⋯dx2d2y=λy且y(0)=0y(1)=0(6.5.5)
尝试 y=sincxy=\sin cxy=sincx,它的二阶导数是 y′′=−c2sincxy''=-c^2\sin cxy′′=−c2sincx,假设的 y=sincxy=\sin cxy=sincx 满足端点条件 y(0)=0=y(1)y(0)=0=y(1)y(0)=0=y(1),所以式(6.5.5)的特征值是 λ=−c2\lambda=-c^2λ=−c2。
sin0=0\sin0=0sin0=0 满足端点条件(这里余弦就被排除了),另一个端点是 x=1x=1x=1 时 y(1)=sinc=0y(1)=\sin c=0y(1)=sinc=0,则数字 ccc 一定时 kπkπkπ,它是 πππ 的倍数,则 λ=−k2π2\lambda=-k^2π^2λ=−k2π2:$$特征值 λ=−k2π2特征函数 y=sinkπxd2dx2sinkπx=−k2π2sinkπx(6.5.6)\begin{array}{l}\pmb{特征值\,\lambda=-k^2π^2}\\\pmb{特征函数\,y=\sin kπx}\end{array}\kern 15pt{\frac{d^2}{dx^2}\sin kπx=-k^2π^2\sin kπx}\kern 25pt(6.5.6)特征值λ=−k2π2特征函数y=sinkπxdx2d2sinkπx=−k2π2sinkπx(6.5.6) 现在回到矩阵 SSS,猜它的特征向量。sinkx\sin kxsinkx 在 nnn 个点 x=h,2h,⋯ ,nhx=h,2h,\cdots,nhx=h,2h,⋯,nh 是 000 到 111 之间相等的空间点,空间距离 Δx\Delta xΔx 是 1/(n+1)1/(n+1)1/(n+1),所以第 n+1n+1n+1 个点有 (n+1)h=1(n+1)h=1(n+1)h=1,SSS 乘正弦向量 x\boldsymbol xx:S 的特征值是正数Sx=λkx=(2−2coskπh)xS 的特征向量是正弦向量x=(sinkπh,⋯ ,sinnkπh)(6.5.7){\color{blue}\begin{array}{ll}S\,的特征值是正数&S\boldsymbol x=\lambda_k\boldsymbol x=(2-2\cos kπh)\boldsymbol x\\S\,的特征向量是正弦向量&\boldsymbol x=(\sin kπh,\cdots,\sin nkπh)\end{array}}\kern 15pt(6.5.7)S的特征值是正数S的特征向量是正弦向量Sx=λkx=(2−2coskπh)xx=(sinkπh,⋯,sinnkπh)(6.5.7)