6.5 正定矩阵

一、正定矩阵

这一节关注的是特征值都是正数的对称矩阵。如果对称使得矩阵很重要,那么这个额外的性质(所有的 λ > 0 \lambda>0 λ>0)会使得它更加的特殊。我们所说的特殊并不表示它稀有,特征值都是正数的对称矩阵几乎是所有应用的中心,称之为正定(positive definite)
第一个问题是如何识别正定矩阵。当然求出所有的特征值然后测试 λ > 0 \lambda>0 λ>0 是可以的,但是特征值的计算工作量挺大的,当我们需要 λ ′ s \lambda's λs,我们可以计算,但是我们仅仅是想知道它的所有 λ ′ s \lambda's λs 是不是都是正的,会有很多种更快的方法。本节有两个目标:

  • 找出快速判定对称矩阵是正数特征值的方法。
  • 说明正定的重要应用。

由于是对称矩阵,所以它的每个特征值都是实数。
从   2 × 2   的矩阵开始,什么时候   S = [ a b b c ] 有   λ 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?

测试: S S S 的特征值都是正数当且仅当 a > 0   且   a c − b 2 > 0. \color{blue}a>0\,且\,ac-b^2>0. a>0acb2>0.

S 1 = [ 1 2 2 1 ] S_1=\begin{bmatrix}1&2\\2&1\end{bmatrix} S1=[1221] 不是正定,因为 a c − b 2 = 1 − 4 < 0 ac-b^2=1-4<0 acb2=14<0

S 2 = [ 1 − 2 − 2 6 ] S_2=\begin{bmatrix}\kern 7pt1&-2\\-2&\kern 7pt6\end{bmatrix} S2=[1226] 正定,因为 a = 1 a=1 a=1 a c − b 2 = 6 − 4 > 0 ac-b^2=6-4>0 acb2=64>0

S 3 = [ − 1 2 2 − 6 ] S_3=\begin{bmatrix}-1&\kern 7pt2\\\kern 7pt2&-6\end{bmatrix} S3=[1226] 不是正定(尽管 det ⁡ A = + 2 \det A=+2 detA=+2),因为 a = − 1 a=-1 a=1
S 1 S_1 S1 的特征值是 3 3 3 − 1 -1 1,可以确认 S 1 S_1 S1 不是正定,有正数迹 3 − 1 = 2 3-1=2 31=2,但是负数行列式 ( 3 ) ( − 1 ) = − 3 (3)(-1)=-3 (3)(1)=3 S 3 = − S 2 S_3=-S_2 S3=S2 是负定(negative definite)。 S 2 S_2 S2 有两个正数特征值, S 3 S_3 S3 有两个负数特征值。
证明:当 λ 1 > 0 \lambda_1>0 λ1>0 λ 2 > 0 \lambda_2>0 λ2>0 时,可以通过 2 × 2 2\times2 2×2 的测试。乘积 λ 1 λ 2 \lambda_1\lambda_2 λ1λ2 是行列式所以 a c − b 2 > 0 ac-b^2>0 acb2>0,它们的和 λ 1 + λ 2 \lambda_1+\lambda_2 λ1+λ2 是迹 a + c > 0 a+c>0 a+c>0,则 a a a c c c 都是正数(如果 a a a c c c 不是正数, a c − b 2 ac-b^2 acb2 就不会成立)。这个证明反之亦然,可以证明 a > 0 a>0 a>0 a c > b 2 ac>b^2 ac>b2 能够保证 λ 1 > 0 \lambda_1>0 λ1>0 λ 2 > 0 \lambda_2>0 λ2>0
这个测试使用了 1 × 1 1\times1 1×1 的行列式 a a a 2 × 2 2\times2 2×2 的行列式 a c − b 2 ac-b^2 acb2,当 S S S 3 × 3 3\times3 3×3 时,第三步测试是要求 det ⁡ S > 0 \det S>0 detS>0
下一个测试要求正主元。

测试: S S S 的特征值都是正数当且仅当主元都是正数:
a > 0 且 a c − b 2 a > 0 \color{blue}a>0\kern 5pt且\kern 5pt\frac{ac-b^2}{a}>0 a>0aacb2>0

