MIT公开课18.06 Gilbert Strang 线性代数 笔记3 - 正定矩阵及其应用

线性代数 专栏收录该内容
3 篇文章 0 订阅

文章目录

第26讲:对称矩阵及正定性

对称矩阵

前面我们学习了矩阵的特征值与特征向量,也了解了一些特殊的矩阵及其特征值、特征向量,特殊矩阵的特殊性应该会反映在其特征值、特征向量中。如马尔科夫矩阵,有一特征值为 1 1 1,本讲介绍(实)对称矩阵。

性质

描述

先提前介绍两个对称矩阵的特性

  1. 特征值为实数;(对比第21讲介绍的旋转矩阵,其特征值为纯虚数)
  2. 特征向量相互正交(或者叫垂直prependicular)(当特征值重复时,特征向量也可以从子空间中选出相互正交正交的向量
    典型的状况是,特征值不重复,特征向量相互正交。

证明

现在我们来证明性质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ˉ2xˉn]x1x2xn=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=aib 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长度的平方。

性质2的证明需看书,此处省略

谱定理,对称矩阵的分解

  • 在通常(可对角化)情况下,一个矩阵可以化为: A = S Λ S − 1 A=S\varLambda S^{-1} A=SΛS1

  • 在矩阵对称的情况下,通过性质2可知,由特征向量组成的矩阵 S S S中的列向量是相互正交的,此时如果我们把特征向量的长度统一化为 1 1 1,就可以得到一组标准正交的特征向量
    则对于对称矩阵有 A = Q Λ Q − 1 A=Q\varLambda Q^{-1} A=QΛQ1,而对于标准正交矩阵,有 Q = Q T Q=Q^T Q=QT,所以对称矩阵可以写为 A = Q Λ Q T (1) A=Q\varLambda Q^T\tag{1} A=QΛQT(1)
    观察 ( 1 ) (1) (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
    ( 1 ) (1) (1)式在数学上叫做谱定理(spectral theorem),谱就是指矩阵特征值的集合(该名称来自光谱,指一些纯事物的集合,就像将特征值分解成为特征值与特征向量)
    在力学上称之为主轴定理(principle axis theorem),从几何上看,它意味着如果给定某种材料,在合适的轴上来看,它就变成对角化的,方向就不会重复。
    拓展这个性质,当 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 2 T ⋮ q 3 T ] = [ q 1   q 2   ⋯   q n ] [ λ 1 q 1 T λ 2 q 2 T ⋮ λ 3 q 3 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_2^T\quad\\\quad \vdots \quad\\\quad q_3^T\quad\end{bmatrix}=\Bigg[q_1\ q_2\ \cdots\ q_n\Bigg]\begin{bmatrix}\quad \lambda_1 q_1^T\quad\\\quad \lambda_2 q_2^T\quad\\\quad \vdots \quad\\\quad \lambda_3 q_3^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λnq1Tq2Tq3T=[q1 q2  qn]λ1q1Tλ2q2Tλ3q3T=λ1q1q1T+λ2q2q2T++λnqnqnT
    (最后一个等式是由第3讲矩阵乘法的列乘以行的方法得到的)
    这个展开式中的 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于是多次投影不变等。
    故有结论:
    每一个对称矩阵是一些列互相垂直的投影矩阵的组合

对称矩阵特征值的符号

在知道对称矩阵的特征值皆为实数后,我们再来讨论这些实数的符号,因为特征值的正负号会影响微分方程的收敛情况(第23讲,需要实部为负的特征值保证收敛)
直接计算特征值会很麻烦
主元的符号与特征向量的符号一致,因此我们可以用消元法取得矩阵的主元,观察主元的符号来确定特征值的符号。

并且还可以将矩阵平移7个单位矩阵,这样特征值平移了7,然后计算平移后矩阵的主元,就可以知道特征值有多少小于7,多少大于7

如果没有行交换,主元乘积 = 特征值乘积,因为他们都等于行列式

正定性

定义

特征值都是正数的对称矩阵是 正定矩阵(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λ=λ28λ+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

早期学习的主元、中期学习的的行列式、后期学习的特征值,我们在这节课和后面几节课将把他们融为一体
在这里插入图片描述
知其一则知其三

这课的高潮是 在后面的课程,会将 n × n n×n n×n矩阵的这三个概念也融为一体,而不仅仅是对称矩阵

第27讲:复数矩阵和快速傅里叶变换

本讲主要介绍复数向量、复数矩阵的相关知识(包括如何做复数向量的点积运算、什么是复数对称矩阵等),以及傅里叶矩阵(最重要的复数矩阵)和快速傅里叶变换。

复数矩阵运算

先介绍复数向量,我们不妨换一个字母符号来表示: z = [ z 1 z 2 ⋮ z n ] z=\begin{bmatrix}z_1\\z_2\\\vdots\\z_n\end{bmatrix} z=z1z2zn,向量的每一个分量都是复数
此时 z z z不再属于 R n \mathbb{R}^n Rn实向量空间,它现在处于 C n \mathbb{C}^n Cn复向量空间。

计算复向量的模

对于实向量,我们计算模只需要计算 ∣ 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=[z1z2zn]z1z2zn=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ˉ2zˉn]z1z2zn,使用向量共轭的转置乘以原向量即可(如向量 [ 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 [1i][1i]=2

我们把共轭转置乘以原向量记为 z H z z^Hz zHz H H H读作埃尔米特(人名为Hermite,形容词为Hermitian)

计算向量的内积

有了复向量模的计算公式,同理可得,对于复向量,内积不再是实向量的 y T x y^Tx yTx形式,复向量内积应为
y H x y^Hx yHx

对称性

对于实矩阵, 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} [23i3+i5]
这是一个复数情况下的对称矩阵,叫做埃尔米特矩阵,有 A H = A A^H=A AH=A

因为转置后对角线元素不变,而取共轭时也不能变,所以对角线元素只能是实数

这种矩阵的特征值是实数,特征向量相互垂直,跟实矩阵的对称矩阵的性质一致

正交性

在第17讲中,我们这样定义标准正交向量: 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

第17讲中的标准正交矩阵: Q = [ q 1   q 2   ⋯   q n ] Q=\Bigg[q_1\ q_2\ \cdots\ q_n\Bigg] Q=[q1 q2  qn],有 Q T Q = I Q^TQ=I QTQ=I,现在对于复矩阵则有 Q H Q = I Q^HQ=I QHQ=I

就像人们给共轭转置起了个“埃尔米特”这个名字一样,正交性(orthogonal)在复数情况下也有了新名字,酉(unitary)
酉矩阵(unitary matrix)与正交矩阵类似,满足 Q H Q = I Q^HQ=I QHQ=I的性质

傅里叶矩阵

傅里叶矩阵是最著名的复矩阵,同时也是酉矩阵

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=11111ww2wn11w2w4w2(n1)1wn1w2(n1)w(n1)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,,n1(注意这里的 i i i是从0开始的)
矩阵中的 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 = 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的幂时, w w w在单位圆上的角度翻倍
比如在 6 6 6阶情形下, w = e i 2 π / 6 w=e^{i2\pi/6} w=ei2π/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阶傅里叶矩阵
    我们现在来看 4 4 4阶傅里叶矩阵,它位于单位圆四分之一处,从x轴逆时针旋转90°
    先计算 w w w,有 w 0 = 1 , w 1 = i ,   w 2 = − 1 ,   w 3 = − i w^0=1,w^1=i,\ w^2=-1,\ w^3=-i w0=1,w1=i, w2=1, w3=i
    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=11111i1i11111i1i
    指数等于行序数乘列序数
    通过这个4阶矩阵可以得到一个四点傅里叶变换(离散),将其作用于四维向量,向量分别左乘 F 4 F_4 F4或者 F 4 − 1 F_4^{-1} F41,一个是傅里叶变换,另一个是傅里叶逆变换

  • F 4 − 1 F_4^{-1} F41
    矩阵的四个列向量正交,我们验证一下第二列和第四列
    c 2 ˉ T c 4 = 1 − 0 + 1 − 0 = 0 \bar{c_2}^Tc_4=1-0+1-0=0 c2ˉTc4=10+10=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=2111111i1i11111i1i
    此时有 F 4 H F 4 = I F_4^HF_4=I F4HF4=I
    于是该矩阵的逆矩阵就是其共轭转置 F 4 H F_4^H F4H
    逆矩阵各列也是正交的

快速傅里叶变换(Fast Fourier transform/FFT)

w 32 w_{32} w32 1 1 1 32 32 32次方根, w 64 w_{64} w64 1 1 1 64 64 64次方根,因此 w 32 w_{32} w32的辐角是 w 64 w_{64} w64的两倍 w 64 = ( e i 2 π / 64 ) 2 = e i 2 π / 32 = w 32 w_{64}=(e^{i2\pi/64})^2=e^{i2\pi/32}=w_{32} w64=(ei2π/64)2=ei2π/32=w32
所以对于傅里叶矩阵, 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 64 F_{64} F64,一般情况下,用一个列向量右乘 F 64 F_{64} F64需要约 6 4 2 64^2 642次数值乘法,显然这个计算量是比较大的
我们想要减少计算量,于是想到分解 F 64 F_{64} F64

分解 F 64 F_{64} F64

[ F 64 ] = [ I 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}I&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]=[IIDD][F3200F32]101010010101

我们从左到右来看等式右侧的这三个矩阵:

  • 第一个矩阵由单位矩阵 I I I和对角矩阵 D = [ 1 w w 2 ⋱ w 31 ] D=\begin{bmatrix}1&&&&\\&w&&&\\&&w^2&&\\&&&\ddots&\\&&&&w^{31}\end{bmatrix} D=1ww2w31组成,我们称这个矩阵为修正矩阵,显然其计算量来自 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 ],这个置换矩阵的计算量也可以忽略不计
    (这里教授似乎在黑板上写错了矩阵,可以参考FFTHow 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 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 ] \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} [I32I32D32D32]I16I16D16D16I16I16D16D16F16F16F16F16 [ P 16 P 16 ] [   P 32   ] \begin{bmatrix}P_{16}&\\&P_{16}\end{bmatrix}\Bigg[\ P_{32}\ \Bigg] [P16P16][ P32 ]

