文章目录
二十六、对称矩阵及正定性
1.对称矩阵
前面我们学习了矩阵的特征值与特征向量,也了解了一些特殊的矩阵及其特征值、特征向量,特殊矩阵的特殊性应该会反映在其特征值、特征向量中。如马尔科夫矩阵,有一特征值为 1 1 1,本讲介绍(实)对称矩阵。
先提前介绍两个对称矩阵的特性:
- R ( A T A ) = R ( A ) R(A^TA)=R(A) R(ATA)=R(A)
- 特征值为实数;(对比第二十一讲介绍的旋转矩阵,其特征值为纯虚数。)
- 特征向量相互正交。(当特征值重复时,特征向量也可以从子空间中选出相互正交正交的向量。)
典型的状况是,特征值不重复,特征向量相互正交。
- 那么在通常(可对角化)情况下,一个矩阵可以化为: A = S Λ S − 1 A=S\varLambda S^{-1} A=SΛS−1;
- 在矩阵对称的情况下,通过性质2可知,由特征向量组成的矩阵 S S S中的列向量是相互正交的,此时如果我们把特征向量的长度统一化为 1 1 1,就可以得到一组标准正交的特征向量。则对于对称矩阵有 A = Q Λ Q − 1 A=Q\varLambda Q^{-1} A=QΛQ−1,而对于标准正交矩阵,有 Q − 1 = Q T Q^{-1}=Q^T Q−1=QT,所以对称矩阵可以写为 A = Q Λ Q T (1) A=Q\varLambda Q^T\tag{1} A=QΛQT(1)
观察它,我们发现这个分解本身就代表着对称, ( Q Λ Q T ) T = ( Q T ) T Λ T Q T = Q Λ Q T \left(Q\varLambda Q^T\right)^T=\left(Q^T\right)^T\varLambda^TQ^T=Q\varLambda Q^T (QΛQT)T=(QT)TΛTQT=QΛQT。此式在数学上叫做谱定理(spectral theorem),谱就是指矩阵特征值的集合。(该名称来自光谱,指一些纯事物的集合,就像将特征值分解成为特征值与特征向量。)在力学上称之为主轴定理(principle axis theorem),从几何上看,它意味着如果给定某种材料,在合适的轴上来看,它就变成对角化的,方向就不会重复。
-
现在我们来证明性质1。对于矩阵 A x = λ x ‾ \underline{Ax=\lambda x} Ax=λx,对于其共轭部分总有 A ˉ x ˉ = λ ˉ x ˉ \bar A\bar x=\bar\lambda \bar x Aˉxˉ=λˉxˉ,根据前提条件我们只讨论实矩阵,则有 A x ˉ = λ ˉ x ˉ A\bar x=\bar\lambda \bar x Axˉ=λˉxˉ,将等式两边取转置有 x ˉ T A = x ˉ T λ ˉ ‾ \overline{\bar{x}^TA=\bar{x}^T\bar\lambda} xˉTA=xˉTλˉ。将“下划线”式两边左乘 x ˉ T \bar{x}^T xˉT有 x ˉ T A x = x ˉ T λ x \bar{x}^TAx=\bar{x}^T\lambda x xˉTAx=xˉTλx,“上划线”式两边右乘 x x x有 x ˉ T A x = x ˉ T λ ˉ x \bar{x}^TAx=\bar{x}^T\bar\lambda x xˉTAx=xˉTλˉx,观察发现这两个式子左边是一样的,所以 x ˉ T λ x = x ˉ T λ ˉ x \bar{x}^T\lambda x=\bar{x}^T\bar\lambda x xˉTλx=xˉTλˉx,则有 λ = λ ˉ \lambda=\bar{\lambda} λ=λˉ(这里有个条件, x ˉ T x ≠ 0 \bar{x}^Tx\neq 0 xˉTx=0),证毕。
观察这个前提条件, x ˉ T x = [ x ˉ 1 x ˉ 2 ⋯ x ˉ n ] [ x 1 x 2 ⋮ x n ] = x ˉ 1 x 1 + x ˉ 2 x 2 + ⋯ + x ˉ n x n \bar{x}^Tx=\begin{bmatrix}\bar x_1&\bar x_2&\cdots&\bar x_n\end{bmatrix}\begin{bmatrix}x_1\\x_2\\\vdots\\x_n\end{bmatrix}=\bar x_1x_1+\bar x_2x_2+\cdots+\bar x_nx_n xˉTx=[xˉ1xˉ2⋯xˉn]⎣⎢⎢⎢⎡x1x2⋮xn⎦⎥⎥⎥⎤=xˉ1x1+xˉ2x2+⋯+xˉnxn,设 x 1 = a + i b , x ˉ 1 = a − i b x_1=a+ib, \bar x_1=a-ib x1=a+ib,xˉ1=a−ib则 x ˉ 1 x 1 = a 2 + b 2 \bar x_1x_1=a^2+b^2 xˉ1x1=a2+b2,所以有 x ˉ T x > 0 \bar{x}^Tx>0 xˉTx>0。而 x ˉ T x \bar{x}^Tx xˉTx就是 x x x长度的平方。
拓展这个性质,当 A A A为复矩阵,根据上面的推导,则矩阵必须满足 A = A ˉ T A=\bar{A}^T A=AˉT时,才有性质1、性质2成立(教授称具有这种特征值为实数、特征向量相互正交的矩阵为“好矩阵”)。
继续研究 A = Q Λ Q T = [ q 1 q 2 ⋯ q n ] [ λ 1 ⋯ λ 2 ⋯ ⋮ ⋮ ⋱ ⋮ ⋯ λ n ] [ q 1 T q 1 T ⋮ q 1 T ] = λ 1 q 1 q 1 T + λ 2 q 2 q 2 T + ⋯ + λ n q n q n T A=Q\varLambda Q^T=\Bigg[q_1\ q_2\ \cdots\ q_n\Bigg]\begin{bmatrix}\lambda_1& &\cdots& \\&\lambda_2&\cdots&\\\vdots&\vdots&\ddots&\vdots\\& &\cdots&\lambda_n\end{bmatrix}\begin{bmatrix}\quad q_1^T\quad\\\quad q_1^T\quad\\\quad \vdots \quad\\\quad q_1^T\quad\end{bmatrix}=\lambda_1q_1q_1^T+\lambda_2q_2q_2^T+\cdots+\lambda_nq_nq_n^T A=QΛQT=[q1 q2 ⋯ qn]⎣⎢⎢⎢⎡λ1⋮λ2⋮⋯⋯⋱⋯⋮λn⎦⎥⎥⎥⎤⎣⎢⎢⎢⎡q1Tq1T⋮q1T⎦⎥⎥⎥⎤=λ1q1q1T+λ2q2q2T+⋯+λnqnqnT,注意这个展开式中的 q q T qq^T qqT, q q q是单位列向量所以 q T q = 1 q^Tq=1 qTq=1,结合我们在第十五讲所学的投影矩阵的知识有 q q T q T q = q q T \frac{qq^T}{q^Tq}=qq^T qTqqqT=qqT是一个投影矩阵,很容易验证其性质,比如平方它会得到 q q T q q T = q q T qq^Tqq^T=qq^T qqTqqT=qqT于是多次投影不变等。
每一个对称矩阵都可以分解为一系列相互正交的投影矩阵。
在知道对称矩阵的特征值皆为实数后,我们再来讨论这些实数的符号,因为特征值的正负号会影响微分方程的收敛情况(第二十三讲,需要实部为负的特征值保证收敛)。用消元法取得矩阵的主元,观察主元的符号,主元符号的正负数量与特征向量的正负数量相同。
一些结论:
- 若 A A A为实对称矩阵,且 A 2 = 0 A^2=0 A2=0,那么 A = 0 A=0 A=0
2.合同关系
矩阵的等价,相似,合同
矩阵的合同
3.二次型,标准形和规范形
理解二次型
对称矩阵的特征值矩阵可以用于将二次型化为标准型(正交变换法)
关于二次型的意义
需要注意,二次型的标准形不唯一(但规范形是唯一的),但不同标准形中所含项数是相同的(即二次型的秩),而且标准形中正项个数(或负项个数)也是相同的,即惯性定理。
4.正定性
正定二次型
如果对称矩阵是“好矩阵”,则正定矩阵(positive definite)是其一个更好的子类(正定矩阵首先是一个对称矩阵)。正定矩阵指特征值均为正数的矩阵(根据上面的性质有矩阵的主元均为正)。
举个例子, [ 5 2 2 3 ] \begin{bmatrix}5&2\\2&3\end{bmatrix} [5223],由行列式消元知其主元为 5 , 11 5 5,\frac{11}{5} 5,511,按一般的方法求特征值有 ∣ 5 − λ 2 2 3 − λ ∣ = λ 2 − 8 λ + 11 = 0 , λ = 4 ± 5 \begin{vmatrix}5-\lambda&2\\2&3-\lambda\end{vmatrix}=\lambda^2-8\lambda+11=0, \lambda=4\pm\sqrt 5 ∣∣∣∣5−λ223−λ∣∣∣∣=λ2−8λ+11=0,λ=4±5
正定矩阵的另一个性质是,所有子行列式为正。对上面的例子有 ∣ 5 ∣ = 5 , ∣ 5 2 2 3 ∣ = 11 \begin{vmatrix}5\end{vmatrix}=5, \begin{vmatrix}5&2\\2&3\end{vmatrix}=11 ∣∣5∣∣=5,∣∣∣∣5223∣∣∣∣=11。
我们看到正定矩阵将早期学习的的消元主元、中期学习的的行列式、后期学习的特征值结合在了一起。
一些结论:
- 对于正定矩阵 A A A, ∣ A + E ∣ > 1 |A+E|>1 ∣A+E∣>1
- 当 m × n m \times n m×n的二次型矩阵 A A A的正惯性系数为 n n n时,矩阵正定
- 对称矩阵 A A A为正定矩阵的充要条件是 A A A和单位矩阵 E E E合同(化为规范形后对角线全为 1 1 1)
第二十七讲:复数矩阵和快速傅里叶变换
本讲主要介绍复数向量、复数矩阵的相关知识(包括如何做复数向量的点积运算、什么是复数对称矩阵等),以及傅里叶矩阵(最重要的复数矩阵)和快速傅里叶变换。
1.复数矩阵运算
先介绍复数向量,我们不妨换一个字母符号来表示:
z
=
[
z
1
z
2
⋮
z
n
]
z=\begin{bmatrix}z_1\\z_2\\\vdots\\z_n\end{bmatrix}
z=⎣⎢⎢⎢⎡z1z2⋮zn⎦⎥⎥⎥⎤,向量的每一个分量都是复数。此时
z
z
z不再属于
R
n
\mathbb{R}^n
Rn实向量空间,它现在处于
C
n
\mathbb{C}^n
Cn复向量空间。
复数域中,与正交矩阵对应的是酉矩阵,与对称矩阵对应的是Hermit矩阵(H矩阵),它们的性质基本相似,只需要把转置
A
T
A^T
AT替换为共轭转置
A
H
=
A
A^H=A
AH=A,而正规阵指在复数域中符合
A
H
A
=
A
A
H
A^HA=AA^H
AHA=AAH的矩阵,
C
C
C是正规阵和
C
=
P
H
Λ
P
C=P^H\Lambda P
C=PHΛP等价,其中
P
P
P是酉矩阵
1.1.计算复向量的模
对比实向量,我们计算模只需要计算 ∣ v ∣ = v T v \left|v\right|=\sqrt{v^Tv} ∣v∣=vTv即可,而如果对复向量使用 z T z z^Tz zTz则有 z T z = [ z 1 z 2 ⋯ z n ] [ z 1 z 2 ⋮ z n ] = z 1 2 + z 2 2 + ⋯ + z n 2 z^Tz=\begin{bmatrix}z_1&z_2&\cdots&z_n\end{bmatrix}\begin{bmatrix}z_1\\z_2\\\vdots\\z_n\end{bmatrix}=z_1^2+z_2^2+\cdots+z_n^2 zTz=[z1z2⋯zn]⎣⎢⎢⎢⎡z1z2⋮zn⎦⎥⎥⎥⎤=z12+z22+⋯+zn2,这里 z i z_i zi是复数,平方后虚部为负,求模时本应相加的运算变成了减法。(如向量 [ 1 i ] \begin{bmatrix}1&i\end{bmatrix} [1i],右乘其转置后结果为 0 0 0,但此向量的长度显然不是零。)
根据上一讲我们知道,应使用 ∣ z ∣ = z ˉ T z \left|z\right|=\sqrt{\bar{z}^Tz} ∣z∣=zˉTz,即 [ z ˉ 1 z ˉ 2 ⋯ z ˉ n ] [ z 1 z 2 ⋮ z n ] \begin{bmatrix}\bar z_1&\bar z_2&\cdots&\bar z_n\end{bmatrix}\begin{bmatrix}z_1\\z_2\\\vdots\\z_n\end{bmatrix} [zˉ1zˉ2⋯zˉn]⎣⎢⎢⎢⎡z1z2⋮zn⎦⎥⎥⎥⎤,即使用向量共轭的转置乘以原向量即可。(如向量 [ 1 i ] \begin{bmatrix}1&i\end{bmatrix} [1i],右乘其共轭转置后结果为 [ 1 − i ] [ 1 i ] = 2 \begin{bmatrix}1&-i\end{bmatrix}\begin{bmatrix}1\\i\end{bmatrix}=2 [1−i][1i]=2。)
我们把共轭转置乘以原向量记为 z H z z^Hz zHz, H H H读作埃尔米特(人名为Hermite,形容词为Hermitian)
1.2.计算向量的内积
有了复向量模的计算公式,同理可得,对于复向量,内积不再是实向量的 y T x y^Tx yTx形式,复向量内积应为 y H x y^Hx yHx。
1.3.对称性
对于实矩阵, A T = A A^T=A AT=A即可表达矩阵的对称性。而对于复矩阵,我们同样需要求一次共轭 A ˉ T = A \bar{A}^T=A AˉT=A。举个例子 [ 2 3 + i 3 − i 5 ] \begin{bmatrix}2&3+i\\3-i&5\end{bmatrix} [23−i3+i5]是一个复数情况下的对称矩阵。这叫做埃尔米特矩阵,有性质 A H = A A^H=A AH=A。
1.4.正交性
在第十七讲中,我们这样定义标准正交向量: q i T q j = { 0 i ≠ j 1 i = j q_i^Tq_j=\begin{cases}0\quad i\neq j\\1\quad i=j\end{cases} qiTqj={0i=j1i=j。现在,对于复向量我们需要求共轭: q ˉ i T q j = q i H q j = { 0 i ≠ j 1 i = j \bar{q}_i^Tq_j=q_i^Hq_j=\begin{cases}0\quad i\neq j\\1\quad i=j\end{cases} qˉiTqj=qiHqj={0i=j1i=j。
第十七讲中的标准正交矩阵: Q = [ q 1 q 2 ⋯ q n ] Q=\Bigg[q_1\ q_2\ \cdots\ q_n\Bigg] Q=[q1 q2 ⋯ qn]有 Q T Q = E Q^TQ=E QTQ=E。现在对于复矩阵则有 Q H Q = E Q^HQ=E QHQ=E。
就像人们给共轭转置起了个“埃尔米特”这个名字一样,正交性(orthogonal)在复数情况下也有了新名字,酉(unitary),酉矩阵(unitary matrix)与正交矩阵类似,满足 Q H Q = E Q^HQ=E QHQ=E的性质。而前面提到的傅里叶矩阵就是一个酉矩阵。
2.傅里叶矩阵
n n n阶傅里叶矩阵 F n = [ 1 1 1 ⋯ 1 1 w w 2 ⋯ w n − 1 1 w 2 w 4 ⋯ w 2 ( n − 1 ) ⋮ ⋮ ⋮ ⋱ ⋮ 1 w n − 1 w 2 ( n − 1 ) ⋯ w ( n − 1 ) 2 ] F_n=\begin{bmatrix}1&1&1&\cdots&1\\1&w&w^2&\cdots&w^{n-1}\\1&w^2&w^4&\cdots&w^{2(n-1)}\\\vdots&\vdots&\vdots&\ddots&\vdots\\1&w^{n-1}&w^{2(n-1)}&\cdots&w^{(n-1)^2}\end{bmatrix} Fn=⎣⎢⎢⎢⎢⎢⎡111⋮11ww2⋮wn−11w2w4⋮w2(n−1)⋯⋯⋯⋱⋯1wn−1w2(n−1)⋮w(n−1)2⎦⎥⎥⎥⎥⎥⎤,对于每一个元素有 ( F n ) i j = w i j i , j = 0 , 1 , 2 , ⋯ , n − 1 (F_n)_{ij}=w^{ij}\quad i,j=0,1,2,\cdots,n-1 (Fn)ij=wiji,j=0,1,2,⋯,n−1。矩阵中的 w w w是一个非常特殊的值,满足 w n = 1 w^n=1 wn=1,其公式为 w = e i 2 π / n w=e^{i2\pi/n} w=ei2π/n。易知 w w w在复平面的单位圆上, w = cos 2 π n + i sin 2 π n w=\cos\frac{2\pi}{n}+i\sin\frac{2\pi}{n} w=cosn2π+isinn2π。
在傅里叶矩阵中,当我们计算 w w w的幂时, w w w在单位圆上的角度翻倍。比如在 6 6 6阶情形下, w = e 2 π / 6 w=e^{2\pi/6} w=e2π/6,即位于单位圆上 6 0 ∘ 60^\circ 60∘角处,其平方位于单位圆上 12 0 ∘ 120^\circ 120∘角处,而 w 6 w^6 w6位于 1 1 1处。从开方的角度看,它们是 1 1 1的 6 6 6个六次方根,而一次的 w w w称为原根。
-
我们现在来看 4 4 4阶傅里叶矩阵,先计算 w w w有 w = i , w 2 = − 1 , w 3 = − i , w 4 = 1 w=i,\ w^2=-1,\ w^3=-i,\ w^4=1 w=i, w2=−1, w3=−i, w4=1, F 4 = [ 1 1 1 1 1 i i 2 i 3 1 i 2 i 4 i 6 1 i 3 i 6 i 9 ] = [ 1 1 1 1 1 i − 1 − i 1 − 1 1 − 1 1 − i − 1 i ] F_4=\begin{bmatrix}1&1&1&1\\1&i&i^2&i^3\\1&i^2&i^4&i^6\\1&i^3&i^6&i^9\end{bmatrix}=\begin{bmatrix}1&1&1&1\\1&i&-1&-i\\1&-1&1&-1\\1&-i&-1&i\end{bmatrix} F4=⎣⎢⎢⎡11111ii2i31i2i4i61i3i6i9⎦⎥⎥⎤=⎣⎢⎢⎡11111i−1−i1−11−11−i−1i⎦⎥⎥⎤。
矩阵的四个列向量正交,我们验证一下第二列和第四列, c 2 ˉ T c 4 = 1 − 0 + 1 − 0 = 0 \bar{c_2}^Tc_4=1-0+1-0=0 c2ˉTc4=1−0+1−0=0,正交。不过我们应该注意到, F 4 F_4 F4的列向量并不是标准的,我们可以给矩阵乘上系数 1 2 \frac{1}{2} 21(除以列向量的长度)得到标准正交矩阵 F 4 = 1 2 [ 1 1 1 1 1 i − 1 − i 1 − 1 1 − 1 1 − i − 1 i ] F_4=\frac{1}{2}\begin{bmatrix}1&1&1&1\\1&i&-1&-i\\1&-1&1&-1\\1&-i&-1&i\end{bmatrix} F4=21⎣⎢⎢⎡11111i−1−i1−11−11−i−1i⎦⎥⎥⎤。此时有 F 4 H F 4 = I F_4^HF_4=I F4HF4=I,于是该矩阵的逆矩阵也就是其共轭转置 F 4 H F_4^H F4H。
3.快速傅里叶变换(Fast Fourier transform/FFT)
对于傅里叶矩阵, F 6 , F 3 F_6,\ F_3 F6, F3、 F 8 , F 4 F_8,\ F_4 F8, F4、 F 64 , F 32 F_{64},\ F_{32} F64, F32之间有着特殊的关系。
举例,有傅里叶矩阵 F 6 4 F_64 F64,一般情况下,用一个列向量右乘 F 64 F_{64} F64需要约 6 4 2 64^2 642次计算,显然这个计算量是比较大的。我们想要减少计算量,于是想要分解 F 64 F_{64} F64,联系到 F 32 F_{32} F32,有 [ F 64 ] = [ E D I − D ] [ F 32 0 0 F 32 ] [ 1 ⋯ 0 ⋯ 0 ⋯ 1 ⋯ 1 ⋯ 0 ⋯ 0 ⋯ 1 ⋯ ⋱ ⋱ ⋱ ⋱ ⋯ 1 ⋯ 0 ⋯ 0 ⋯ 1 ] \Bigg[F_{64}\Bigg]=\begin{bmatrix}E&D\\I&-D\end{bmatrix}\begin{bmatrix}F_{32}&0\\0&F_{32}\end{bmatrix}\begin{bmatrix}1&&\cdots&&&0&&\cdots&&\\0&&\cdots&&&1&&\cdots&&\\&1&\cdots&&&&0&\cdots&&\\&0&\cdots&&&&1&\cdots&&\\&&&\ddots&&&&&\ddots&&\\&&&\ddots&&&&&\ddots&&\\&&&\cdots&1&&&&\cdots&0\\&&&\cdots&0&&&&\cdots&1\end{bmatrix} [F64]=[EID−D][F3200F32]⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡1010⋯⋯⋯⋯⋱⋱⋯⋯100101⋯⋯⋯⋯⋱⋱⋯⋯01⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤。
我们分开来看等式右侧的这三个矩阵:
-
第一个矩阵由单位矩阵 E E E和对角矩阵 D = [ 1 w w 2 ⋱ w 31 ] D=\begin{bmatrix}1&&&&\\&w&&&\\&&w^2&&\\&&&\ddots&\\&&&&w^{31}\end{bmatrix} D=⎣⎢⎢⎢⎢⎡1ww2⋱w31⎦⎥⎥⎥⎥⎤组成,我们称这个矩阵为修正矩阵,显然其计算量来自 D D D矩阵,对角矩阵的计算量约为 32 32 32即这个修正矩阵的计算量约为 32 32 32,单位矩阵的计算量忽略不计。
-
第二个矩阵是两个 F 32 F_{32} F32与零矩阵组成的,计算量约为 2 × 3 2 2 2\times 32^2 2×322。
-
第三个矩阵通常记为 P P P矩阵,这是一个置换矩阵,其作用是讲前一个矩阵中的奇数列提到偶数列之前,将前一个矩阵从 [ x 0 x 1 ⋯ ] \Bigg[x_0\ x_1\ \cdots\Bigg] [x0 x1 ⋯]变为 [ x 0 x 2 ⋯ x 1 x 3 ⋯ ] \Bigg[x_0\ x_2\ \cdots\ x_1\ x_3\ \cdots\Bigg] [x0 x2 ⋯ x1 x3 ⋯],这个置换矩阵的计算量也可以忽略不计。(这里教授似乎在黑板上写错了矩阵,可以参考FFT、How the FFT is computed做进一步讨论。)
所以我们把 6 4 2 64^2 642复杂度的计算化简为 2 × 3 2 2 + 32 2\times 32^2+32 2×322+32复杂度的计算,我们可以进一步化简 F 32 F_{32} F32得到与 F 16 F_{16} F16有关的式子 [ I 32 D 32 I 32 − D 32 ] [ I 16 D 16 I 16 − D 16 I 16 D 16 I 16 − D 16 ] [ F 16 F 16 F 16 F 16 ] [ P 16 P 16 ] [ P 32 ] \begin{bmatrix}I_{32}&D_{32}\\I_{32}&-D_{32}\end{bmatrix}\begin{bmatrix}I_{16}&D_{16}&&\\I_{16}&-D_{16}&&\\&&I_{16}&D_{16}\\&&I_{16}&-D_{16}\end{bmatrix}\begin{bmatrix}F_{16}&&&\\&F_{16}&&\\&&F_{16}&\\&&&F_{16}\end{bmatrix}\begin{bmatrix}P_{16}&\\&P_{16}\end{bmatrix}\Bigg[\ P_{32}\ \Bigg] [I32I32D32−D32]⎣⎢⎢⎡I16I16D16−D16I16I16D16−D16⎦⎥⎥⎤⎣⎢⎢⎡F16F16F16F16⎦⎥⎥⎤[P16P16][ P32 ]。而 3 2 2 32^2 322的计算量进一步分解为 2 × 1 6 2 + 16 2\times 16^2+16 2×162+16的计算量,如此递归下去我们最终得到含有一阶傅里叶矩阵的式子。
来看化简后计算量, 2 ( 2 ( 2 ( 2 ( 2 ( 2 ( 1 ) 2 + 1 ) + 2 ) + 4 ) + 8 ) + 16 ) + 32 2\left(2\left(2\left(2\left(2\left(2\left(1\right)^2+1\right)+2\right)+4\right)+8\right)+16\right)+32 2(2(2(2(2(2(1)2+1)+2)+4)+8)+16)+32,约为 6 × 32 = log 2 64 × 64 2 6\times 32=\log_264\times \frac{64}{2} 6×32=log264×264,算法复杂度为 n 2 log 2 n \frac{n}{2}\log_2n 2nlog2n。
于是原来需要 n 2 n^2 n2的运算现在只需要 n 2 log 2 n \frac{n}{2}\log_2n 2nlog2n就可以实现了。不妨看看 n = 10 n=10 n=10的情况,不使用FFT时需要 n 2 = 1024 × 1024 n^2=1024\times 1024 n2=1024×1024次运算,使用FFT时只需要 n 2 log 2 n = 5 × 1024 \frac{n}{2}\log_2n=5\times 1024 2nlog2n=5×1024次运算,运算量大约是原来的 1 200 \frac{1}{200} 2001。
下一讲将继续介绍特征值、特征向量及正定矩阵。
二十八、正定矩阵和最小值
本讲我们会了解如何完整的测试一个矩阵是否正定,测试 x T A x x^TAx xTAx是否具有最小值,最后了解正定的几何意义——椭圆(ellipse)和正定性有关,双曲线(hyperbola)与正定无关。另外,本讲涉及的矩阵均为实对称矩阵。
1.正定性的判断
我们仍然从二阶说起,有矩阵 A = [ a b b d ] A=\begin{bmatrix}a&b\\b&d\end{bmatrix} A=[abbd],判断其正定性有以下方法:
-
矩阵的所有特征值大于零则矩阵正定: λ 1 > 0 , λ 2 > 0 \lambda_1>0,\ \lambda_2>0 λ1>0, λ2>0;
-
矩阵的所有顺序主子阵(leading principal submatrix)的行列式(即顺序主子式,leading principal minor)大于零则矩阵正定: a > 0 , a c − b 2 > 0 a>0,\ ac-b^2>0 a>0, ac−b2>0;
-
矩阵消元后主元均大于零: a > 0 , a c − b 2 a > 0 a>0,\ \frac{ac-b^2}{a}>0 a>0, aac−b2>0;
-
x T A x > 0 x^TAx>0 xTAx>0;
负定矩阵的性质: -
对角线元素都是负数
-
若 A A A与 B B B都是 H H H阵,且共轭合同,那么 A A A与 B B B的负定是等价的
矩阵 A A A负定的等价条件:
- 特征值均小于 0 0 0
- A A A与 E E E共轭合同(负定矩阵性质2)
- A A A的奇数阶顺序主子式均小于 0 0 0,偶数阶顺序主子式均大于 0 0 0
半正定矩阵的性质:
- 对角线元素 d i ≥ 0 d_i \ge 0 di≥0
- 若 A A A与 B B B都是 H H H阵,且共轭合同,那么 A A A与 B B B的半正定是等价的
矩阵 A A A半正定的等价条件:
- 特征值均大于等于 0 0 0
- A A A与 [ I r 0 ] \begin{bmatrix}I_r&\\&0\end{bmatrix} [Ir0]共轭合同(半正定矩阵性质2)
- 存在矩阵 P P P(并不要求是可逆的,如果可逆可以判断是正定矩阵), A = P H P A=P^HP A=PHP
- A A A的各阶顺序主子式均大于等于 0 0 0
大多数情况下使用4来定义正定性,而用前三条来验证正定性。
来计算一个例子: A = [ 2 6 6 ? ] A=\begin{bmatrix}2&6\\6&?\end{bmatrix} A=[266?],在 ? ? ?处填入多少才能使矩阵正定?
-
来试试 18 18 18,此时矩阵为 A = [ 2 6 6 18 ] A=\begin{bmatrix}2&6\\6&18\end{bmatrix} A=[26618], ∣ A ∣ = 0 |A|=0 ∣A∣=0,此时的矩阵成为半正定矩阵(positive semi-definite)。矩阵奇异,其中一个特征值必为 0 0 0,从迹得知另一个特征值为 20 20 20。矩阵的主元只有一个,为 2 2 2。
计算 x T A x x^TAx xTAx,得 [ x 1 x 2 ] [ 2 6 6 18 ] [ x 1 x 2 ] = 2 x 1 2 + 12 x 1 x 2 + 18 x 2 2 \begin{bmatrix}x_1&x_2\end{bmatrix}\begin{bmatrix}2&6\\6&18\end{bmatrix}\begin{bmatrix}x_1\\x_2\end{bmatrix}=2x_1^2+12x_1x_2+18x_2^2 [x1x2][26618][x1x2]=2x12+12x1x2+18x22这样我们得到了一个关于 x 1 , x 2 x_1,x_2 x1,x2的函数 f ( x 1 , x 2 ) = 2 x 1 2 + 12 x 1 x 2 + 18 x 2 2 f(x_1,x_2)=2x_1^2+12x_1x_2+18x_2^2 f(x1,x2)=2x12+12x1x2+18x22,这个函数不再是线性的,在本例中这是一个纯二次型(quadratic)函数,它没有线性部分、一次部分或更高次部分( A x Ax Ax是线性的,但引入 x T x^T xT后就成为了二次型)。
当 ? ? ?取 18 18 18时,判定1、2、3都是“刚好不及格”。
-
我们可以先看“一定不及格”的样子,令 ? = 7 ?=7 ?=7,矩阵为 A = [ 2 6 6 7 ] A=\begin{bmatrix}2&6\\6&7\end{bmatrix} A=[2667],二阶顺序主子式变为 − 22 -22 −22,显然矩阵不是正定的,此时的函数为 f ( x 1 , x 2 ) = 2 x 1 2 + 12 x 1 x 2 + 7 x 2 2 f(x_1,x_2)=2x_1^2+12x_1x_2+7x_2^2 f(x1,x2)=2x12+12x1x2+7x22,如果取 x 1 = 1 , x 2 = − 1 x_1=1,x_2=-1 x1=1,x2=−1则有 f ( 1 , − 1 ) = 2 − 12 + 7 < 0 f(1,-1)=2-12+7<0 f(1,−1)=2−12+7<0。
如果我们把 z = 2 x 2 + 12 x y + 7 y 2 z=2x^2+12xy+7y^2 z=2x2+12xy+7y2放在直角坐标系中,图像过原点 z ( 0 , 0 ) = 0 z(0,0)=0 z(0,0)=0,当 y = 0 y=0 y=0或 x = 0 x=0 x=0或 x = y x=y x=y时函数为开口向上的抛物线,所以函数图像在某些方向上是正值;而在某些方向上是负值,比如 x = − y x=-y x=−y,所以函数图像是一个马鞍面(saddle), ( 0 , 0 , 0 ) (0,0,0) (0,0,0)点称为鞍点(saddle point),它在某些方向上是极大值点,而在另一些方向上是极小值点。(实际上函数图像的最佳观测方向是沿着特征向量的方向。)
-
再来看一下“一定及格”的情形,令 ? = 20 ?=20 ?=20,矩阵为 A = [ 2 6 6 20 ] A=\begin{bmatrix}2&6\\6&20\end{bmatrix} A=[26620],行列式为 ∣ A ∣ = 4 |A|=4 ∣A∣=4,迹为 t r a c e ( A ) = 22 trace(A)=22 trace(A)=22,特征向量均大于零,矩阵可以通过测试。此时的函数为 f ( x 1 , x 2 ) = 2 x 1 2 + 12 x 1 x 2 + 20 x 2 2 f(x_1,x_2)=2x_1^2+12x_1x_2+20x_2^2 f(x1,x2)=2x12+12x1x2+20x22,函数在除 ( 0 , 0 ) (0,0) (0,0)外处处为正。我们来看看 z = 2 x 2 + 12 x y + 20 y 2 z=2x^2+12xy+20y^2 z=2x2+12xy+20y2的图像,式子的平方项均非负,所以需要两个平方项之和大于中间项即可,该函数的图像为抛物面(paraboloid)。在 ( 0 , 0 ) (0,0) (0,0)点函数的一阶偏导数均为零,二阶偏导数均为正(马鞍面的一阶偏导数也为零,但二阶偏导数并不均为正),函数在该点取极小值。
在微积分中,一元函数取极小值需要一阶导数为零且二阶导数为正 d u d x = 0 , d 2 u d x 2 > 0 \frac{\mathrm{d}u}{\mathrm{d}x}=0, \frac{\mathrm{d}^2u}{\mathrm{d}x^2}>0 dxdu=0,dx2d2u>0。在线性代数中我们遇到了了多元函数 f ( x 1 , x 2 , ⋯ , x n ) f(x_1,x_2,\cdots,x_n) f(x1,x2,⋯,xn),要取极小值需要二阶偏导数矩阵为正定矩阵。
在本例中(即二阶情形),如果能用平方和的形式来表示函数(标准形),则很容易看出函数是否恒为正, f ( x , y ) = 2 x 2 + 12 x y + 20 y 2 = 2 ( x + 3 y ) 2 + 2 y 2 f(x,y)=2x^2+12xy+20y^2=2\left(x+3y\right)^2+2y^2 f(x,y)=2x2+12xy+20y2=2(x+3y)2+2y2。另外,如果是上面的 ? = 7 ?=7 ?=7的情形,则有 f ( x , y ) = 2 ( x + 3 y ) 2 − 11 y 2 f(x,y)=2(x+3y)^2-11y^2 f(x,y)=2(x+3y)2−11y2,如果是 ? = 18 ?=18 ?=18的情形,则有 f ( x , y ) = 2 ( x + 3 y ) 2 f(x,y)=2(x+3y)^2 f(x,y)=2(x+3y)2。
如果令 z = 1 z=1 z=1,相当于使用 z = 1 z=1 z=1平面截取该函数图像,将得到一个椭圆曲线。另外,如果在 ? = 7 ?=7 ?=7的马鞍面上截取曲线将得到一对双曲线。
再来看这个矩阵的消元, [ 2 6 6 20 ] = [ 1 0 − 3 1 ] [ 2 6 0 2 ] \begin{bmatrix}2&6\\6&20\end{bmatrix}=\begin{bmatrix}1&0\\-3&1\end{bmatrix}\begin{bmatrix}2&6\\0&2\end{bmatrix} [26620]=[1−301][2062],这就是 A = L U A=LU A=LU,可以发现矩阵 L L L中的项与配平方中未知数的系数有关,而主元则与两个平方项外的系数有关,这也就是为什么正数主元得到正定矩阵。
上面又提到二阶导数矩阵,这个矩阵型为 [ f x x f x y f y x f y y ] \begin{bmatrix}f_{xx}&f_{xy}\\f_{yx}&f_{yy}\end{bmatrix} [fxxfyxfxyfyy],显然,矩阵中的主对角线元素(纯二阶导数)必须为正,并且主对角线元素必须足够大来抵消混合导数的影响。同时还可以看出,因为二阶导数的求导次序并不影响结果,所以矩阵必须是对称的。现在我们就可以计算 n × n n\times n n×n阶矩阵了。
接下来计算一个三阶矩阵, A = [ 2 − 1 0 − 1 2 − 1 0 − 1 2 ] A=\begin{bmatrix}2&-1&0\\-1&2&-1\\0&-1&2\end{bmatrix} A=⎣⎡2−10−12−10−12⎦⎤,它是正定的吗?函数 x T A x x^TAx xTAx是多少?函数在原点取最小值吗?图像是什么样的?
- 先来计算矩阵的顺序主子式,分别为 2 , 3 , 4 2,3,4 2,3,4;再来计算主元,分别为 2 , 3 2 , 4 3 2,\frac{3}{2},\frac{4}{3} 2,23,34;计算特征值, λ 1 = 2 − 2 , λ 2 = 2 , λ 3 = 2 + 2 \lambda_1=2-\sqrt 2,\lambda_2=2,\lambda_3=2+\sqrt 2 λ1=2−2,λ2=2,λ3=2+2。
- 计算 x T A x = 2 x 1 2 + 2 x 2 2 + 2 x 3 2 − 2 x 1 x 2 − 2 x 2 x 3 x^TAx=2x_1^2+2x_2^2+2x_3^2-2x_1x_2-2x_2x_3 xTAx=2x12+2x22+2x32−2x1x2−2x2x3。
- 图像是四维的抛物面,当我们在 f ( x 1 , x 2 , x 3 ) = 1 f(x_1,x_2,x_3)=1 f(x1,x2,x3)=1处截取该面,将得到一个椭圆体。一般椭圆体有三条轴,特征值的大小决定了三条轴的长度,而特征向量的方向与三条轴的方向相同。
现在我们将实对称矩阵 A A A分解为 A = Q Λ Q T A=Q\Lambda Q^T A=QΛQT,可以发现上面说到的各种元素都可以表示在这个分解的矩阵中,我们称之为主轴定理(principal axis theorem),即特征向量说明主轴的方向、特征值说明主轴的长度。
A = Q Λ Q T A=Q\Lambda Q^T A=QΛQT是特征值相关章节中最重要的公式。
一些结论:
- 若 A A A是正定矩阵,那么 A T , A ∗ , A − 1 A^T,A^*,A^{-1} AT,A∗,A−1都是正定矩阵
- 若 A A A是正定矩阵,那么对任意 x T A x > 0 x^TAx>0 xTAx>0,若取 x x x为单位向量, x T A x = a i i x^TAx=a_{ii} xTAx=aii可证明正定矩阵的对角元全部大于0