这两项测试中都要求 a > 0 a>0 a>0,所以对于行列式的测试以及现在的主元测试, a c > b 2 ac>b^2 ac>b2 也是必要的。重点是得到 S S S 的第二主元: [ a b b c ] → 乘数是   b / a 第一主元是   a [ a b 0 c − b a b ] 第二主元是   c − b 2 a = a c − b 2 a \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[a0bcabb]第二主元是cab2=aacb2这个将线性代数的两大部分联系在了一起,对于对称矩阵正数特征值意味着正数主元,反之亦然。每个主元都是左上角行列式的比值,通过主元可以快速判定 λ > 0 \lambda>0 λ>0,这比计算特征值要快很多。
3 × 3   的例子 S = [ 2 1 1 1 2 1 1 1 2 ] 正定 特征值 是 : 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/3 S − I S-I SI 会是半正定(semidefinite)矩阵:特征值是 0 , 0 , 3 0,0,3 0,0,3 S − 2 I S-2I S2I 是不定的,因为它的特征值是 λ = − 1 , − 1 , 2 \lambda=-1,-1,2 λ=1,1,2
下面有一个不同的方法来验证对称矩阵是否是正特征值。

二、能量基定义

由正定矩阵 S x = λ x S\boldsymbol x=\lambda\boldsymbol x Sx=λx,两边同时左乘 x T \boldsymbol x^T xT x T S x = λ x T x \boldsymbol x^TS\boldsymbol x=\lambda\boldsymbol x^T\boldsymbol x xTSx=λxTx,右边是一个正数 λ \lambda λ 乘一个正数 x T x = ∣ ∣ x ∣ ∣ 2 \boldsymbol x^T\boldsymbol x=||\boldsymbol x||^2 xTx=∣∣x2,所以左边 x T S x \boldsymbol x^TS\boldsymbol x xTSx 对任意的特征向量也是正数。
而对于任意的非零向量 x \boldsymbol x x 都可以写成特征向量的组合 x = c 1 x 1 + c 2 x 2 + ⋯ + c n x n \boldsymbol x=c_1\boldsymbol x_1+c_2\boldsymbol x_2+\cdots+c_n\boldsymbol x_n x=c1x1+c2x2++cnxn,那么 x T S x = ( c 1 x 1 + c 2 x 2 + ⋯ + c n x n ) T ( λ 1 c 1 x + λ 2 c 2 x 2 + ⋯ + λ n c n x n ) = c 1 2 λ 1 x 1 T x 1 + c 2 2 λ 2 x 2 T x 2 + ⋯ + c n 2 λ n x n T x n \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_n xTSx=(c1x1+c2x2++cnxn)T(λ1c1x+λ2c2x2++λncnxn)=c12λ1x1Tx1+c22λ2x2Tx2++cn2λnxnTxn,由于是对称矩阵,所以特征向量均正交,即所有交叉项 x i T x j = 0 \boldsymbol x_i^T\boldsymbol x_j=0 xiTxj=0,故可得上式,若所有的 λ > 0 \lambda>0 λ>0,则对于任意的非零向量 x \boldsymbol x x 都有 x T S x > 0 \boldsymbol x^TS\boldsymbol x>0 xTSx>0.
重点:新的概念是 x T S x \boldsymbol x^TS\boldsymbol x xTSx 对于所有的非零向量 x \boldsymbol x x 都是正数,而不仅仅是特征向量。很多应用中 x T S x \boldsymbol x^TS\boldsymbol x xTSx (或 1 2 x T S x \displaystyle\frac{1}{2}\boldsymbol x^TS\boldsymbol x 21xTSx)是系统的能量(energy)。正能量得到要求给出了正定矩阵的另一个定义,这个能量基(energy-based)的定义是基础的一个。
特征值和主元是两种等效的检验 x T S x > 0 \boldsymbol x^TS\boldsymbol x>0 xTSx>0 的方法。