(两个 P 16 P_{16} P16矩阵的作用分别是,先奇偶分开,再将偶数中的奇偶分开,奇数中的奇偶分开,得到偶数中的偶数 0 , 4 , 8 , 12 , 16 0,4,8,12,16 0,4,8,12,16,偶数中的奇数 2 , 6 , 10 , 14 2,6,10,14 2,6,10,14及奇数中的偶数,奇数中的奇数)

2 × 3 2 2 + 32 2\times 32^2+32 2×322+32的计算量进一步分解为 2 × ( 2 × 1 6 2 + 16 ) 2 + 32 2\times (2\times 16^2+16)^2+32 2×(2×162+16)2+32的计算量

复杂度分析

如此递归分解下去,我们最终得到含有一阶傅里叶矩阵的式子

而每一次分解的修正开销都为 32 32 32,共有 log ⁡ 2 64 = 6 \log_264 = 6 log264=6 个修正矩阵,故总开销为 32 × 6 32 \times 6 32×6

由此,对于 n n n阶傅里叶变换,无需 n 2 n^2 n2次乘法,只需 1 2 n log ⁡ 2 n \frac{1}{2}n\log_2n 21nlog2n即可

感受FFT魅力

不妨再看看 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

复矩阵讨论完毕,下一讲回到实数上来,研究特征值、特征向量及至关重要的正定矩阵(这是实际应用中最常见的一种矩阵)

