一、奇异值分解
奇异值分解(SVD)是线性代数的高光时刻。AAA 是一个 m×nm\times nm×n 的矩阵,可以是方阵或者长方形矩阵,秩为 rrr。我们要对角化 AAA,但并不是把它化成 X−1AXX^{-1}A XX−1AX 的形式。这是因为 XXX 中的特征向量有三个大问题:它们通常并不正交,并不总是有足够数量的特征向量,并且 Ax=λxA\boldsymbol x=\lambda\boldsymbol xAx=λx 要求 AAA 是方阵。AAA 的奇异值向量(Singular vectors)完美的解决了这些问题。
由 SVD 我们可以得到:四个基本子空间合适的基。下面是按照基向量的重要性顺序,来求得这些基向量的步骤。
我们需要有两组奇异值向量 ui\boldsymbol u_iui 和 vi\boldsymbol v_ivi,其中 ui\boldsymbol u_iui 在 Rm\pmb {\textrm R}^mRm 中, vi\boldsymbol v_ivi 在 Rn\textrm{\pmb R}^nRn 中,它们将分别是 m×mm\times mm×m 的矩阵 U\pmb UU 和 n×nn\times nn×n 的矩阵 V\pmb VV 的列。下面会先根据这些基向量来描述 SVD,然后再根据正交矩阵 UUU 和 VVV 来描述 SVD。其基本思想是,在行空间中找到一组基标准交向量 vi\boldsymbol v_ivi,然后通过 Avi=σiuiA\boldsymbol v_i=\sigma_i\boldsymbol u_iAvi=σiui 映射到列空间中的 ui\boldsymbol u_iui,我们的目标是 vi\boldsymbol v_ivi 是特殊的标准正交向量,映射到 ui\boldsymbol u_iui 也是标准正交。
(向量角度) ui\boldsymbol u_iui 和 vj\boldsymbol v_jvj 给出了 AAA 的四个基本子空间的基:
u1,u2,⋯ ,ur是列空间的标准正交基ur+1,ur+2,⋯ ,um是左零空间 N(AT) 的标准正交基v1,v2,⋯ ,vr是行空间的标准正交基vr+1,vr+2,⋯ ,vn是零空间 N(A) 的标准正交基\begin{array}{ll}\boldsymbol u_1,\boldsymbol u_2,\cdots,\boldsymbol u_r&是\pmb{列空间}的标准正交基\\\boldsymbol u_{r+1},\boldsymbol u_{r+2},\cdots,\boldsymbol u_m&是\pmb{左零空间\,N(A^T)\,}的标准正交基\\\boldsymbol v_1,\boldsymbol v_2,\cdots,\boldsymbol v_r&是\pmb{行空间}的标准正交基\\\boldsymbol v_{r+1},\boldsymbol v_{r+2},\cdots,\boldsymbol v_n&是\pmb{零空间}\,N(A)\,的标准正交基\end{array}u1,u2,⋯,urur+1,ur+2,⋯,umv1,v2,⋯,vrvr+1,vr+2,⋯,vn是列空间的标准正交基是左零空间N(AT)的标准正交基是行空间的标准正交基是零空间N(A)的标准正交基
这些基向量不仅正交,而且可以对角化矩阵 AAA:
“对角化 A\pmb AA” \kern 20ptAv1=σ1u1,Av2=σ2u2,⋯ ,Avr=σrur(7.2.1){\color{blue}A\boldsymbol v_1=\sigma_1\boldsymbol u_1,\kern 5ptA\boldsymbol v_2=\sigma_2\boldsymbol u_2,\kern 5pt\cdots,\kern 5ptA\boldsymbol v_r=\sigma_r\boldsymbol u_r}\kern 20pt(7.2.1)Av1=σ1u1,Av2=σ2u2,⋯,Avr=σrur(7.2.1)
这些奇异值 σ1,σ2,⋯ ,σr\pmb{\sigma_1,\sigma_2,\cdots,\sigma_r}σ1,σ2,⋯,σr 都是正数,σi\sigma_iσi 是 AviA\boldsymbol v_iAvi 的长度。对角矩阵 Σ\SigmaΣ 的对角元素除了奇异值 σi\sigma_iσi 外都是零。
(矩阵角度)由于 ui\boldsymbol u_iui 是标准正交的,所以由 rrr 个列向量组成的矩阵 UrU_rUr 有 UrTUr=IU_r^TU_r=IUrTUr=I,而 vi\boldsymbol v_ivi 也是标准正交的,所以矩阵 VrV_rVr 有 VrTVr=IV_r^TV_r=IVrTVr=I。则由方程 Avi=σiuiA\boldsymbol v_i=\sigma_i\boldsymbol u_iAvi=σiui 推出 AVr=UrΣr\pmb{AV_r=U_r\Sigma_r}AVr=UrΣr 的各列成立:(m×n)(n×r)AVr=UrΣr(m×r)(r×r)A[v1v2⋯vr]=[u1u2⋯ur][σ1σ2⋱σr](7.2.2)\begin{array}{l}(m\times n)(n\times r)\\\pmb{AV_r=U_r\Sigma_r}\\(m\times r)(r\times r)\end{array}\kern 10ptA\begin{bmatrix}\boldsymbol v_1&\boldsymbol v_2&\cdots&\boldsymbol v_r\end{bmatrix}=\begin{bmatrix}\boldsymbol u_1&\boldsymbol u_2&\cdots&\boldsymbol u_r\end{bmatrix}\begin{bmatrix}\sigma_1\\&\sigma_2\\&&\ddots\\&&&\sigma_r\end{bmatrix}\kern 15pt(7.2.2)(m×n)(n×r)AVr=UrΣr(m×r)(r×r)A[v1v2⋯vr]=[u1u2⋯ur]σ1σ2⋱σr(7.2.2)这个是 SVD 的核心,但是 SVD 并不是只有这些内容。这些 vi\boldsymbol v_ivi 和 ui\boldsymbol u_iui 可以生成 AAA 的行空间和列空间,还可以从零空间 N(A)\pmb N(A)N(A) 和左零空间 N(AT)\pmb N(A^T)N(AT) 得到 n−rn-rn−r 个 vj\boldsymbol v_jvj 和 m−rm-rm−r 个 ui\boldsymbol u_iui,它们也和前面的 vi\boldsymbol v_ivi 和 ui\boldsymbol u_iui 正交(这是因为四个基本子空间配对正交)。我们现在在 VVV 和 UUU 中包含所有的 vj\boldsymbol v_jvj 和 ui\boldsymbol u_iui,这两个矩阵就变成了方阵,仍然有 AV=UΣ\pmb{AV=U\Sigma}AV=UΣ。(m×n)(n×n)AV=UΣ(m×m)(m×n)A[v1⋯vr⋯vn]=[u1⋯ur⋯um][σ1σ2⋱σr](7.2.3)\begin{array}{l}(m\times n)(n\times n)\\\pmb{AV=U\Sigma}\\(m\times m)(m\times n)\end{array}\kern 10ptA\begin{bmatrix}\boldsymbol v_1&\cdots&\boldsymbol v_r&\cdots&\boldsymbol v_n\end{bmatrix}=\begin{bmatrix}\boldsymbol u_1&\cdots&\boldsymbol u_r&\cdots&\boldsymbol u_m\end{bmatrix}\begin{bmatrix}\sigma_1\\&\sigma_2\\&&\ddots\\&&&\sigma_r\\&\end{bmatrix}\kern 15pt(7.2.3)(m×n)(n×n)AV=UΣ(m×m)(m×n)A[v1⋯vr⋯vn]=[u1⋯ur⋯um]σ1σ2⋱σr(7.2.3)新的 Σ\SigmaΣ 是 m×nm\times nm×n 的矩阵,它是(7.3.2)中的 r×rr\times rr×r 矩阵下面添加 m−rm-rm−r 个零行,右侧添加 n−rn-rn−r 个零列。真正的变化是 UUU 和 VVV 的形状,它们变成了方阵,并且有 V−1=VTV^{-1}=V^TV−1=VT,所以 AV=UΣAV=U\SigmaAV=UΣ 就变成了 A=UΣVT\pmb{A=U\Sigma V^T}A=UΣVT,这个就是奇异值分解(Singular Value Decompositon),可以用 UΣU\SigmaUΣ 中的列 uiσi\boldsymbol u_i\sigma_iuiσi 乘上 VTV^TVT 的行:
SVDA=UΣVT=u1σ1v1T+u2σ2v2T+⋯+urσrvrT(7.2.4)\kern 30pt{\color{blue}A=U\Sigma V^T=\boldsymbol u_1\sigma_1\boldsymbol v_1^T+\boldsymbol u_2\sigma_2\boldsymbol v_2^T+\cdots+\boldsymbol u_r\sigma_r\boldsymbol v_r^T}\kern 20pt(7.2.4)A=UΣVT=u1σ1v1T+u2σ2v2T+⋯+urσrvrT(7.2.4)
式(7.3.2)是 “缩略版的 SVD(reduced SVD)”,它只包含行空间和列空间的基,式(7.3.3)是完整版的 SVD,它将零空间的基也包含了进去。这两个式子都是将 AAA 分解成同样的 rrr 个秩一矩阵 uiσrviT\boldsymbol u_i\sigma_r\boldsymbol v_i^TuiσrviT 的和。列乘行是矩阵乘法的第四种方式。
我们后面能够看到每个 σi2\sigma_i^2σi2 既是 ATAA^TAATA 的特征值,也是 AATAA^TAAT 的特征值。我们将奇异值按照降序排列:σ1≥σ2≥⋯≥σr>0\sigma_1\geq\sigma_2\geq\cdots\geq\sigma_r>0σ1≥σ2≥⋯≥σr>0,式(7.2.4)中的分解就是按照重要性顺序得到的 AAA 的 rrr 个秩一项,这一点非常重要。
【例1】什么时候 A=UΣVTA=U\Sigma V^TA=UΣVT(奇异值)和 XΛX−1X\Lambda X^{-1}XΛX−1 相同(特征值)?
解: AAA 的特征向量需要标准正交,才有 X=U=VX=U=VX=U=V,如果 A=ΣA=\SigmaA=Σ,也需要特征值 λ≥0\lambda\geq0λ≥0,所以 AAA 必须是一个半正定(或正定)的对称矩阵。只有这样,才会有 A=XΛX−1A=X\Lambda X^{-1}A=XΛX−1,就是 QΛQTQ\Lambda Q^{T}QΛQT 和 A=UΣVTA=U\Sigma V^{T}A=UΣVT 一致。
【例2】如果 A=xyTA=\boldsymbol x \boldsymbol y^TA=xyT(秩一),其中 x\boldsymbol xx 和 y\boldsymbol yy 都是单位向量,那么 AAA 的 SVD 是什么?
解: 式(7.2.2)中缩略版的 SVD 就是 xyT\boldsymbol x\boldsymbol y^TxyT,秩为 r=1r=1r=1,其中 u1=x\boldsymbol u_1=\boldsymbol xu1=x,v1=y\boldsymbol v_1=\boldsymbol yv1=y 且 σ1=1\sigma_1=1σ1=1。完全版的 SVD,要将 u1=x\boldsymbol u_1=\boldsymbol xu1=x 扩充为标准正交基 ui\boldsymbol u_iui,然后将 v1=y\boldsymbol v_1=\boldsymbol yv1=y 扩充为标准正交基 vj\boldsymbol v_jvj,没有新的 σ\sigmaσ,只有一个 σ1=1\sigma_1=1σ1=1。
二、SVD 的证明
我们需要知道这令人惊叹的 ui\boldsymbol u_iui 和 vj\boldsymbol v_jvj 是如何构造出来的。vj\boldsymbol v_jvj 是 ATA\pmb{A^TA}ATA 的特征向量,这个一定是正确的,因为我们的目标是:ATA=(UΣVT)T(UΣVT)=VΣTUTUΣVT=VΣTΣVT(7.2.5)\pmb{A^TA}=(U\Sigma V^T)^T(U\Sigma V^T)=V\Sigma^TU^TU\Sigma V^T=\pmb{V\Sigma^T\Sigma V^T}\kern 20pt(7.2.5)ATA=(UΣVT)T(UΣVT)=VΣTUTUΣVT=VΣTΣVT(7.2.5)右侧包含了对称(半)正定矩阵 ATAA^TAATA 的特征向量矩阵 VVV,并且 (ΣTΣ)(\Sigma^T\Sigma)(ΣTΣ) 是 (ATA)(A^TA)(ATA) 的特征值矩阵:每个 σ2\sigma^2σ2 就是 (ATA)(A^TA)(ATA) 特征值 λ(ATA)\lambda(A^TA)λ(ATA)!
现在由 Avi=σiuiA\boldsymbol v_i=\sigma_i\boldsymbol u_iAvi=σiui 可以得到单位向量 u1,u2,⋯ ,ur\boldsymbol u_1,\boldsymbol u_2,\cdots,\boldsymbol u_ru1,u2,⋯,ur,这就是关键的式(7.2.1),核心点,也就是 SVD 成功的全部原因,是这些单位向量 u1,u2,⋯ ,ur\boldsymbol u_1,\boldsymbol u_2,\cdots,\boldsymbol u_ru1,u2,⋯,ur 一定是两两正交(因为 vi\boldsymbol v_ivi 是正交的):关键步骤i≠juiTuj=(Aviσi)T(Avjσj)=viTATAvjσiσj=σj2σiσjviTvj=0(7.2.6)\begin{array}{}\pmb{关键步骤}\\\pmb{i\neq j}\end{array}\kern 20pt\boldsymbol u_i^T\boldsymbol u_j=(\frac{A\boldsymbol v_i}{\sigma_i})^T(\frac{A\boldsymbol v_j}{\sigma_j})=\frac{\boldsymbol v_i^TA^TA\boldsymbol v_j}{\sigma_i\sigma_j}=\frac{\sigma_j^2}{\sigma_i\sigma_j}\boldsymbol v_i^T\boldsymbol v_j=0\kern 20pt(7.2.6)关键步骤i=juiTuj=(σiAvi)T(σjAvj)=σiσjviTATAvj=σiσjσj2viTvj=0(7.2.6)vi\boldsymbol v_ivi 是 ATAA^TAATA(对称)的特征向量,它们是正交的并且得到 ui\boldsymbol u_iui 也是正交的。实际上 ui\boldsymbol u_iui 是 AATAA^TAAT 的特征向量。
最终,在 vj\boldsymbol v_jvj 和 ui\boldsymbol u_iui 的基础上分别构造出了零空间 N(A)\pmb N(A)N(A) 和 左零空间 N(AT)\pmb N(A^T)N(AT) 的标准正交基,得到 nnn 个 vj\boldsymbol v_jvj 和 mmm 个 ui\boldsymbol u_iui,得到 A=UΣVTA=U\Sigma V^TA=UΣVT 中的 V,ΣV,\SigmaV,Σ 和 UUU。
三、SVD 的一个例子
下例演示了 A=UΣVTA=U\Sigma V^TA=UΣVT 中全部三个矩阵的计算过程。
【例3】矩阵 A=[3045]A=\begin{bmatrix}3&0\\4&5\end{bmatrix}A=[3405],秩为 r=2r=2r=2,求出对应的矩阵 U,Σ,VU,\Sigma,VU,Σ,V。
解: 由于秩 r=2r=2r=2,所以 AAA 有两个正的奇异值 σ1\sigma_1σ1 和 σ2\sigma_2σ2,下面会看到 σ1\sigma_1σ1 比特征值 λmax=5\lambda_{max}=5λmax=5 更大,σ2\sigma_2σ2 比特征值 λmin=3\lambda_{min}=3λmin=3 要更小,先从 ATAA^TAATA 和 AATAA^TAAT 开始:ATA=[25202025]AAT=[9121241]A^TA=\begin{bmatrix}25&20\\20&25\end{bmatrix}\kern 20ptAA^T=\begin{bmatrix}\kern 4pt9&12\\12&41\end{bmatrix}ATA=[25202025]AAT=[9121241]它们有相同的迹 (50)(50)(50) 和相同的特征值 σ12=45\sigma_1^2=45σ12=45 和 σ22=5\sigma_2^2=5σ22=5,取算术平方根得 σ1=45\sigma_1=\pmb{\sqrt{45}}σ1=45 和 σ2=5\sigma_2=\pmb{\sqrt5}σ2=5,则 σ1σ2=15\sigma_1\sigma_2=15σ1σ2=15,也就是 AAA 的行列式。
关键步骤是求 ATAA^TAATA 的特征向量(分别对应特征值 454545 和 555):[25202025][11]=45[11][25202025][−11]=5[−11]\begin{bmatrix}25&20\\20&25\end{bmatrix}\begin{bmatrix}1\\1\end{bmatrix}=\pmb{45}\begin{bmatrix}1\\1\end{bmatrix}\kern 20pt\begin{bmatrix}25&20\\20&25\end{bmatrix}\begin{bmatrix}-1\\\kern 7pt1\end{bmatrix}=\pmb5\begin{bmatrix}-1\\\kern 7pt1\end{bmatrix}[25202025][11]=45[11][25202025][−11]=5[−11]然后将这些正交特征向量单位化,都除以 2\sqrt22,即得到 v1\boldsymbol v_1v1 和 v2\boldsymbol v_2v2。右奇异向量v1=12[11]v2=12[−11]左奇异向量ui=Aviσi\pmb{右奇异向量}\kern 10pt\boldsymbol v_1=\frac{1}{\sqrt2}\begin{bmatrix}1\\1\end{bmatrix}\kern 5pt\boldsymbol v_2=\frac{1}{\sqrt2}\begin{bmatrix}-1\\\kern 7pt1\end{bmatrix}\kern 10pt\pmb{左奇异向量}\kern 5pt\boldsymbol u_i=\frac{A\boldsymbol v_i}{\sigma_i}右奇异向量v1=21[11]v2=21[−11]左奇异向量ui=σiAvi现在计算 Av1A\boldsymbol v_1Av1 和 Av2A\boldsymbol v_2Av2,它们分别是 σ1u1=45u1\sigma_1\boldsymbol u_1=\sqrt{45}\boldsymbol u_1σ1u1=45u1 和 σ2u2=5u2\sigma_2\boldsymbol u_2=\sqrt5\boldsymbol u_2σ2u2=5u2:Av1=32[13]=45110[13]=σ1u1Av2=12[−31]=5110[−31]=σ2u2\begin{array}{l}A\boldsymbol v_1=\displaystyle\frac{3}{\sqrt2}\begin{bmatrix}1\\3\end{bmatrix}=\sqrt{45}\pmb{\frac{1}{\sqrt{10}}\begin{bmatrix}1\\3\end{bmatrix}}=\sigma_1\boldsymbol u_1\\\\A\boldsymbol v_2=\displaystyle\frac{1}{\sqrt2}\begin{bmatrix}-3\\\kern 7pt1\end{bmatrix}=\sqrt5\pmb{\frac{1}{\sqrt{10}}\begin{bmatrix}-3\\\kern 7pt1\end{bmatrix}}=\sigma_2\boldsymbol u_2\end{array}Av1=23[13]=45101[13]=σ1u1Av2=21[−31]=5101[−31]=σ2u2除以 10\sqrt{10}10 使得 u1\boldsymbol u_1u1 和 u2\boldsymbol u_2u2 标准正交,然后可以得到预期的 σ1=45\sigma_1=\sqrt{45}σ1=45 和 σ2=5\sigma_2=\sqrt5σ2=5。AAA 的奇异值分解就是 UΣVTU\Sigma V^TUΣVT。
U=110[1−331]Σ=[455]V=12[1−111](7.2.7)\pmb U=\frac{1}{\sqrt{10}}\begin{bmatrix}1&-3\\3&\kern 7pt1\end{bmatrix}\kern 15pt\pmb\Sigma=\begin{bmatrix}\sqrt{45}\\&\sqrt5\end{bmatrix}\kern 15pt\pmb V=\frac{1}{\sqrt2}\begin{bmatrix}1&-1\\1&\kern 7pt1\end{bmatrix}\kern 20pt(7.2.7)U=101[13−31]Σ=[455]V=21[11−11](7.2.7)
UUU 和 VVV 包含列空间和行空间(两个空间都是 R2\pmb{\textrm R}^2R2)的标准正交基。真正要做的是使用两组基对角化 AAA:AV=UΣAV=U\SigmaAV=UΣ。矩阵 AAA 分解成了两个秩一矩阵(列乘行)的组合:σ1u1v1T+σ2u2v2T=4520[1133]+520[3−3−11]=[3045]=A\sigma_1\boldsymbol u_1\boldsymbol v_1^T+\sigma_2\boldsymbol u_2\boldsymbol v_2^T=\pmb{\frac{\sqrt{45}}{\sqrt{20}}\begin{bmatrix}1&1\\3&3\end{bmatrix}+\frac{\sqrt5}{\sqrt{20}}\begin{bmatrix}\kern 7pt3&-3\\-1&\kern 7pt1\end{bmatrix}}=\begin{bmatrix}3&0\\4&5\end{bmatrix}=Aσ1u1v1T+σ2u2v2T=2045[1313]+205[3−1−31]=[3405]=A
四、一个极端的矩阵
下面是一个阶数更大的矩阵的例子,它的 ui\boldsymbol u_iui 和 vi\boldsymbol v_ivi 都是单位矩阵的列,所以计算很简单,但是要注意列的顺序。矩阵 AAA 非常的不平衡(它是一个严格的三角形矩阵),它所有的特征值都为零,AATAA^TAAT 和 ATAA^TAATA 并不接近,矩阵 UUU 和 VVV 是置换矩阵可以弥补这些问题。 A=[0100002000030000]特征值 λ=0,0,0,0 全是零!只有一个特征向量 (1,0,0,0)奇异值 σ=3,2,1奇异向量是 I 的列A=\begin{bmatrix}0&\pmb1&0&0\\0&0&\pmb2&0\\0&0&0&\pmb3\\0&0&0&0\end{bmatrix}\kern 20pt\begin{array}{l}特征值\,\lambda=0,0,0,0\,全是零!\\只有一个特征向量\,(1,0,0,0)\\奇异值\,\sigma=\pmb3,\pmb2,\pmb1\\奇异向量是\,I\,的列\end{array}A=0000100002000030特征值λ=0,0,0,0全是零!只有一个特征向量(1,0,0,0)奇异值σ=3,2,1奇异向量是I的列ATAA^TAATA 和 AATAA^TAAT 都是对角矩阵(有简单的特征向量,但是顺序不同):ATA=[0000010000400009]AAT=[1000040000900000]A^TA=\begin{bmatrix}\pmb0&0&0&0\\0&\pmb1&0&0\\0&0&\pmb4&0\\0&0&0&\pmb9\end{bmatrix}\kern 20ptAA^T=\begin{bmatrix}\pmb1&0&0&0\\0&\pmb4&0&0\\0&0&\pmb9&0\\0&0&0&\pmb0\end{bmatrix}ATA=0000010000400009AAT=1000040000900000它们的特征向量(ui\boldsymbol u_iui 对应 AATAA^TAAT,vi\boldsymbol v_ivi 对应 ATAA^TAATA)按照特征值减小的顺序 σ12>σ22>σ32\sigma_1^2>\sigma_2^2>\sigma_3^2σ12>σ22>σ32 排列,这些特征值是 9,4,19,4,19,4,1。U=[0010010010000001]Σ=[3210]V=[0001001001001000]\pmb U=\begin{bmatrix}0&0&\pmb1&0\\0&\pmb1&0&0\\\pmb1&0&0&0\\0&0&0&\pmb1\end{bmatrix}\kern 15pt\Sigma=\begin{bmatrix}\pmb3\\&\pmb2\\&&\pmb1\\&&&0\end{bmatrix}\kern 15pt\pmb V=\begin{bmatrix}0&0&0&\pmb1\\0&0&\pmb1&0\\0&\pmb1&0&0\\\pmb1&0&0&0\end{bmatrix}U=0010010010000001Σ=3210V=0001001001001000U\pmb UU 和 V\pmb VV 的第一列 u1\boldsymbol u_1u1 和 v1\boldsymbol v_1v1 的分量 111 在第 333 位和第 444 位,则 u1σ1v1T\boldsymbol u_1\sigma_1\boldsymbol v_1^Tu1σ1v1T 就表示矩阵 AAA 中最大的数 A34A_{34}A34,对于这个极端的例子,SVD 的三个秩一矩阵恰好来自于 AAA 中的数字 3,2,13,2,13,2,1。
A=UΣVT=3u1v1T+2u2v2T+1u3v3T\pmb{A=U\Sigma V^T=3\boldsymbol u_1\boldsymbol v_1^T+2\boldsymbol u_2\boldsymbol v_2^T+1\boldsymbol u_3\boldsymbol v_3^T}A=UΣVT=3u1v1T+2u2v2T+1u3v3T
注:假设将 AAA 的最后一行(全零行)去掉,则 AAA 是一个 3×43\times43×4 的矩阵,AATAA^TAAT 是 3×33\times33×3 的矩阵 —— 它的第四行和第四列都会消失,ATAA^TAATA 和 AATAA^TAAT 的特征值仍然是 λ=1,4,9\lambda=1,4,9λ=1,4,9,也会在 Σ\SigmaΣ 中得到相同的奇异值 σ=3,2,1\sigma=3,2,1σ=3,2,1。
AAA 的最后一行的全零行移除后,现在变成了 3×43\times43×4 的矩阵,也会移除 Σ\SigmaΣ 的最后一行和 UUU 的最后一列。则 (3×4)=UΣVT=(3×3)(3×4)(4×4)(3\times4)=U\Sigma V^T=(3\times3)(3\times4)(4\times4)(3×4)=UΣVT=(3×3)(3×4)(4×4),SVD 完全适用于长方形矩阵。
一件好的事情是,由于矩阵 AAA 的行和列经常有完全不同的含义(如电子表格),如果要统计所有课程的成绩,那么可以用各列表示每个学生的情况,而各行表示每个课程的情况:则元素 aija_{ij}aij 就表示成绩。那么 σ1u1v1T\sigma_1\boldsymbol u_1\boldsymbol v_1^Tσ1u1v1T 中,u1=\boldsymbol u_1=u1= 课程组合,v1=\boldsymbol v_1=v1= 学生组合,而 σ1\sigma_1σ1 就是这些组合的成绩:最高成绩。
矩阵 AAA 也可以对一本杂志中关键词的出现频率计数:AAA 的列是不同的文章,每一行代表不同的词,那么 AAA 就是整个杂志的索引,其中最重要的信息就是 σ1u1v1T\sigma_1\boldsymbol u_1\boldsymbol v_1^Tσ1u1v1T,σ1\sigma_1σ1 就是高频词 u1\boldsymbol u_1u1 在高频文章 v1\boldsymbol v_1v1 出现的最高的频率。
五、奇异值的稳定性对比特征值的不稳定性
通过 4×44\times44×4 的矩阵 AAA 这个例子(一个极端情况)我们可以构造出一个特征值不稳定的例子。假设 (4,1)(4,1)(4,1) 元素从零变为 1/600001/600001/60000,这个几乎没有变化,秩变成了 444。A=[010000200003160000000]仅仅是 1/60000 的微小改变,A的特征值就发生了很大的变化:λ=0,0,0,0 变为了 λ=110,i10,−110,−i10A=\begin{bmatrix}0&1&0&0\\0&0&2&0\\0&0&0&3\\\displaystyle\frac{1}{60000}&0&0&0\end{bmatrix}\kern 20pt\begin{array}{l}仅仅是\,1/60000\,的微小改变,A\\的特征值就发生了很大的变化:\\\lambda=0,0,0,0\,变为了\,\pmb{\lambda=\displaystyle\frac{1}{10},\frac{i}{10},\frac{-1}{10},\frac{-i}{10}}\end{array}A=000600001100002000030仅仅是1/60000的微小改变,A的特征值就发生了很大的变化:λ=0,0,0,0变为了λ=101,10i,10−1,10−i新元素仅仅变化了 1/600001/600001/60000,四个特征值就从零变化到了在复平面上以原点为圆心,半径为 110\displaystyle\frac{1}{10}101 的圆上,这表明当 ATAA^TAATA 远离 AATAA^TAAT 时特征值严重的不稳定性,在另外的极端情况下,如果 ATA=AATA^TA=AA^TATA=AAT(“正规矩阵”),那么 AAA 的特征向量正交且 AAA 的特征值完全稳定。
对比之下,任意矩阵的奇异值都是稳定的,它们不会超过 AAA 的变化。在这个例子中,新的奇异值是 3,2,1\pmb{3,2,1}3,2,1 和 1/60000\pmb{1/60000}1/60000,矩阵 UUU 和 VVV 保持不变,AAA 的 SVD 中的第四项是 σ4u4v4T\sigma_4\boldsymbol u_4\boldsymbol v_4^Tσ4u4v4T,它有十五个零元素和一个小的元素 σ4=1/60000\sigma_4=1/60000σ4=1/60000。
六、A 的奇异向量和 S=ATAS=A^TAS=ATA 的特征向量
式(7.2.5-7.2.6)同时证明了 SVD,奇异向量 vi\boldsymbol v_ivi 是 S=ATAS=A^TAS=ATA 的特征向量 qi\boldsymbol q_iqi。SSS 的特征值 λi\lambda_iλi 和 AAA 相应的奇异值的平方 σi2\sigma_i^2σi2 相等,SSS 的秩 rrr 等于 AAA 的秩。特征向量和奇异向量的展开式是完美对应的。
对称矩阵 SS=QΛQT=λ1q1q1T+λ2q2q2T+⋯+λrqrqrT任意矩阵 AA=UΣVT=σ1u1v1T+σ2u2v2T+⋯+σrurvrT\begin{array}{l}\pmb{对称矩阵\,S}\kern 25pt\color{blue}S=Q\Lambda Q^T=\lambda_1\boldsymbol q_1\boldsymbol q_1^T+\lambda_2\boldsymbol q_2\boldsymbol q_2^T+\cdots+\lambda_r\boldsymbol q_r\boldsymbol q_r^T\\\pmb{任意矩阵\,A}\kern 23pt\color{blue}A=U\Sigma V^T=\sigma_1\boldsymbol u_1\boldsymbol v_1^T+\sigma_2\boldsymbol u_2\boldsymbol v_2^T+\cdots+\sigma_r\boldsymbol u_r\boldsymbol v_r^T\end{array}对称矩阵SS=QΛQT=λ1q1q1T+λ2q2q2T+⋯+λrqrqrT任意矩阵AA=UΣVT=σ1u1v1T+σ2u2v2T+⋯+σrurvrT
各个 qi\boldsymbol q_iqi 是正交的,各个 ui\boldsymbol u_iui 是正交的,各个 vi\boldsymbol v_ivi 也是正交的,非常漂亮!
但是还要更深入理解,有以下两个原因:其一是要弥补特征值部分的短板, 如果 λ\lambdaλ 是 SSS 的二重特征值,我们能够且一定可以找出两个标准正交的向量。另一个原因是要明白 SVD 是如何选出在 σ2u2v2T\sigma_2\boldsymbol u_2\boldsymbol v_2^Tσ2u2v2T 之前的最大项 σ1u1v1T\sigma_1\boldsymbol u_1\boldsymbol v_1^Tσ1u1v1T。需要理解的是 SSS 的特征值 λ\lambdaλ 和 AAA 的奇异值 σ\sigmaσ,而不只是求出它们。
从 SSS 最大的特征值 λ1\lambda_1λ1 开始,它解决了下面的这个问题:
λ1=max xTSxxTx\pmb{\lambda_1=\textrm{max}\,\displaystyle\frac{\boldsymbol x^TS\boldsymbol x}{\boldsymbol x^T\boldsymbol x}}λ1=maxxTxxTSx,这个向量是 x=q1\boldsymbol x=\boldsymbol q_1x=q1,且 Sq1=λ1q1S\boldsymbol q_1=\lambda_1\boldsymbol q_1\kern 20ptSq1=λ1q1(7.2.8)
\,
对比 AAA 最大的奇异值 σ1\sigma_1σ1,它解决的这个问题是:
σ1=max∣∣Ax∣∣∣∣x∣∣\pmb{\sigma_1=\max\displaystyle\frac{||A\boldsymbol x||}{||\boldsymbol x||}}σ1=max∣∣x∣∣∣∣Ax∣∣,这个向量是 x=v1\boldsymbol x=\boldsymbol v_1x=v1 且 Av1=σ1u1A\boldsymbol v_1=\sigma_1\boldsymbol u_1\kern 20ptAv1=σ1u1(7.2.9)
从式(7.2.8)可以推出(7.2.9),由于 S=ATAS=A^TAS=ATA,所以 xTSxxTx=xTATAxxTx=(Ax)T(Ax)xTx=∣∣Ax∣∣2∣∣x∣∣2=σ2\displaystyle\frac{\boldsymbol x^TS\boldsymbol x}{\boldsymbol x^T\boldsymbol x}=\frac{\boldsymbol x^TA^TA\boldsymbol x}{\boldsymbol x^T\boldsymbol x}=\frac{(A\boldsymbol x)^T(A\boldsymbol x)}{\boldsymbol x^T\boldsymbol x}=\frac{||A\boldsymbol x||^2}{||\boldsymbol x||^2}=\sigma^2xTxxTSx=xTxxTATAx=xTx(Ax)T(Ax)=∣∣x∣∣2∣∣Ax∣∣2=σ2。
这个一次找到一个值的方法也可以适用于 λ2\lambda_2λ2 和 σ2\sigma_2σ2,但是并不是任意的 x\boldsymbol xx 都可以:
λ2=maxxTSxxTx\pmb{\lambda_2=\max\displaystyle\frac{\boldsymbol x^TS\boldsymbol x}{\boldsymbol x^T\boldsymbol x}}λ2=maxxTxxTSx,其中 x\boldsymbol xx 满足 q1Tx=0\boldsymbol q_1^T\boldsymbol x=0q1Tx=0,最大的是 x=q2\boldsymbol x=\boldsymbol q_2\kern 20ptx=q2(7.2.10)
\,
σ2=max∣∣Ax∣∣∣∣x∣∣\pmb{\sigma_2=\max\displaystyle\frac{||A\boldsymbol x||}{||\boldsymbol x||}}σ2=max∣∣x∣∣∣∣Ax∣∣,其中 x\boldsymbol xx 满足 v1Tx=0\boldsymbol v_1^T\boldsymbol x=0v1Tx=0,最大的是 x=v2\boldsymbol x=\boldsymbol v_2\kern 20ptx=v2(7.2.11)
当 S=ATAS=A^TAS=ATA 时,可以得到 λ1=σ12\lambda_1=\sigma_1^2λ1=σ12 和 λ2=σ22\lambda_2=\sigma_2^2λ2=σ22,为什么这个方法会成功呢?
从比值 r(x)=xTSxxTxr(\boldsymbol x)=\displaystyle\frac{\boldsymbol x^TS\boldsymbol x}{\boldsymbol x^T\boldsymbol x}r(x)=xTxxTSx 开始,这个称为瑞利商(Rayleigh quotient),要求 r(x)r(\boldsymbol x)r(x) 的最大值,要令其偏导数为零:∂r∂xi=0,i=1,2,⋯ ,n\displaystyle\frac{\partial r}{\partial x_i}=0,i=1,2,\cdots,n∂xi∂r=0,i=1,2,⋯,n。这些导数的求解比较困难,下面是结果:瑞利商最大时的向量 x\boldsymbol xx:当 Sx=r(x)x 时,r(x)=xTSxxTx 的偏导数全为零(7.2.12)当\,S\boldsymbol x=r(\boldsymbol x)\boldsymbol x\,时,\pmb{r(\boldsymbol x)=\frac{\boldsymbol x^TS\boldsymbol x}{\boldsymbol x^T\boldsymbol x}\,的偏导数全为零}\kern 20pt(7.2.12)当Sx=r(x)x时,r(x)=xTxxTSx的偏导数全为零(7.2.12)所以向量 x\boldsymbol xx 是 SSS 的特征向量,最大的比值 r(x)r(\boldsymbol x)r(x) 就是 SSS 最大的特征值 λ1\lambda_1λ1。下面转而讨论 AAA —— 注意它和 S=ATAS=A^TAS=ATA 的联系!最大化 ∣∣Ax∣∣∣∣x∣∣,也会最大化 (∣∣Ax∣∣∣∣x∣∣)2=xTATAxxTx=xTSxxx最大化\,\frac{||A\boldsymbol x||}{||\boldsymbol x||},也会最大化\,\Big(\frac{||A\boldsymbol x||}{||\boldsymbol x||}\Big)^2=\frac{\boldsymbol x^TA^TA\boldsymbol x}{\boldsymbol x^T\boldsymbol x}=\frac{\boldsymbol x^TS\boldsymbol x}{\boldsymbol x\boldsymbol x}最大化∣∣x∣∣∣∣Ax∣∣,也会最大化(∣∣x∣∣∣∣Ax∣∣)2=xTxxTATAx=xxxTSx所以式(7.2.9)中 x=v1\boldsymbol x=\boldsymbol v_1x=v1 与式(7.2.8)中 S=ATAS=A^TAS=ATA 最前面的特征向量 q1\boldsymbol q_1q1 相同。
下面解释为什么式(7.2.10)和(7.2.11)中的向量为什么是 q2\boldsymbol q_2q2 和 v2\boldsymbol v_2v2。它们分别与 q1\boldsymbol q_1q1 和 v1\boldsymbol v_1v1 正交,因此是在考虑范围内。
任意的正交向量 Q1Q_1Q1 的首列是 q1\boldsymbol q_1q1,剩余的 n−1n-1n−1 个标准正交列都与 q1\boldsymbol q_1q1 正交,使用 Sq1=λ1q1S\boldsymbol q_1=\lambda_1\boldsymbol q_1Sq1=λ1q1:SQ1=S[q1q2⋯qn]=[q1q2⋯qn][λ1wT0Sn−1]=Q1[λ1wT0Sn−1](7.2.13)SQ_1=S\begin{bmatrix}\boldsymbol q_1&\boldsymbol q_2&\cdots&\boldsymbol q_n\end{bmatrix}=\begin{bmatrix}\boldsymbol q_1&\boldsymbol q_2&\cdots&\boldsymbol q_n\end{bmatrix}\begin{bmatrix}\lambda_1&\boldsymbol w^T\\\boldsymbol 0&S_{n-1}\end{bmatrix}=Q_1\begin{bmatrix}\lambda_1&\boldsymbol w^T\\\boldsymbol 0&S_{n-1}\end{bmatrix}\kern 15pt(7.2.13)SQ1=S[q1q2⋯qn]=[q1q2⋯qn][λ10wTSn−1]=Q1[λ10wTSn−1](7.2.13)其中 wT\boldsymbol w^TwT 表示的是 SSS 作用于 q1\boldsymbol q_1q1,Sn−1S_{n-1}Sn−1 是降维后的矩阵,利用矩阵的乘法,将它们乘开,第一列即 λ1q1\lambda_1\boldsymbol q_1λ1q1,后面的即为 wTq1+Sn−1[q2⋯qn]\boldsymbol w^T\boldsymbol q_1+S_{n-1}\begin{bmatrix}\boldsymbol q_2&\cdots&\boldsymbol q_n\end{bmatrix}wTq1+Sn−1[q2⋯qn]。再用 Q1TQ_1^TQ1T 左乘上式,注意到 Q1TQ1=IQ_1^TQ_1=IQ1TQ1=I,且 Q1TSQ1Q_1^TSQ_1Q1TSQ1 是像 SSS 一样的对称矩阵:对称矩阵 Q1TSQ1=[λ1wT0Sn−1]将强制 w=0 且 Sn−1T=Sn−1对称矩阵\,Q_1^TSQ_1=\begin{bmatrix}\lambda_1&\boldsymbol w^T\\\boldsymbol 0&S_{n-1}\end{bmatrix}将强制\,\boldsymbol w=\boldsymbol 0\,且\,S^T_{n-1}=S_{n-1}对称矩阵Q1TSQ1=[λ10wTSn−1]将强制w=0且Sn−1T=Sn−1根据条件 q1Tx=0\boldsymbol q_1^T\boldsymbol x=0q1Tx=0 将问题(7.2.10)的最大值问题简化成了 n−1n-1n−1 阶的情况,Sn−1S_{n-1}Sn−1 最大的特征值将是 SSS 的第二大特征值,就是 λ2\lambda_2λ2,式(7.2.10)中的向量是特征向量 q2\boldsymbol q_2q2 且 Sq2=λ2q2S\boldsymbol q_2=\lambda_2\boldsymbol q_2Sq2=λ2q2。
继续下去,或者使用数学归纳法,就可以得到所有的特征向量 q1,q2,⋯ ,q2\boldsymbol q_1,\boldsymbol q_2,\cdots,\boldsymbol q_2q1,q2,⋯,q2 和它们对应的特征值 λ1,λ2,⋯ λn\lambda_1,\lambda_2,\cdots\,\lambda_nλ1,λ2,⋯λn,即使存在重复的特征值,谱定理 S=QΛQTS=Q\Lambda Q^TS=QΛQT 也可以被证明。所有的对称矩阵都可被对角化。
类似的,SVD 可以从式(7.2.9)和(7.2.11)中一步一步的得到。下面有一个很重要的问题:实际情况中如何计算 λ\lambdaλ 和 σ\sigmaσ 呢?
七、计算 S 的特征值和 A 的奇异值
AAA 的奇异值 σi\sigma_iσi 是 S=ATAS=A^TAS=ATA 特征值 λi\lambda_iλi 的算术平方根,这个将 SVD 和对称矩阵的特征值问题联系了起来,这个很好;但是我们不想使用 ATAA^TAATA 乘 AAA,因为这个运算非常耗时,这个很不好。
首先想到的是尽可能将 AAA 和 SSS 的元素都变成零,而不改变任何的 σ\sigmaσ 和 λ\lambdaλ。奇异向量和特征向量会改变 —— 这个没有问题。相似矩阵 Q−1SQQ^{-1}SQQ−1SQ 和 SSS 的特征值 λ\lambdaλ 相同,如果 SSS 正交,那么这个矩阵就是 QTSQQ^TSQQTSQ 也是对称的。
对于二阶的对称矩阵可以构造出 2×22\times22×2 的旋转矩阵 QQQ,使得 QTSQQ^TSQQTSQ 是对称的三对角矩阵(symmetric and tridiagonal matrix),它含有大量的零元素,但是旋转无法保证总能得到对角矩阵,所以要想求得 SSS 所有的特征值,需要新的方法。
对于 SVD,和 QTSQQ^TSQQTSQ 相对应的是什么?我们不想改变 AAA 任何的奇异值,那么就是:在 AAA 的两边分别乘上不同的正交矩阵 Q1Q_1Q1 和 Q2Q_2Q2,利用这两个在矩阵 Q1TAQ2Q_1^TAQ_2Q1TAQ2 中生成零元素,而 σ\sigmaσ 不会改变:(Q1TAQ2)T(Q1TAQ2)=Q2TATAQ2=Q2TSQ2得到相同的 σ(A) 和 λ(S)(Q_1^TAQ_2)^T(Q_1^TAQ_2)=Q_2^TA^TAQ_2=Q_2^TSQ_2\kern 10pt得到相同的\,\sigma(A)\,和\,\lambda(S)(Q1TAQ2)T(Q1TAQ2)=Q2TATAQ2=Q2TSQ2得到相同的σ(A)和λ(S)两个自由选取的 QQQ 将可以使得 Q1TAQ2Q_1^TAQ_2Q1TAQ2 为两对角矩阵(bidiagonal matrix),这个完美对应了 QTSQQ^TSQQTSQ 是三对角矩阵,它们之间的联系是:(两对角矩阵)T(两对角矩阵)=三对角矩阵(两对角矩阵)^T(两对角矩阵)=三对角矩阵(两对角矩阵)T(两对角矩阵)=三对角矩阵。
最后要算出对角矩阵 Λ\LambdaΛ 和对角矩阵 Σ\SigmaΣ 的步骤需要更多的新思路,这个也不简单,因为有些要解的 det(S−λI)=0\det(S-\lambda I)=0det(S−λI)=0 是 n=100n=100n=100 或 100010001000 甚至是更多次数的多项式,而我们不可能去求解这些多项式!
LAPACK 中求解 λ\lambdaλ 和 σ\sigmaσ 是使用简单的正交矩阵来逼近 QTSQ=ΛQ^TSQ=\LambdaQTSQ=Λ 和 UTAV=ΣU^TAV=\SigmaUTAV=Σ,当很接近 Λ\LambdaΛ 和 Σ\SigmaΣ 时就停止。
这两步(先是零元素)方法在指令 eig(S) 和 svd(A) 中内置了。
八、主要内容总结
- SVD 将 AAA 分解成 UΣVTU\Sigma V^TUΣVT,共有 rrr 个奇异值 σ1≥σ2≥⋯≥σr>0\sigma_1\geq\sigma_2\geq\cdots\geq\sigma_r>0σ1≥σ2≥⋯≥σr>0.
- 数值 σ12,σ22,⋯ ,σr2\sigma_1^2,\sigma_2^2,\cdots,\sigma_r^2σ12,σ22,⋯,σr2 是 AATAA^TAAT 和 ATAA^TAATA 非零的特征值。
- UUU 和 VVV 的标准正交列是 AATAA^TAAT 和 ATAA^TAATA 的特征向量。
- 这些列包含了矩阵 AAA 四个基本子空间的标准正交基。
- 这些基对角化矩阵 AAA:Avi=σiui, i≤rA\boldsymbol v_i=\sigma_i\boldsymbol u_i,\,i\leq rAvi=σiui,i≤r,即是 AV=UΣ\pmb{AV=U\Sigma}AV=UΣ.
- A=σ1u1v1T+σ2u2v2T+⋯+σrurvrTA=\sigma_1\boldsymbol u_1\boldsymbol v_1^T+\sigma_2\boldsymbol u_2\boldsymbol v_2^T+\cdots+\sigma_r\boldsymbol u_r\boldsymbol v_r^TA=σ1u1v1T+σ2u2v2T+⋯+σrurvrT,其中 σ1\sigma_1σ1 是比值 ∣∣Ax∣∣∣∣x∣∣\displaystyle\frac{||A\boldsymbol x||}{||\boldsymbol x||}∣∣x∣∣∣∣Ax∣∣ 的最大值。
九、例题
【例4】识别出下列将 AAA 分解成列乘行的和的分解方式的类型:1. 正交列u1σ1,u2σ2,⋯ ,urσr乘标准正交行v1T,v2T,⋯ ,vrT2. 标准正交列q1,q2,⋯ ,qr乘三角形矩阵的行r1T,r2T,⋯ ,rrT3. 三角形矩阵的列l1,l2,⋯ ,lr乘三角形矩阵的行u1T,u2T⋯ ,urT\begin{array}{llll}1.\,正交列&\boldsymbol u_1\sigma_1,\boldsymbol u_2\sigma_2,\cdots,\boldsymbol u_r\sigma_r&乘&标准正交行&\boldsymbol v_1^T,\boldsymbol v_2^T,\cdots,\boldsymbol v_r^T\\2.\,标准正交列&\boldsymbol q_1,\boldsymbol q_2,\cdots,\boldsymbol q_r&乘&三角形矩阵的行&\boldsymbol r_1^T,\boldsymbol r_2^T,\cdots,\boldsymbol r_r^T\\3.\,三角形矩阵的列&\boldsymbol l_1,\boldsymbol l_2,\cdots,\boldsymbol l_r&乘&三角形矩阵的行&\boldsymbol u_1^T,\boldsymbol u_2^T\cdots,\boldsymbol u_r^T\end{array}1.正交列2.标准正交列3.三角形矩阵的列u1σ1,u2σ2,⋯,urσrq1,q2,⋯,qrl1,l2,⋯,lr乘乘乘标准正交行三角形矩阵的行三角形矩阵的行v1T,v2T,⋯,vrTr1T,r2T,⋯,rrTu1T,u2T⋯,urTAAA 的秩、主元和奇异值在上述分解中的哪里出现?
解: 这三种分解不管是对理论数学还是应用数学中的线性代数都是基础:
- 奇异值分解 Singular Value Decompositon:A=UΣVT\pmb{A=U\Sigma V^T}A=UΣVT
- 格拉姆-施密特正交化 Gram-Schmidt Orthogonalization:A=QR\pmb{A=QR}A=QR
- 高斯消元法 Gaussian Elimination:A=LU\pmb{A=LU}A=LU
可以将奇异值 σi\pmb{\sigma_i}σi、高度 hi\pmb{h_i}hi 和主元 di\pmb{d_i}di 单独表示:
- A=UΣVTA=U\Sigma V^TA=UΣVT,其中 UUU 和 VVV 的列都是单位向量,rrr 个奇异值 σi\sigma_iσi 在 Σ\SigmaΣ 中.
- A=QHRA=QHRA=QHR,其中 QQQ 的列是单位向量,RRR 中的对角元素都是 111,rrr 个高度 hih_ihi 在 HHH 中.
- A=LDUA=LDUA=LDU,其中 LLL 和 UUU 的对角元素都是 111,rrr 个主元在 DDD 中.
每个 hih_ihi 表示第 iii 列到由第 1,2,⋯ ,i−11,2,\cdots,i-11,2,⋯,i−1 列所形成平面的高度,当 r=m=nr=m=nr=m=n 时,nnn 维的 “平行多面体”(以 AAA 各列为同一顶点处的棱)的体积可以由 A=UΣVT=LDU=QHRA=U\Sigma V^T=LDU=QHRA=UΣVT=LDU=QHR 求得:∣detA∣=∣σi的乘积∣=∣di 的乘积∣=∣hi 的乘积∣\pmb{|\det A|=|\sigma_i 的乘积|=|d_i\,的乘积|=|h_i\,的乘积|}∣detA∣=∣σi的乘积∣=∣di的乘积∣=∣hi的乘积∣【例5】证明 σ1≥∣λ∣max\pmb{\sigma_1\ge|\lambda|_{\textrm{max}}}σ1≥∣λ∣max,最大的奇异值大于或等于所有的特征值。
证明: 由 A=UΣVTA=U\Sigma V^TA=UΣVT,注意到左乘一个正交矩阵并不改变这个向量的长度:∣∣Qx∣∣=∣∣x∣∣||Q\boldsymbol x||=||\boldsymbol x||∣∣Qx∣∣=∣∣x∣∣,这是因为 ∣∣Qx∣∣2=xTQTQx=xTx=∣∣x∣∣2||Q\boldsymbol x||^2=\boldsymbol x^TQ^TQ\boldsymbol x=\boldsymbol x^T\boldsymbol x=||\boldsymbol x||^2∣∣Qx∣∣2=xTQTQx=xTx=∣∣x∣∣2,这个也适用于 Q=UQ=UQ=U 和 Q=VTQ=V^TQ=VT,这两个矩阵的中间是对角矩阵 Σ\SigmaΣ:∣∣Ax∣∣=∣∣UΣVTx∣∣=∣∣ΣVTx∣∣≤σ1∣∣VTx∣∣=σ1∣∣x∣∣(7.2.14)||A\boldsymbol x||=||U\Sigma V^T\boldsymbol x||=||\Sigma V^T\boldsymbol x||\le\sigma_1||V^T\boldsymbol x||=\sigma_1||\boldsymbol x||\kern 20pt(7.2.14)∣∣Ax∣∣=∣∣UΣVTx∣∣=∣∣ΣVTx∣∣≤σ1∣∣VTx∣∣=σ1∣∣x∣∣(7.2.14)特征向量满足 ∣∣Ax∣∣=∣λ∣∣∣x∣∣||A\boldsymbol x||=|\lambda|||\boldsymbol x||∣∣Ax∣∣=∣λ∣∣∣x∣∣,所以式(7.2.14)表明 ∣λ∣∣∣x∣∣≤σ1∣∣x∣∣|\lambda|||\boldsymbol x||\le\sigma_1||\boldsymbol x||∣λ∣∣∣x∣∣≤σ1∣∣x∣∣,所以 ∣λ∣≤σ1\pmb{|\lambda|\le\sigma_1}∣λ∣≤σ1.
取 x=(1,0,⋯ ,0)\boldsymbol x=(1,0,\cdots,0)x=(1,0,⋯,0) 为单位向量,则 AxA\boldsymbol xAx 就是 AAA 的第一列,然后由不等式(7.2.14)可得,这列的长度小于或等于 σ1\sigma_1σ1。所以 AAA 的每个元素都有 ∣aij∣≤σ1|a_{ij}|\le\sigma_1∣aij∣≤σ1.
式(7.2.14)再次证明了 ∣∣Ax∣∣∣∣x∣∣\displaystyle\frac{||A\boldsymbol x||}{||\boldsymbol x||}∣∣x∣∣∣∣Ax∣∣ 的最大值等于 σ1\sigma_1σ1.
在求解 Ax=bA\boldsymbol x=\boldsymbol bAx=b 时,条件数(condition number)σmaxσmin\displaystyle\frac{\sigma_{\textrm{max}}}{\sigma_{\textrm{min}}}σminσmax 控制舍入的误差,如果条件数太大,那么 MATLAB 会警告此时的 x\boldsymbol xx 不可靠。
【例6】使用 MATLAB 中的演示函数 eigshow 的 svd 部分,画出斐波那契矩阵的 vi\boldsymbol v_ivi.Fibonacci matrixA=[1110]\pmb{\textrm{Fibonacci\,matrix}}\kern 15ptA=\begin{bmatrix}1&1\\1&0\end{bmatrix}FibonaccimatrixA=[1110]解:MATLAB 画出图像如下:
当 v1=(1,0),v2=(0,1)\boldsymbol v_1=(1,0),\boldsymbol v_2=(0,1)v1=(1,0),v2=(0,1) 时,Av1A\boldsymbol v_1Av1 和 Av2A\boldsymbol v_2Av2 成某个角度 θ\thetaθ,旋转 90°90°90° 后 v1=(0,1),v2=(−1,0)\boldsymbol v_1=(0,1),\boldsymbol v_2=(-1,0)v1=(0,1),v2=(−1,0),此时 Av1A\boldsymbol v_1Av1 和 Av2A\boldsymbol v_2Av2 的夹角为 π−θπ-\thetaπ−θ,则中间必有 Av1A\boldsymbol v_1Av1 和 Av2A\boldsymbol v_2Av2 垂直的位置,它们就是 u1\boldsymbol u_1u1 和 u2\boldsymbol u_2u2 的方向。