定义: 如果对于任意的非零向量 x \boldsymbol x x 都有 x T S x > 0 \boldsymbol x^TS\boldsymbol x>0 xTSx>0,则 S S S 正定:
2 × 2 x T S x = [ x y ] [ a b b c ] [ x y ] = a x 2 + 2 b x y + c y 2 > 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 , c a,b,b,c a,b,b,c 得到 x T S x \boldsymbol x^TS\boldsymbol x xTSx 的四个部分,从 a a a c c c 得到了纯平方项 a x 2 ax^2 ax2 c y 2 cy^2 cy2,从非对角线处的 b b b b b b 得到相同的两个交叉项 b x y bxy bxy b y x byx byx,将这四项加起来得到 x T S x \boldsymbol x^TS\boldsymbol x xTSx。这个能量基的定义可以得到一个基础的事实: 如果   S   和   T   对称正定,那么   S + T   也是。 \color{blue}如果\,S\,和 \,T\,对称正定,那么\,S+T\,也是。 如果ST对称正定,那么S+T也是。原因: x T ( S + T ) x \boldsymbol x^T(S+T)\boldsymbol x xT(S+T)x 就是 x T S x + x T T x \boldsymbol x^TS\boldsymbol x+\boldsymbol x^TT\boldsymbol x xTSx+xTTx,若 x ≠ 0 \boldsymbol x\neq\boldsymbol 0 x=0,则这两项都是正数,所以 S + T S+T S+T 也正定。当两个矩阵相加时,主元和特征值并不容易追踪,但是能量只需要简单的相加。
x T S x \boldsymbol x^TS\boldsymbol x xTSx 和我们其它确认正定矩阵的方法相联系。从任意矩阵 A A A 开始,也可以是矩形矩阵,我们知道 S = A T A S=A^TA S=ATA 是一个对称的方阵,不仅如此,如果 A A A 的列线性无关,则 S S S 正定: 测试:如果   A   的列线性无关,则   S = A T A   正定。 \pmb{测试:如果\,A\,的列线性无关,则\,S=A^TA\,正定。} 测试:如果A的列线性无关,则S=ATA正定。这里使用特征值和主元判断并不容易,但是数字 x T S x \boldsymbol x^TS\boldsymbol x xTSx x T A T A x \boldsymbol x^TA^TA\boldsymbol x xTATAx 相同, x T A T A x \boldsymbol x^TA^TA\boldsymbol x xTATAx 就是 ( A x ) T ( A x ) = ∣ ∣ A x ∣ ∣ 2 (A\boldsymbol x)^T(A\boldsymbol x)=||A\boldsymbol x||^2 (Ax)T(Ax)=∣∣Ax2 —— 这是又一个使用括号的重要证明!由于 A A A 的列是无关列,所以当 x ≠ 0 \boldsymbol x\neq\boldsymbol 0 x=0 时,向量 A x A\boldsymbol x Ax 也不为零,则 x T S x \boldsymbol x^TS\boldsymbol x xTSx 是一个正数 ∣ ∣ A x ∣ ∣ 2 ||A\boldsymbol x||^2 ∣∣Ax2,所以这个矩阵 S S S 正定。
到目前为止,有五个等效的判断正定矩阵的判据。这个关键的概念联系了线性代数的整个主题:主元、行列式、特征值和最小二乘(从 A T A A^TA ATA)。

当一个对称矩阵 S S S 有下面五个中的任意一个性质时,它就有下面所有的性质:
1、 S S S 的所有 n n n 个主元是正数。
2、所有的 n n n 个左上行列式(主子式)都是正数。
3、 S S S 的所有 n n n 个特征值都是正数。
4、除 x = 0 \boldsymbol x=\boldsymbol 0 x=0 外, x T S x \boldsymbol x^T S\boldsymbol x xTSx 对于任意的向量 x \boldsymbol x x 都是正数。这是能量基的定义。
5、 S S S 等于 A T A A^TA ATA,其中 A A A无关列

“左上行列式(upper left determinants)” 即主子式是 1 × 1 1\times1 1×1 2 × 2 2\times2 2×2 ⋯ \cdots 一直到 n × n n\times n n×n 的行列式,最后一个就是整个矩阵 S S S 的行列式。这个定理将线性代数的所有内容都联系结合在了一起。