第28讲:正定矩阵和最小值

之后我们会将 主元,行列式,特征值还有新知识 不稳定性 融为一体
本讲我们会了解如何完整的测试一个矩阵是否正定,测试 x T A x x^TAx xTAx是否具有极小值,最后了解正定的几何意义——椭圆(ellipse)和正定性有关,双曲线(hyperbola)与正定无关
另外,本讲涉及的矩阵均为实对称矩阵。

正定性的判断

方法

我们仍然从二阶说起,有矩阵 A = [ a b b c ] A=\begin{bmatrix}a&b\\b&c\end{bmatrix} A=[abbc],判断其正定性有以下方法:

  1. 矩阵的所有特征值大于零则矩阵正定: λ 1 > 0 ,   λ 2 > 0 \lambda_1>0,\ \lambda_2>0 λ1>0, λ2>0
  2. 矩阵的所有顺序主子阵(leading principal submatrix)的行列式(即顺序主子式,leading principal minor)大于零则矩阵正定: a > 0 ,   a c − b 2 > 0 a>0,\ ac-b^2>0 a>0, acb2>0
  3. 矩阵消元后主元均大于零: a > 0 ,   a c − b 2 a > 0 a>0,\ \frac{ac-b^2}{a}>0 a>0, aacb2>0
  4. 对任意 x x x,有 x T A x > 0 x^TAx>0 xTAx>0

大多数情况下使用4来定义正定性,而用前三条来验证正定性。

2 × 2 2 \times 2 2×2阶矩阵举例

来计算一个例子: 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]
det ⁡ A = 0 \det A=0 detA=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)=212+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]

测试正定性

det ⁡ A = 4 \det A=4 detA=4,迹为 t r a c e ( A ) = 22 trace(A)=22 trace(A)=22,特征值均大于零,矩阵可以通过测试

x T A x x^TAx xTAx图像

在这里插入图片描述

此时的函数为 f ( x , y ) = 2 x 2 + 12 x y + 20 y 2 f(x,y)=2x^2+12xy+20y^2 f(x,y)=2x2+12xy+20y2
函数在除 ( 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)点函数的一阶偏导数均为零,二阶偏导数均为正(马鞍面的一阶偏导数也为零,但二阶偏导数并不均为正)所以,函数在该点取极小值

如果令 z = 1 z=1 z=1,相当于使用 z = 1 z=1 z=1平面截取该函数图像,将得到一个椭圆曲线。另外,如果在 ? = 7 ?=7 ?=7的马鞍面上截取曲线将得到一对双曲线。

x T A x x^TAx xTAx函数表达式分析

在本例中(即二阶情形),如果能用平方和的形式来表示函数,则很容易看出函数是否恒为正
使用配方法得 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)211y2
如果是 ? = 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

