一、正定矩阵
这一节关注的是特征值都是正数的对称矩阵。如果对称使得矩阵很重要,那么这个额外的性质(所有的
λ
>
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>0且ac−b2>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 ac−b2=1−4<0
S 2 = [ 1 − 2 − 2 6 ] S_2=\begin{bmatrix}\kern 7pt1&-2\\-2&\kern 7pt6\end{bmatrix} S2=[1−2−26] 正定,因为 a = 1 a=1 a=1 且 a c − b 2 = 6 − 4 > 0 ac-b^2=6-4>0 ac−b2=6−4>0
S
3
=
[
−
1
2
2
−
6
]
S_3=\begin{bmatrix}-1&\kern 7pt2\\\kern 7pt2&-6\end{bmatrix}
S3=[−122−6] 不是正定(尽管
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
3−1=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
ac−b2>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
ac−b2 就不会成立)。这个证明反之亦然,可以证明
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
ac−b2,当
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>0且aac−b2>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[a0bc−abb]第二主元是c−ab2=aac−b2这个将线性代数的两大部分联系在了一起,对于对称矩阵正数特征值意味着正数主元,反之亦然。每个主元都是左上角行列式的比值,通过主元可以快速判定
λ
>
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
S−I 会是半正定(semidefinite)矩阵:特征值是
0
,
0
,
3
0,0,3
0,0,3;
S
−
2
I
S-2I
S−2I 是不定的,因为它的特征值是
λ
=
−
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=∣∣x∣∣2,所以左边
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\,也是。
如果S和T对称正定,那么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)=∣∣Ax∣∣2 —— 这是又一个使用括号的重要证明!由于
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
∣∣Ax∣∣2,所以这个矩阵
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=
2−10−12−10−12
和T=
2−1b−12−1b−12
解:
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
2−2、
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
2−10−12−10−12
=
100−1100−1100−1
1−10001−10001−1
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=
1−2101−321
22334
1−2110−321
=(LD)(LD)T=A2TA2A2是S的Cholesky因子这个
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=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下面看矩阵
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+2b−2b2=(1+b)(4−2b)一定要是正数在
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= 2−1−1−12−1−1−12 都是半正定 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 2−1−1−12−1−1−12 = 10−1−1100−11 1−1001−1−101 半正定矩阵的所有 λ ≥ 0 \lambda\geq0 λ≥0 且所有的 x T S x ≥ 0 \boldsymbol x^TS\boldsymbol x\geq0 xTSx≥0,这些弱不等式( ≥ \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ΛQ−1=QΛQT 这种分解背后的几何意义:
- 倾斜的椭圆对应于 S S S,它的方程是 x T S x = 1 \boldsymbol x^TS\boldsymbol x=1 xTSx=1。
- 与坐标轴对齐的椭圆对应于 Λ \Lambda Λ,它的方程是 X T Λ X = 1 X^T\Lambda X=1 XTΛX=1。
- 使得椭圆旋转到与坐标轴对齐的旋转矩阵是特征向量矩阵 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}
[1−1],除以
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中特征值是9和1[5445]=21[111−1][9001]21[111−1]现在左乘
[
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(2x+y)2+1(2x−y)(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=21[11] 和
q
2
=
1
2
[
1
−
1
]
\boldsymbol q_2=\displaystyle\frac{1}{\sqrt2}\begin{bmatrix}\kern 7pt1\\-1\end{bmatrix}
q2=21[1−1]。
倾斜椭圆的轴指向特征向量。这个解释了为什么
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对齐2x+y=X和2x−y=Y和9X2+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
4′s 和
5
′
s
5's
5′s),椭圆将变成一个双曲线(hyperbola),平方和变成了平方的差:
9
X
2
−
Y
2
=
1
9X^2-Y^2=1
9X2−Y2=1。若是一个负定矩阵如
S
=
−
I
S=-I
S=−I,它两个特征值
λ
\lambda
λ 都是负数,
−
x
2
−
y
2
=
1
-x^2-y^2=1
−x2−y2=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 的。
六、主要内容总结
- 正定矩阵的特征值和主元都是正数。
- 通过左上行列式(主子式)可以快速判断正定: a > 0 a>0 a>0 且 a c − b 2 > 0 ac-b^2>0 ac−b2>0。
- 能量 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),均为正数
- 如果 A A A 是无关列,则 S = A T A S=A^TA S=ATA 正定。
- 椭球体 x T S x = 1 \boldsymbol x^TS\boldsymbol x=1 xTSx=1 的轴沿着 S S S 的特征向量,半长是 1 / λ 1/\sqrt \lambda 1/λ。
- 如果 ∂ 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
=
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+j−1)
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}
BTA−1,得到一个零块,角落里得到舒尔补
S
=
C
−
B
T
A
−
1
B
S=C-B^TA^{-1}B
S=C−BTA−1B:
[
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)
[I−BTA−10I][ABTBC]=[A0BC−BTA−1B]=[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=λy且y(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π,它是
π
π
π 的倍数,则
λ
=
−
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=sinkπxdx2d2sinkπx=−k2π2sinkπx(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=(2−2coskπh)xx=(sinkπh,⋯,sinnkπh)(6.5.7)