例1】测试下面的对称矩阵 S S S T T T 的正定性: S = [ 2 − 1 0 − 1 2 − 1 0 − 1 2 ] 和 T = [ 2 − 1 b − 1 2 − 1 b − 1 2 ] 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= 210121012 T= 21b121b12 解: S S S 的主元是 2 2 2 3 2 \displaystyle\frac{3}{2} 23 4 3 \displaystyle\frac{4}{3} 34,都是正数。它的左上行列式是 2 2 2 3 3 3 4 4 4,都是正数。 S S S 的特征值是 2 − 2 2-\sqrt2 22 2 2 2 2 + 2 2+\sqrt2 2+2 ,都是正数。这些就完成了性质 1 1 1 2 2 2 3 3 3 的测试,每一个测试都可以决定它的正定。
对于性质 5 5 5,有三个候选矩阵 A 1 A_1 A1 A 2 A_2 A2 A 3 A_3 A3,使得 S = A T A S=A^TA S=ATA,都可以证明 S S S 的正定性。 A 1 A_1 A1 是一个 4 × 3 4\times3 4×3 的一阶差分矩阵,得到 S S S 中的 − 1 -1 1 2 2 2 − 1 -1 1: S = A 1 T A 1 [ 2 − 1 0 − 1 2 − 1 0 − 1 2 ] = [ 1 − 1 0 0 0 1 − 1 0 0 0 1 − 1 ] [ 1 0 0 − 1 1 0 0 − 1 1 0 0 − 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=A1TA1 210121012 = 100110011001 110001100011 A 1 A_1 A1 的三个列是无关的,因此 S S S 正定。
A 2 A_2 A2 来自于 S = L D L T S=LDL^T S=LDLT S = L U S=LU S=LU 的对称版本),消元法可以得到 D D D 中的主元 2 , 3 2 , 4 3 2,\displaystyle\frac{3}{2},\frac{4}{3} 2,23,34 L L L 中的乘数 − 1 2 , 0 , − 2 3 -\displaystyle\frac{1}{2},0,-\frac{2}{3} 21,0,32,令 A 2 = ( L D ) T \pmb{A_2=(L\sqrt D)^T} A2=(LD )T L D L T = [ 1 − 1 2 1 0 − 2 3 1 ] [ 2 3 2 4 3 ] [ 1 − 1 2 0 1 − 2 3 1 ] = ( L D ) ( L D ) T = A 2 T A 2 A 2   是   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= 12101321 22334 12110321 =(LD )(LD )T=A2TA2A2SCholesky因子这个 A A A 的三角形矩阵中出现了平方根,没有那么漂亮。这个是 S S S 的 “Cholesky factor”,MATLAB 中的指令是 A = chol ( S ) A=\textrm{chol}(S) A=chol(S)。在应用中,矩形 A 1 A_1 A1 是我们如何建立的 S S S,而 Cholesky A 2 A_2 A2 是如何分解它。
特征值得到对称的选择 A 3 = Q Λ Q T \pmb{A_3=Q\sqrt \Lambda Q^T} A3=QΛ QT,其中 A 3 T A 3 = Q Λ Q T = S A_3^TA_3=Q\Lambda Q^T=S A3TA3=QΛQT=S,所有的测试都证明了 − 1 , 2 , − 1 -1,2,-1 1,2,1 矩阵 S S S 是正定的。
要看能量 x T S x \boldsymbol x^TS\boldsymbol x xTSx 是不是正的,我们将它写成平方和的形式。这三个选择 A 1 , A 2 , A 3 A_1,A_2,A_3 A1,A2,A3 有三种不同的分离 x T S x \boldsymbol x^TS\boldsymbol x xTSx 的方式: x T S x = 2 x 1 2 − 2 x 1 x 2 + 2 x 2 2 − 2 x 2 x 3 + 2 x 3 2 改写成平方 ∣ ∣ A 1 x ∣ ∣ 2 = x 1 2 + ( x 2 − x 1 ) 2 + ( x 3 − x 2 ) 2 + x 3 2 使用差分的   A 1 ∣ ∣ A 2 x ∣ ∣ 2 = 2 ( x 1 − 1 2 x 2 ) 2 + 3 2 ( x 2 − 2 3 x 3 ) 2 + 4 3 x 3 2 使用   S = L D L T ∣ ∣ A 3 x ∣ ∣ 2 = λ 1 ( q 1 T x ) 2 + λ 2 ( q 2 T x ) 2 + λ 3 ( q 3 T x ) 2 使用   S = Q Λ Q T \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=2x122x1x2+2x222x2x3+2x32∣∣A1x2=x12+(x2x1)2+(x3x2)2+x32∣∣A2x2=2(x121x2)2+23(x232x3)2+34x32∣∣A3x2=λ1(q1Tx)2+λ2(q2Tx)2+λ3(q3Tx)2改写成平方使用差分的A1使用S=LDLT使用S=QΛQT下面看矩阵 T T T ( 1 , 3 ) (1,3) (1,3) ( 3 , 1 ) (3,1) (3,1) 元素从 0 0 0 变成了 b b b,这个 b b b 一定不能太大!行列式的测试是最简单的, 1 × 1 1\times1 1×1 行列式是 2 2 2 2 × 2 2\times2 2×2 的行列式还是 3 3 3 3 × 3 3\times3 3×3 的行列式包含 b b b 对   T   进行测试 det ⁡ T = 4 + 2 b − 2 b 2 = ( 1 + b ) ( 4 − 2 b ) 一定要是正数 \pmb{对\,T\,进行测试}\kern 10pt\det T=4+2b-2b^2=(1+b)(4-2b)\kern 10pt一定要是正数 T进行测试detT=4+2b2b2=(1+b)(42b)一定要是正数 b = − 1 b=-1 b=1 b = 2 b=2 b=2 时得到 det ⁡ T = 0 \det T=0 detT=0,当 − 1 < b < 2 -1<b<2 1<b<2 时矩阵 T T T 正定。矩阵 S S S 角落中的元素 b = 0 b=0 b=0,它在 − 1 -1 1 2 2 2 之间,所以是安全的。