A = L U A=LU A=LU和配方法系数的联系

再来看这个矩阵的消元, [ 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]=[1301][2062]
这就是 A = L U A=LU A=LU,可以发现矩阵 L L L中的项与配平方中未知数的系数有关,而 U U U的主元则与两个平方项外的系数有关,这也就是为什么正数主元得到正定矩阵。

二阶偏导数矩阵

在微积分中,一元函数取极小值需要一阶导数为零且二阶导数为正 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),要取极小值需要二阶偏导数矩阵为正定矩阵

根据微积分的知识,对于含两个变量的函数,某点存在极小值条件是
1.该点一阶导数为0
2.该点二阶导数大于0
3.该点有 f x x × f y y > f x y 2 f_{xx} \times f_{yy} > f_{xy}^2 fxx×fyy>fxy2

二阶偏导数矩阵型为

A = [ f x x f x y f y x f y y ] A=\begin{bmatrix}f_{xx}&f_{xy}\\f_{yx}&f_{yy}\end{bmatrix} A=[fxxfyxfxyfyy]

为了满足极小值存在的条件2,3,需要两点:
1.矩阵中的主对角线元素(纯二阶导数)必须为正
2.主对角线元素必须足够大来抵消混合导数的影响
(因为二阶导数的求导次序并不影响结果,所以矩阵是对称的)

结合这两点,极小值判定条件2,3可以合并为:二阶偏导数矩阵必须是正定矩阵

至此,我们可以计算 n × n n\times n n×n阶矩阵了

3 × 3 3 \times 3 3×3阶矩阵举例