三、半正定矩阵

很多时候我们会在正定的边缘,此时行列式为零,最小的特征值是零,这个特征向量的能量是 x T S x = x T 0 x = 0 \boldsymbol x^TS\boldsymbol x=\boldsymbol x^T0\boldsymbol x=0 xTSx=xT0x=0。这些边缘情况的矩阵称为半正定(positive semidefinite)。下面是两个例子(不可逆): S = [ 1 2 2 4 ] 和 T = [ 2 − 1 − 1 − 1 2 − 1 − 1 − 1 2 ] 都是半正定 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= 211121112 都是半正定 S S S 的特征值是 5 5 5 0 0 0,它的左上行列式分别是 1 1 1 0 0 0,秩只有 1 1 1。这个矩阵 S S S 可分解成 A T A A^TA ATA,但是 A A A 是有相关列 A   有相关列 半正定的   S [ 1 2 2 4 ] = [ 1 0 2 0 ] [ 1 2 0 0 ] = A T A \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^TA A有相关列半正定的S[1224]=[1200][1020]=ATA如果 4 4 4 再稍微变大一点,矩阵 S S S 就变成正定的了。循环 T T T 的行列式也是零(例 1 1 1 中当 b = − 1 b=-1 b=1 时), T T T 是奇异的,特征向量 x = ( 1 , 1 , 1 ) \boldsymbol x=(1,1,1) x=(1,1,1) T x = 0 T\boldsymbol x=\boldsymbol 0 Tx=0 且能量 x T T x = 0 \boldsymbol x^TT\boldsymbol x=0 xTTx=0。其它方向的向量 x \boldsymbol x x 都得到正能量。这个 T T T 可以写成很多种 A T A A^TA ATA 的形式,但是 A A A 一定有相关列,因为 ( 1 , 1 , 1 ) (1,1,1) (1,1,1) 在它的零空间: 二阶差分   T 来自于一阶差分   A 循环   T   来自于循环   A [ 2 − 1 − 1 − 1 2 − 1 − 1 − 1 2 ] = [ 1 − 1 0 0 1 − 1 − 1 0 1 ] [ 1 0 − 1 − 1 1 0 0 − 1 1 ] \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来自于循环A 211121112 = 101110011 110011101 半正定矩阵的所有 λ ≥ 0 \lambda\geq0 λ0 且所有的 x T S x ≥ 0 \boldsymbol x^TS\boldsymbol x\geq0 xTSx0,这些弱不等式( ≥ \pmb{\geq} 而不是 > \pmb{>} >)包括正定 S S S 和处于边缘的奇异矩阵。

四、椭圆 a x 2 + 2 b x y + c y 2 = 1 ax^2+2bxy+cy^2=1 ax2+2bxy+cy2=1

考虑一下如 Figure 6.7a 所示的倾斜的椭圆(ellipse) x T S x = 1 \boldsymbol x^TS\boldsymbol x=1 xTSx=1,它的中心是 ( 0 , 0 ) (0,0) (0,0),将它旋转到与坐标轴对齐( X X X Y Y Y 轴),就是 Figrue 6.7(b)。这两张图展示了 S = Q Λ Q − 1 = Q Λ Q T S=Q\Lambda Q^{-1}=Q\Lambda Q^T S=QΛQ1=QΛQT 这种分解背后的几何意义:

  1. 倾斜的椭圆对应于 S S S,它的方程是 x T S x = 1 \boldsymbol x^TS\boldsymbol x=1 xTSx=1
  2. 与坐标轴对齐的椭圆对应于 Λ \Lambda Λ,它的方程是 X T Λ X = 1 X^T\Lambda X=1 XTΛX=1
  3. 使得椭圆旋转到与坐标轴对齐的旋转矩阵是特征向量矩阵 Q Q Q

在这里插入图片描述
例2】求出倾斜椭圆 5 x 2 + 8 x y + 5 y 2 = 1 5x^2+8xy+5y^2=1 5x2+8xy+5y2=1 的轴。
解: 从匹配这个方程的正定矩阵开始: 方程是 [ x y ] [ 5 4 4 5 ] [ x y ] = 1 矩阵是 S = [ 5 4 4 5 ] 方程是\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]特征向量是 [ 1 1 ] \begin{bmatrix}1\\1\end{bmatrix} [11] [ 1 − 1 ] \begin{bmatrix}\kern 7pt1\\-1\end{bmatrix} [11],除以 2 \sqrt2 2 得到单位向量,则 S = Q Λ Q T S=Q\Lambda Q^T S=QΛQT 特征向量在   Q   中 特征值是   9   和   1 [ 5 4 4 5 ] = 1 2 [ 1 1 1 − 1 ] [ 9 0 0 1 ] 1 2 [ 1 1 1 − 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特征值是91[5445]=2 1[1111][9001]2 1[1111]现在左乘 [ x y ] \begin{bmatrix}x&y\end{bmatrix} [xy] 再右乘 [ x y ] \begin{bmatrix}x\\y\end{bmatrix} [xy] 得到 x T S x = ( x T Q ) Λ ( Q T x ) \boldsymbol x^TS\boldsymbol x=(\boldsymbol x^TQ)\Lambda(Q^T\boldsymbol x) xTSx=(xTQ)Λ(QTx) x T S x = 平方和 5 x 2 + 8 x y + 5 y 2 = 9 ( x + y 2 ) 2 + 1 ( x − y 2 ) ( 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(2 x+y)2+1(2 xy)(6.5.2)系数不是来自于 D D D 的主元 5 5 5 9 / 5 9/5 9/5,而是来自于 Λ \Lambda Λ 的特征值 9 9 9 1 1 1。平方里面是特征向量 q 1 = 1 2 [ 1 1 ] \boldsymbol q_1=\displaystyle\frac{1}{\sqrt2}\begin{bmatrix}1\\1\end{bmatrix} q1=2 1[11] q 2 = 1 2 [ 1 − 1 ] \boldsymbol q_2=\displaystyle\frac{1}{\sqrt2}\begin{bmatrix}\kern 7pt1\\-1\end{bmatrix} q2=2 1[11]
倾斜椭圆的轴指向特征向量。这个解释了为什么 S = Q Λ Q T S=Q\Lambda Q^T S=QΛQT 称为 “主轴定理”,因为它显示了轴。不仅有轴的方向(来自于特征向量),还有轴的长度(来自于特征值)。要完全看到这些,我们用大写字母作为对齐坐标轴后的椭圆的新坐标: Line   up    对齐 x + y 2 = X 和 x − y 2 = Y 和 9 X 2 + Y 2 = 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对齐2 x+y=X2 xy=Y9X2+Y2=1 X 2 X^2 X2 的最大值是 1 / 9 1/9 1/9,短轴的端点是 X = 1 / 3 X=1/3 X=1/3 Y = 0 Y=0 Y=0
注意:大的特征值 λ 1 = 9 \lambda_1=9 λ1=9 得到的是短轴,半长(half-length)是 1 / λ 1 = 1 / 3 1/\sqrt{\lambda_1}=1/3 1/λ1 =1/3;小的特征值 λ 2 = 1 \lambda_2=1 λ2=1 得到长轴,半长是 1 / λ 2 = 1 1/\sqrt{\lambda_2}=1 1/λ2 =1
x y xy xy 系统中,轴是沿着 S S S 的特征向量;在 X Y XY XY 系统中,轴是沿着 Λ \Lambda Λ 的特征向量 —— 即坐标轴。这些全部都来自于 S = Q Λ Q T S=Q\Lambda Q^T S=QΛQT

当所有的 λ i > 0 \lambda_i>0 λi>0 时, S = Q Λ Q T S=Q\Lambda Q^T S=QΛQT 正定, x T S x = 1 \boldsymbol x^TS\boldsymbol x=1 xTSx=1 的图形是一个椭圆: 椭圆 [ x y ] Q Λ Q T [ x y ] = [ X Y ] Λ [ X Y ] = λ 1 X 2 + λ 2 Y 2 = 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)轴指向 S S S 的特征向量,半长是 1 / λ 1 1/\sqrt{\lambda_1} 1/λ1 1 / λ 2 1/\sqrt{\lambda_2} 1/λ2

S = I S=I S=I 得到圆 x 2 + y 2 = 1 x^2+y^2=1 x2+y2=1,如果一个特征值是负的(交换 S S S 中的 4 ′ s 4's 4s 5 ′ s 5's 5s),椭圆将变成一个双曲线(hyperbola),平方和变成了平方的差: 9 X 2 − Y 2 = 1 9X^2-Y^2=1 9X2Y2=1。若是一个负定矩阵如 S = − I S=-I S=I,它两个特征值 λ \lambda λ 都是负数, − x 2 − y 2 = 1 -x^2-y^2=1 x2y2=1 的图形就没有一个点。
如果 S S S n × n n\times n n×n 的矩阵, x T S x = 1 \boldsymbol x^TS\boldsymbol x=1 xTSx=1 R n \pmb{\textrm R}^n Rn 中的一个 “椭球体(ellipsoid)”,它轴的方向是 S S S 的特征向量。

五、重要应用:最小值判断

在点 ( 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),我们通过微积分来判断是否存在极小值: d f / d x = 0 df/dx=0 df/dx=0 d 2 f / d x 2 > 0 d^2f/dx^2>0 d2f/dx2>0。对于 F ( x , y ) F(x,y) F(x,y), 它的两个变量得到一个对称矩阵 S S S,它包含了四个二阶导数。 d 2 f / d x 2 \pmb{d^2f/dx^2} d2f/dx2 为正数的要求变成了矩阵 S \pmb S S 正定:在这里插入图片描述如果 ∂ F / ∂ x = ∂ F / ∂ y = 0 \partial F/\partial x=\partial F/\partial y=0 F/x=F/y=0 S S S 正定时, F ( x , y ) F(x,y) F(x,y) 存在极小值。
原因: S S S 显示了 a x 2 + 2 b x y + c y 2 ax^2+2bxy+cy^2 ax2+2bxy+cy2 ( x , y ) = ( 0 , 0 ) (x,y)=(0,0) (x,y)=(0,0) 附近全部的重要项, F F F 的二阶导数是 2 a , 2 b , 2 b , 2 c 2a,2b,2b,2c 2a,2b,2b,2c。对于 F ( x , y , z ) F(x,y,z) F(x,y,z) 矩阵 S S S 3 × 3 3\times3 3×3 的。

六、主要内容总结

  1. 正定矩阵的特征值和主元都是正数。
  2. 通过左上行列式(主子式)可以快速判断正定: a > 0 a>0 a>0 a c − b 2 > 0 ac-b^2>0 acb2>0
  3. 能量 x T S x \boldsymbol x^TS\boldsymbol x xTSx 的图是一个从 x = 0 \boldsymbol x=\boldsymbol 0 x=0 处朝上的 “碗”: x T S x = a x 2 + 2 b x y + c y 2 除了 ( 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),均为正数
  4. 如果 A A A 是无关列,则 S = A T A S=A^TA S=ATA 正定。
  5. 椭球体 x T S x = 1 \boldsymbol x^TS\boldsymbol x=1 xTSx=1 的轴沿着 S S S 的特征向量,半长是 1 / λ 1/\sqrt \lambda 1/λ
  6. 如果 ∂ F ∂ x = ∂ F ∂ y = 0 \displaystyle\frac{\partial F}{\partial x}=\frac{\partial F}{\partial y}=0 xF=yF=0 且二阶导数矩阵正定,则 F ( x , y ) F(x,y) F(x,y) 有极小值。

七、例题

例3】对称矩阵的分解: S = L D L T S=LDL^T S=LDLT 来自于主元和乘数; S = Q Λ Q T S=Q\Lambda Q^T S=QΛQT 来自于特征值和特征向量。测试下面的矩阵的正定性:pascal(6)、ones(6)、hilb(6) 和 rand(6)+rand(6)'。
解: pascal(6) 正定,因为它所有的主元都是 1 1 1
ones(6) 半正定,因为它的特征值是 0 , 0 , 0 , 0 , 0 , 6 0,0,0,0,0,6 0,0,0,0,0,6
H = hilb(6) 正定,尽管 eig(H) 得到的特征值非常接近于零。
希尔伯特矩阵 Hilbert matrix x T H x = ∫ 0 1 ( x 1 + x 2 s + ⋯ + x 6 s 5 ) 2 d s > 0 ,   H i j = 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+j1)
rand(6)+rand(6)’ 也可能正定,也可能不是正定。使用 MATLAB 测试 20000 20000 20000 次中正定矩阵的个数。