接下来计算一个三阶矩阵, 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=210121012
它是正定的吗?函数 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=22 ,λ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+2x322x1x22x2x3,函数表达式在除 ( 0 , 0 , 0 (0,0,0 (0,0,0点外,其他点均大于0
  • 图像是四维的抛物面
    当我们在 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(因为是对称矩阵的对角化,所以可以用矩阵的转置替代逆)( Q Q Q:特征向量矩阵, Λ \Lambda Λ特征值矩阵)
我们把这个分解称为主轴定理(principal axis theorem),即特征向量说明主轴的方向、特征值说明主轴的长度。

这个 矩阵分解 是目前特征值理论中最重要的分解

第29讲:相似矩阵和若尔当形

正定矩阵

在本讲的开始,先接着上一讲来继续说一说正定矩阵。

正定性把以前的内容都串联起来

  • 正定矩阵的逆矩阵也是正定矩阵
    证明:
    我们将正定矩阵分解为 A = S Λ S − 1 A=S\Lambda S^{-1} A=SΛS1,引入其逆矩阵 A − 1 = S Λ − 1 S − 1 A^{-1}=S\Lambda^{-1}S^{-1} A1=SΛ1S1
    正定矩阵的特征值均为正值,所以其逆矩阵的特征值也必为正值(即原矩阵特征值的倒数)
    所以,正定矩阵的逆矩阵也是正定的。

  • A ,   B A,\ B A, B均为正定矩阵,那么 A + B A+B A+B也为正定矩阵
    证明:
    我们可以从判定 x T ( A + B ) x > 0 x^T(A+B)x>0 xT(A+B)x>0入手
    根据条件有 x T A x > 0 ,   x T B x > 0 x^TAx>0,\ x^TBx>0 xTAx>0, xTBx>0
    将两式相加即得到 x T ( A + B ) x > 0 x^T(A+B)x>0 xT(A+B)x>0
    x T A x + x T B x = x T ( A x + B x ) = x T ( A + B ) x x^TAx+x^TBx = x^T(Ax+Bx) = x^T(A+B)x xTAx+xTBx=xT(Ax+Bx)=xT(A+B)x
    所以正定矩阵之和也是正定矩阵。

  • m × n m\times n m×n矩阵 A A A A A A各列线性无关,则 A T A A^TA ATA正定
    最小二乘法得到的 A T A A^TA ATA(是对称矩阵,方阵)
    用数字打比方就像是一个平方,用向量打比方就像是向量的长度平方,而对于矩阵,有 A T A A^TA ATA正定
    证明:
    在式子两边分别乘 x T x^T xT得到 x T A T A x > 0 x^TA^TAx>0 xTATAx>0
    分组得到 ( A x ) T ( A x ) > 0 (Ax)^T(Ax)>0 (Ax)T(Ax)>0
    相当于得到了向量 A x Ax Ax的长度平方, ∣ A x ∣ 2 ≥ 0 |Ax|^2\geq0 Ax20
    x ≠ 0 x≠0 x=0时, ∣ A x ∣ 2 > 0 |Ax|^2>0 Ax2>0,则需要 A x Ax Ax的零空间中仅有零向量
    A A A的各列线性无关时,( A A A各列线性相关则半正定)即可保证在 x ≠ 0 x≠0 x=0时, ∣ A x ∣ 2 > 0 |Ax|^2>0 Ax2>0 A T A A^TA ATA正定
    (可联系16讲 A T A A^TA ATA可逆的证明)

  • A T A A^TA ATA是正定矩阵为计算提供了很多便利
    在矩阵数值计算中,正定矩阵消元不需要进行“行交换”操作,也不必担心主元过小或为零,正定矩阵具有良好的计算性质

接下来进入本讲的正题

相似矩阵

定义

A , B A,B AB是两个 n × n n\times n n×n矩阵,对于某矩阵 M M M满足 B = M − 1 A M B=M^{-1}AM B=M1AM时,称 A ,   B A,\ B A, B互为相似矩阵。

例子

特征值无重复

对于在对角化一讲(第二十二讲)中学过的式子 S − 1 A S = Λ S^{-1}AS=\Lambda S1AS=Λ,则有 A A A相似于 Λ \Lambda Λ

  • 举个例子, A = [ 2 1 1 2 ] A=\begin{bmatrix}2&1\\1&2\end{bmatrix} A=[2112]
    容易通过迹和行列式得到相应的对角矩阵 Λ = [ 3 0 0 1 ] \Lambda=\begin{bmatrix}3&0\\0&1\end{bmatrix} Λ=[3001]
    另外,可以随意构造一个矩阵 M = [ 1 4 0 1 ] M=\begin{bmatrix}1&4\\0&1\end{bmatrix} M=[1041]
    B = M − 1 A M = [ 1 − 4 0 1 ] [ 2 1 1 2 ] [ 1 4 0 1 ] = [ − 2 − 15 1 6 ] B=M^{-1}AM=\begin{bmatrix}1&-4\\0&1\end{bmatrix}\begin{bmatrix}2&1\\1&2\end{bmatrix}\begin{bmatrix}1&4\\0&1\end{bmatrix}=\begin{bmatrix}-2&-15\\1&6\end{bmatrix} B=M1AM=[1041][2112][1041]=[21156]
    我们来计算这几个矩阵的的特征值(利用迹与行列式的性质), λ Λ = 3 ,   1 \lambda_{\Lambda}=3,\ 1 λΛ=3, 1 λ A = 3 ,   1 \lambda_A=3,\ 1 λA=3, 1 λ B = 3 ,   1 \lambda_B=3,\ 1 λB=3, 1

对角阵的特征向量矩阵为 单位矩阵:
S S S I I I时满足 S − 1 Λ S = Λ S^{-1}\Lambda S=\Lambda S1ΛS=Λ

上三角矩阵求逆:
用分块矩阵方法求逆
A = [ B C 0 D ] A=\begin{bmatrix}B&C\\0&D\end{bmatrix} A=[B0CD]
B , D B,D B,D可逆时 A A A也可逆, 且
A − 1 = [ B − 1 B − 1 C D − 1 0 D − 1 ] A^{-1} = \begin{bmatrix}B^{-1}&B^{-1}CD^{-1}\\0&D^{-1}\end{bmatrix} A1=[B10B1CD1D1]

可得结论:相似矩阵有相同的特征值。

  • 继续上面的例子,特征值为 3 ,   1 3,\ 1 3, 1的这一族矩阵都是相似矩阵,如 [ 3 7 0 1 ] \begin{bmatrix}3&7\\0&1\end{bmatrix} [3071] [ 1 7 0 3 ] \begin{bmatrix}1&7\\0&3\end{bmatrix} [1073],其中最特殊的是 Λ \Lambda Λ

现在我们来证明这个结论:
A x = λ x ,   B = M − 1 A M Ax=\lambda x,\ B=M^{-1}AM Ax=λx, B=M1AM
第一个式子化为 A M M − 1 x = λ x AMM^{-1}x=\lambda x AMM1x=λx
接着两边同时左乘 M − 1 M^{-1} M1 M − 1 A M M − 1 x = λ M − 1 x M^{-1}AMM^{-1}x=\lambda M^{-1}x M1AMM1x=λM1x
进行适当的划分得 ( M − 1 A M ) M − 1 x = λ M − 1 x \left(M^{-1}AM\right)M^{-1}x=\lambda M^{-1}x (M1AM)M1x=λM1x
B M − 1 x = λ M − 1 x BM^{-1}x=\lambda M^{-1}x BM1x=λM1x

B M − 1 = λ M − 1 x BM^{-1}=\lambda M^{-1}x BM1=λM1x可得
结论: B B B的特征值也为 λ \lambda λ,而特征向量变为 M − 1 x M^{-1}x M1x

以上就是我们得到的一组特征值为 3 ,   1 3,\ 1 3, 1的矩阵,它们具有相同的特征值。接下来看特征值重复时的情形。

特征值有重复

  • 特征值重复可能会导致特征向量短缺
    来看一个例子,设 λ 1 = λ 2 = 4 \lambda_1=\lambda_2=4 λ1=λ2=4
    写出具有这种特征值的两个矩阵 [ 4 0 0 4 ] \begin{bmatrix}4&0\\0&4\end{bmatrix} [4004] [ 4 1 0 4 ] \begin{bmatrix}4&1\\0&4\end{bmatrix} [4014]
    其实,具有这种特征值的矩阵可以分为两族
    1.第一族仅有一个矩阵 [ 4 0 0 4 ] \begin{bmatrix}4&0\\0&4\end{bmatrix} [4004],它只与自己相似
    (因为 M − 1 [ 4 0 0 4 ] M = 4 M − 1 I M = 4 I = [ 4 0 0 4 ] M^{-1}\begin{bmatrix}4&0\\0&4\end{bmatrix}M=4M^{-1}IM=4I=\begin{bmatrix}4&0\\0&4\end{bmatrix} M1[4004]M=4M1IM=4I=[4004],所以无论 M M M如何取值该对角矩阵都只与自己相似)
    2.另一族就是剩下的诸如 [ 4 1 0 4 ] \begin{bmatrix}4&1\\0&4\end{bmatrix} [4014]的矩阵,它们都是相似的
    它们只有一个特征向量,因此它们不能对角化
    在这个“大家族”中, [ 4 1 0 4 ] \begin{bmatrix}4&1\\0&4\end{bmatrix} [4014]是“最好”的一个矩阵,称为若尔当标准形

  • 继续上面的例子,我们在给出几个这一族的矩阵 [ 4 1 0 4 ] ,   [ 5 1 − 1 3 ] ,   [ 4 0 17 4 ] \begin{bmatrix}4&1\\0&4\end{bmatrix},\ \begin{bmatrix}5&1\\-1&3\end{bmatrix},\ \begin{bmatrix}4&0\\17&4\end{bmatrix} [4014], [5113], [41704],我们总是可以构造出一个满足 t r a c e ( A ) = 8 ,   det ⁡ A = 16 trace(A)=8,\ \det A=16 trace(A)=8, detA=16的矩阵,这些矩阵总是在这一个“家族”中

对于无法对角化的矩阵,我们都可以通过特殊的方法完成近似“对角化”,变成若尔当标准形

若尔当形在过去是线性代数的核心知识,但现在不是了(现在是下一讲的奇异值分解),因为它并不容易计算。

若尔当形

仅仅是特征向量的数目相同还不够
我们再来看一个更加“糟糕”的例子:特征向量数目也相同但不相似

  • 矩阵 [ 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 ] \begin{bmatrix}0&1&0&0\\0&0&1&0\\0&0&0&0\\0&0&0&0\end{bmatrix} 0000100001000000
    其特征值为四个 0 0 0
    很明显矩阵的秩为 2 2 2,所以其零空间的维数为 4 − 2 = 2 4-2=2 42=2,即该矩阵有两个特征向量
    在所有的 对角线上方第一个元素,每让一个 0 0 0变为 1 1 1,特征向量个数就减少一个。可以发现这个矩阵有两个 1 1 1,特征向量个数减2

  • 矩阵 [ 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 ] \begin{bmatrix}0&1&0&0\\0&0&0&0\\0&0&0&1\\0&0&0&0\end{bmatrix} 0000100000000010
    从特征向量的数目看来这两个矩阵是相似的,其实不然。

    若尔当认为第一个矩阵是由一个 3 × 3 3\times 3 3×3的块与一个 1 × 1 1\times 1 1×1的块组成的
    [ 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 ] \left[\begin{array}{ccc|c}0&1&0&0\\0&0&1&0\\0&0&0&0\\\hline0&0&0&0\end{array}\right] 0000100001000000
    而第二个矩阵是由两个 2 × 2 2\times 2 2×2矩阵组成的
    [ 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 ] \left[\begin{array}{cc|cc}0&1&0&0\\0&0&0&0\\\hline0&0&0&1\\0&0&0&0\end{array}\right] 0000100000000010
    这些分块被称为若尔当块。

若尔当块 i i i阶的若尔当块 J i J_i Ji,只有一个重复的特征值 λ i \lambda_i λi,仅有一个特征向量

在这里插入图片描述
上面的例子中,虽然特征向量的数目相同,但是分块的大小不同,我们便认为这两个矩阵不相似

若尔当定理
每一个矩阵 A A A都相似于一个若尔当阵
J = [ J 1 J 2 ⋱ J d ] J=\left[\begin{array}{c|c|c|c}J_1&&&\\\hline&J_2&&\\\hline&&\ddots&\\\hline&&&J_d\end{array}\right] J=J1J2Jd
若尔当块个数=矩阵特征向量个数(每一块对应一个特征向量)

n n n阶方阵有 n n n个不同的特征值时
它可以对角化,所以它的若尔当矩阵就是 Λ \Lambda Λ,共 n n n个特征向量,有 n n n个若尔当块。
这是我们关注的情况
特征值重复的情况我们不怎么重视(求若尔当阵比较困难,这里没有给出)

不过我们最关心的还是正定矩阵

第30讲:奇异值分解(SVD)

SVD是矩阵最终和最好的分解

本讲我们介绍将一个矩阵分解为 A = U Σ V T A=U\varSigma V^T A=UΣVT
分解的因子分别为正交矩阵、对角矩阵、正交矩阵
与前面几讲的分解不同的是,这两个正交矩阵通常是不同的,而且这个式子可以对任意矩阵使用,不限于方阵、可对角化的方阵等

对比之前的分解

  • 正定矩阵分解:
    在正定一讲中(第28讲)我们知道一个正定矩阵可以分解为 A = Q Λ Q T A=Q\Lambda Q^T A=QΛQT的形式
    由于 A A A的对称性,其特征向量是正交的。并且 Λ \Lambda Λ矩阵中的元素皆为正,这就是正定矩阵的奇异值分解
    在这种特殊的分解中,我们只需要一个正交矩阵 Q Q Q就可以使等式成立。

  • 矩阵对角化:
    在对角化一讲中(第22讲),我们知道可对角化的矩阵能够分解为 A = S Λ S T A=S\Lambda S^T A=SΛST的形式
    其中 S S S的列向量由 A A A的特征向量组成,但 S S S并不是正交矩阵,所以这不是我们希望得到的奇异值分解

理论概述

我们现在要做的是
A A A的列空间中找到一组标准正交基 v 1 , v 2 , ⋯   , v r v_1,v_2,\cdots,v_r v1,v2,,vr
这组基在 A A A的作用下可以转换为 A A A的行空间中的一组标准正交基 u 1 , u 2 , ⋯   , u r u_1,u_2,\cdots,u_r u1,u2,,ur

用矩阵语言描述为
A [ v 1   v 2   ⋯   v r ] = [ σ 1 u 1   σ 2 u 2   ⋯   σ r u r ] = [ u 1   u 2   ⋯   u r ] [ σ 1 σ 2 ⋱ σ n ] A\Bigg[v_1\ v_2\ \cdots\ v_r\Bigg]=\Bigg[\sigma_1u_1\ \sigma_2u_2\ \cdots\ \sigma_ru_r\Bigg]=\Bigg[u_1\ u_2\ \cdots\ u_r\Bigg]\begin{bmatrix}\sigma_1&&&\\&\sigma_2&&\\&&\ddots&\\&&&\sigma_n\end{bmatrix} A[v1 v2  vr]=[σ1u1 σ2u2  σrur]=[u1 u2  ur]σ1σ2σn
A v 1 = σ 1 u 1 ,   A v 2 = σ 2 u 2 , ⋯   , A v r = σ r u r Av_1=\sigma_1u_1,\ Av_2=\sigma_2u_2,\cdots,Av_r=\sigma_ru_r Av1=σ1u1, Av2=σ2u2,,Avr=σrur,其中 σ \sigma σ是缩放因子,而在 A A A的左零空间和零空间体现是 σ \sigma σ 0 0 0

另外,如果算上左零、零空间,我们同样可以对左零、零空间取标准正交基,然后写为

A [ v 1   v 2   ⋯   v r   v r + 1   ⋯   v m ] = [ u 1   u 2   ⋯   u r   u r + 1   ⋯   u n ] [ σ 1 ⋱ σ r [ 0 ] ] A\Bigg[v_1\ v_2\ \cdots\ v_r\ v_{r+1}\ \cdots\ v_m\Bigg]=\Bigg[u_1\ u_2\ \cdots\ u_r\ u_{r+1}\ \cdots \ u_n\Bigg]\left[\begin{array}{c c c|c}\sigma_1&&&\\&\ddots&&\\&&\sigma_r&\\\hline&&&\begin{bmatrix}0\end{bmatrix}\end{array}\right] A[v1 v2  vr vr+1  vm]=[u1 u2  ur ur+1  un]σ1σr[0]

此时 U U U m × m m\times m m×m正交矩阵, Σ \varSigma Σ m × n m\times n m×n对角矩阵, V T V^T VT n × n n\times n n×n正交矩阵。

最终可以写为 A V = U Σ AV=U\varSigma AV=UΣ
可以看出这十分类似对角化的公式:矩阵 A A A被转化为对角矩阵 Σ \varSigma Σ,我们也注意到 U ,   V U,\ V U, V是两组不同的正交基(在正定的情况下, U ,   V U,\ V U, V都变成了 Q Q Q
进一步可以写作 A = U Σ V − 1 A=U\varSigma V^{-1} A=UΣV1,因为 V V V是标准正交矩阵所以还可写为 A = U Σ V T A=U\varSigma V^T A=UΣVT

例子

N ( A ) N(A) N(A)只有零向量

目标

分解 A = [ 4 4 − 3 3 ] A=\begin{bmatrix}4&4\\-3&3\end{bmatrix} A=[4343],我们需要找到:

  • 行空间 R 2 \mathbb{R}^2 R2的标准正交基 v 1 , v 2 v_1,v_2 v1,v2
  • 列空间 R 2 \mathbb{R}^2 R2的标准正交基 u 1 , u 2 u_1,u_2 u1,u2
  • σ 1 > 0 , σ 2 > 0 \sigma_1>0, \sigma_2>0 σ1>0,σ2>0

思路

A = U Σ V T A=U\varSigma V^T A=UΣVT中有两个标准正交矩阵需要求解,我们希望一次只解一个,如何先将 U U U消去来求 V V V

这个技巧经常出现在长方形矩阵中(最小二乘法):求 A T A A^TA ATA
这是一个对称正定矩阵(至少是半正定矩阵)
于是有 A T A = V Σ T U T U Σ V T A^TA=V\varSigma^TU^TU\varSigma V^T ATA=VΣTUTUΣVT
由于 U U U是标准正交矩阵,所以 U T U = I U^TU=I UTU=I
Σ T Σ \varSigma^T\varSigma ΣTΣ是对角线元素为 σ 2 \sigma^2 σ2的对角矩阵

现在有 A T A = V [ σ 1 2 σ 2 2 ⋱ σ n 2 ] V T A^TA=V\begin{bmatrix}\sigma_1^2&&&\\&\sigma_2^2&&\\&&\ddots&\\&&&\sigma_n^2\end{bmatrix}V^T ATA=Vσ12σ22σn2VT
所以 V V V即是 A T A A^TA ATA的特征向量矩阵而 Σ 2 \varSigma^2 Σ2 A T A A^TA ATA的特征值矩阵

同理,我们只想求 U U U时,用 A A T AA^T AAT消掉 V V V即可。

具体计算

求解 Σ \varSigma Σ V T V^T VT

我们来计算 A T A = [ 4 − 3 4 3 ] [ 4 4 − 3 3 ] = [ 25 7 7 25 ] A^TA=\begin{bmatrix}4&-3\\4&3\end{bmatrix}\begin{bmatrix}4&4\\-3&3\end{bmatrix}=\begin{bmatrix}25&7\\7&25\end{bmatrix} ATA=[4433][4343]=[257725]
对于简单的矩阵,特征向量可以直接观察得到: A T A [ 1 1 ] = 32 [ 1 1 ] ,   A T A [ 1 − 1 ] = 18 [ 1 − 1 ] A^TA\begin{bmatrix}1\\1\end{bmatrix}=32\begin{bmatrix}1\\1\end{bmatrix},\ A^TA\begin{bmatrix}1\\-1\end{bmatrix}=18\begin{bmatrix}1\\-1\end{bmatrix} ATA[11]=32[11], ATA[11]=18[11]
化为单位向量有 σ 1 = 32 ,   v 1 = [ 1 2 1 2 ] ,   σ 2 = 18 ,   v 2 = [ 1 2 − 1 2 ] \sigma_1=32,\ v_1=\begin{bmatrix}\frac{1}{\sqrt{2}}\\\frac{1}{\sqrt{2}}\end{bmatrix},\ \sigma_2=18,\ v_2=\begin{bmatrix}\frac{1}{\sqrt{2}}\\-\frac{1}{\sqrt{2}}\end{bmatrix} σ1=32, v1=[2 12 1], σ2=18, v2=[2 12 1]

到目前为止,我们得到 [ 4 4 − 3 3 ] = [ u ? u ? u ? u ? ] [ 32 0 0 18 ] [ 1 2 1 2 1 2 − 1 2 ] \begin{bmatrix}4&4\\-3&3\end{bmatrix}=\begin{bmatrix}u_?&u_?\\u_?&u_?\end{bmatrix}\begin{bmatrix}\sqrt{32}&0\\0&\sqrt{18}\end{bmatrix}\begin{bmatrix}\frac{1}{\sqrt{2}}&\frac{1}{\sqrt{2}}\\\frac{1}{\sqrt{2}}&-\frac{1}{\sqrt{2}}\end{bmatrix} [4343]=[u?u?u?u?][32 0018 ][2 12 12 12 1]

求解 U U U

接下来继续求解 U U U

A A T = U Σ V T V Σ T U T = U Σ 2 U T AA^T=U\varSigma V^TV\varSigma^TU^T=U\varSigma^2U^T AAT=UΣVTVΣTUT=UΣ2UT,求出 A A T AA^T AAT的特征向量即可得到 U U U

[ 4 4 − 3 3 ] [ 4 − 3 4 3 ] = [