n = 20000;
p = 0;
for k=1:n
    A = rand(6);
    p = p + all(eig(A+A')>0);   % 正定矩阵的个数
end
disp(p);	% 输出 p 的值

可能每次结果不同,本次输出结果是 7 7 7

在这里插入图片描述
例4】什么时候对称的分块矩阵 M = [ A B B T C ] M=\begin{bmatrix}A&B\\B^T&C\end{bmatrix} M=[ABTBC] 正定
解: M M M 第二行减去第一行左乘 B T A − 1 B^TA^{-1} BTA1,得到一个零块,角落里得到舒尔补 S = C − B T A − 1 B S=C-B^TA^{-1}B S=CBTA1B [ I 0 − B T A − 1 I ] [ A B B T C ] = [ A B 0 C − B T A − 1 B ] = [ A B 0 S ] ( 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) [IBTA10I][ABTBC]=[A0BCBTA1B]=[A0BS](6.5.4)这两块 A A A S S S 一定要正定。它们的主元就是 M M M 的主元。

例5】求 − 1 , 2 , − 1 -1,2,-1 1,2,1 三对角 n × n n\times n n×n 矩阵 S S S 的特征值。
解: 最好的方法是猜 λ \lambda λ x \boldsymbol x x,然后检验 S x = λ x S\boldsymbol x=\lambda\boldsymbol x Sx=λx。虽说大部分矩阵都无法猜测,但是特殊情况也占了数学的一大部分(纯数学与应用)。
关键信息隐藏在了一个微分方程中,二阶差分矩阵 S S S 就像二阶导数,这些特征值会更容易得到:

特征值   λ 1 , λ 2 , ⋯ 特征函数   y 1 , y 2 , ⋯ d 2 y d x 2 = λ y 且 y ( 0 ) = 0 y ( 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=λyy(0)=0y(1)=0(6.5.5)

尝试 y = sin ⁡ c x y=\sin cx y=sincx,它的二阶导数是 y ′ ′ = − c 2 sin ⁡ c x y''=-c^2\sin cx y′′=c2sincx,假设的 y = sin ⁡ c x y=\sin cx y=sincx 满足端点条件 y ( 0 ) = 0 = y ( 1 ) y(0)=0=y(1) y(0)=0=y(1),所以式(6.5.5)的特征值是 λ = − c 2 \lambda=-c^2 λ=c2
sin ⁡ 0 = 0 \sin0=0 sin0=0 满足端点条件(这里余弦就被排除了),另一个端点是 x = 1 x=1 x=1 y ( 1 ) = sin ⁡ c = 0 y(1)=\sin c=0 y(1)=sinc=0,则数字 c c c 一定时 k π kπ ,它是 π π π 的倍数,则 λ = − k 2 π 2 \lambda=-k^2π^2 λ=k2π2:$$ 特征值   λ = − k 2 π 2 特征函数   y = sin ⁡ k π x d 2 d x 2 sin ⁡ k π x = − k 2 π 2 sin ⁡ k π 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=sinxdx2d2sinx=k2π2sinx(6.5.6) 现在回到矩阵 S S S,猜它的特征向量。 sin ⁡ k x \sin kx sinkx n n n 个点 x = h , 2 h , ⋯   , n h x=h,2h,\cdots,nh x=h,2h,,nh 0 0 0 1 1 1 之间相等的空间点,空间距离 Δ x \Delta x Δx 1 / ( n + 1 ) 1/(n+1) 1/(n+1),所以第 n + 1 n+1 n+1 个点有 ( n + 1 ) h = 1 (n+1)h=1 (n+1)h=1 S S S 乘正弦向量 x \boldsymbol x x S   的特征值是正数 S x = λ k x = ( 2 − 2 cos ⁡ k π h ) x S   的特征向量是正弦向量 x = ( sin ⁡ k π h , ⋯   , sin ⁡ n k π 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=(22coskπh)xx=(sinkπh,,sinnkπh)(6.5.7)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值