MIT公开课18.06 Gilbert Strang 线性代数 笔记2 - 最小二乘法,行列式和特征值

文章目录

第14讲:正交向量与子空间

正交向量

对于向量 x , y x, y x,y,当 x T ⋅ y = 0 x^T \cdot y=0 xTy=0 x 1 y 1 + x 2 y x + ⋯ + x n y n = 0 x_1y_1+x_2y_x+\cdots+x_ny_n=0 x1y1+x2yx++xnyn=0时,有向量 x , y x, y x,y正交(vector orthogonal)。

毕达哥拉斯定理(Pythagorean theorem)中提到,直角三角形的三条边满足:

∥ x → ∥ 2 + ∥ y → ∥ 2 = ∥ x + y → ∥ 2 x T x + y T y = ( x + y ) T ( x + y ) x T x + y T y = x T x + y T y + x T y + y T x 0 = x T y + y T x 对 于 向 量 点 乘 , x T y = y T x 0 = 2 x T y x T y = 0 \begin{aligned} \left\|\overrightarrow{x}\right\|^2+\left\|\overrightarrow{y}\right\|^2 &= \left\|\overrightarrow{x+y}\right\|^2 \\ x^Tx+y^Ty &= (x+y)^T(x+y) \\ x^Tx+y^Ty &= x^Tx+y^Ty+x^Ty+y^Tx \\ 0 &= x^Ty+y^Tx \qquad 对于向量点乘,x^Ty=y^Tx \\ 0 &= 2x^Ty \\ x^Ty &=0 \end{aligned} x 2+y 2xTx+yTyxTx+yTy00xTy=x+y 2=(x+y)T(x+y)=xTx+yTy+xTy+yTx=xTy+yTxxTy=yTx=2xTy=0

由此得出,两正交向量的点积为 0 0 0。另外, x , y x, y x,y可以为 0 0 0向量,由于 0 0 0向量与任意向量的点积均为零,所以 0 0 0向量与任意向量正交。

举个例子:
x = [ 1 2 3 ] , y = [ 2 − 1 0 ] , x + y = [ 3 1 3 ] x=\begin{bmatrix}1\\2\\3\end{bmatrix}, y=\begin{bmatrix}2\\-1\\0\end{bmatrix}, x+y=\begin{bmatrix}3\\1\\3\end{bmatrix} x=123,y=210,x+y=313,有 ∥ x → ∥ 2 = 14 , ∥ y → ∥ 2 = 5 , ∥ x + y → ∥ 2 = 19 \left\| \overrightarrow{x} \right\|^2=14, \left\| \overrightarrow{y} \right\|^2=5, \left\| \overrightarrow{x+y} \right\|^2=19 x 2=14,y 2=5,x+y 2=19,而 x T y = 1 × 2 + 2 × ( − 1 ) + 3 × 0 = 0 x^Ty=1\times2+2\times (-1)+3\times0=0 xTy=1×2+2×(1)+3×0=0

子空间正交

定义:两空间正交意味着在空间 A A A中的所有向量都和在空间 B B B中的所有向量正交

推论:如果两个空间相交于一个非零向量,则两个空间不可能正交
因为一个非零向量不可能与其本身正交
MIT公开课18.06 Gilbert Strang 线性代数 笔记2 - 最小二乘法,行列式和特征值

行空间正交于零空间
证明:
零空间是 A x = 0 Ax=0 Ax=0的解,即 x x x若在零空间,则 A x Ax Ax为零向量;
而对于行空间,有 [ r o w 1 r o w 2 ⋮ r o w m ] [ x ] = [ 0 0 ⋮ 0 ] \begin{bmatrix}row_1\\row_2\\ \vdots \\row_m\end{bmatrix} \Bigg[x\Bigg]= \begin{bmatrix}0\\0\\ \vdots\\ 0\end{bmatrix} row1row2rowm[x]=000,可以看出:
[ r o w 1 ] [ x ] = 0 [ r o w 2 ] [ x ] = 0 ⋮ [ r o w m ] [ x ] = 0 \begin{bmatrix}row_1\end{bmatrix}\Bigg[x\Bigg]=0 \\ \begin{bmatrix}row_2\end{bmatrix}\Bigg[x\Bigg]=0 \\ \vdots \\ \begin{bmatrix}row_m\end{bmatrix}\Bigg[x\Bigg]=0 \\ [row1][x]=0[row2][x]=0[rowm][x]=0

所以这个等式告诉我们, x x x A A A中的所有行正交;

接下来还验证 x x x是否与 A A A中各行的线性组合正交,
{ c 1 ( r o w 1 ) T x = 0 c 2 ( r o w 2 ) T x = 0 ⋮ c n ( r o w m ) T x = 0 \begin{cases} c_1(row_1)^Tx=0 \\ c_2(row_2)^Tx=0 \\ \vdots \\ c_n(row_m)^Tx=0 \\ \end{cases} c1(row1)Tx=0c2(row2)Tx=0cn(rowm)Tx=0
各式相加得 ( c 1 r o w 1 + c 2 r o w 2 + ⋯ + c n r o w m ) T x = 0 (c_1row_1+c_2row_2+\cdots+c_nrow_m)^Tx=0 (c1row1+c2row2++cnrowm)Tx=0,得证。

我们可以说,行空间与零空间将 R n \mathbb{R}^n Rn分割为两个正交的子空间,同样的,列空间与左零空间将 R m \mathbb{R}^m Rm分割为两个正交的子空间。

举例, A = [ 1 2 5 2 4 10 ] A=\begin{bmatrix}1&2&5\\2&4&10\end{bmatrix} A=[1224510],则可知 m = 2 , n = 3 , r a n k ( A ) = 1 , d i m N ( A ) = 2 m=2, n=3, rank(A)=1, dim N(A)=2 m=2,n=3,rank(A)=1,dimN(A)=2

A x = [ 1 2 5 2 4 10 ] [ x 1 x 2 x 3 ] = [ 0 0 ] Ax=\begin{bmatrix}1&2&5\\2&4&10\end{bmatrix}\begin{bmatrix}x_1\\x_2\\x_3\end{bmatrix}=\begin{bmatrix}0\\0\end{bmatrix} Ax=[1224510]x1x2x3=[00],解得零空间的一组基 x 1 = [ − 2 1 0 ] x 2 = [ − 5 0 1 ] x_1=\begin{bmatrix}-2\\1\\0\end{bmatrix}\quad x_2=\begin{bmatrix}-5\\0\\1\end{bmatrix} x1=210x2=501

而行空间的一组基为 r = [ 1 2 5 ] r=\begin{bmatrix}1\\2\\5\end{bmatrix} r=125,零空间与行空间正交,在本例中行空间也是零空间的法向量。

在上例中,我们发现行空间与零空间的维度之和 = 整个空间的维度:
行空间与零空间为 n n n维空间里的正交补(orthogonal complement),即零空间包含了所有与行空间正交的向量
同理列空间与左零空间为 m m m维空间里的正交补,即左零空间包含了所有与列空间正交的向量。

A x = b Ax=b Ax=b无解时,如何去“解”这个方程组

无解:即 b b b不在 A A A的列空间中

对于长方矩阵, m > n m>n m>n,无解的情况很常见:如测量卫星的位置,测了一千次,得到了一千个方程,但实际上只需要几个参数便可确定其位置。

对于这种矩阵, A x = b Ax=b Ax=b中经常混入一些包含“坏数据”的方程,虽然可以通过筛选的方法去掉一些我们不希望看到的方程,但是这并不是一个稳妥的方法。

于是,我们引入一个重要的矩阵: A T A A^TA ATA。这是一个 n × m n \times m n×m矩阵点乘 m × n m \times n m×n矩阵,其结果是一个 n × n n \times n n×n矩阵,应该注意的是,这也是一个对称矩阵,证明如下:

( A T A ) T = A T ( A T ) T = A T A (A^TA)^T=A^T(A^T)^T=A^TA (ATA)T=AT(AT)T=ATA

这一章节的核心就是 A T A x = A T b A^TAx=A^Tb ATAx=ATb,这个变换可以将“坏方程组”变为“好方程组”。

举例,有 [ 1 1 1 2 1 5 ] [ x 1 x 2 ] = [ b 1 b 2 b 3 ] \begin{bmatrix}1&1\\1&2\\1&5\end{bmatrix}\begin{bmatrix}x_1\\x_2\end{bmatrix}=\begin{bmatrix}b_1\\b_2\\b_3\end{bmatrix} 111125[x1x2]=b1b2b3,只有当 [ b 1 b 2 b 3 ] \begin{bmatrix}b_1\\b_2\\b_3\end{bmatrix} b1b2b3在矩阵的列空间时,方程才有解。

A T A A^TA ATA [ 1 1 1 1 2 5 ] [ 1 1 1 2 1 5 ] = [ 3 8 8 30 ] \begin{bmatrix}1&1&1\\1&2&5\end{bmatrix}\begin{bmatrix}1&1\\1&2\\1&5\end{bmatrix}=\begin{bmatrix}3&8\\8&30\end{bmatrix} [111215]111125=[38830],可以看出此例中 A T A A^TA ATA是可逆的,于是列空间就是整个 n n n维空间,方程总是有解。
然而并非所有 A T A A^TA ATA都是可逆的,如 [ 1 1 1 3 3 3 ] [ 1 3 1 3 1 3 ] = [ 3 9 9 27 ] \begin{bmatrix}1&1&1\\3&3&3\end{bmatrix}\begin{bmatrix}1&3\\1&3\\1&3\end{bmatrix}=\begin{bmatrix}3&9\\9&27\end{bmatrix} [131313]111333=[39927](注意到这是两个秩一矩阵相乘,得到的矩阵的秩不会大于一)

先给出结论:

N ( A T A ) = N ( A ) r a n k ( A T A ) = r a n k ( A ) A T A 可 逆 当 且 仅 当 N ( A ) 为 零 向 量 , 即 A 的 列 线 性 无 关 N(A^TA)=N(A)\\ rank(A^TA)=rank(A)\\ A^TA可逆当且仅当N(A)为零向量,即A的列线性无关\\ N(ATA)=N(A)rank(ATA)=rank(A)ATAN(A)A线

下一讲涉及这些结论的证明和投影,很重要。

第15讲:子空间投影

背景: A x = b Ax=b Ax=b无解时,求它的“解”

故事还要从 A x = b Ax=b Ax=b无解的时候说起,当其无解的时候,我们只能求出最接近的那个解。

我们想要的是“最优解”,即这个解对于原方程偏差 e r r o r error error 最小
A x Ax Ax总是在 A A A的列空间中,而 b b b却不一定,这是问题所在,所以我们可以将 b b b变为 A A A的列空间中最接近的那个向量,即当我们取 b b b在列空间中的投影 p p p时,求解 A x ^ = p A\hat x=p Ax^=p,此时的解的 e r r o r error error最小, x ^ \hat{x} x^不再是那个不存在的 x x x,而是最接近的解

简单二维上的投影

R 2 \mathbb{R}^2 R2空间讲起,有向量 a , b a, b a,b,做 b b b a a a上的投影 p p p,如图:
MIT公开课18.06 Gilbert Strang 线性代数 笔记2 - 最小二乘法,行列式和特征值

从图中我们知道,向量 e e e就像是向量 b , p b, p b,p之间的误差, e = b − p , e ⊥ p e=b-p, e \bot p e=bp,ep p p p a a a上,有 p = x a p=xa p=xa

所以有 a T e = a T ( b − p ) = a T ( b − x a ) = 0 a^Te=a^T(b-p)=a^T(b-xa)=0 aTe=aT(bp)=aT(bxa)=0。关于正交的最重要的方程:

a T ( b − x a ) = 0 x a T a = a T b x = a T b a T a p = a a T b a T a a^T(b-xa)=0 \\ xa^Ta=a^Tb \\ x=\frac{a^Tb}{a^Ta} \\ p=a\frac{a^Tb}{a^Ta} aT(bxa)=0xaTa=aTbx=aTaaTbp=aaTaaTb

从上面的式子可以看出,如果将 b b b变为 2 b 2b 2b p p p也会翻倍,如果将 a a a变为 2 a 2a 2a p p p不变(联想图中的意思)

设投影矩阵为 P P P,则可以说投影矩阵作用与某个向量后,得到其投影向量 p p p p = P b p=Pb p=Pb

易得出 P = a a T a T a P=\frac{aa^T}{a^Ta} P=aTaaaT
a T a a^Ta aTa为一个数, a a T aa^T aaT列乘以行为一个矩阵,若 a a a n n n维列向量,则 P P P是一个 n × n n \times n n×n矩阵。

投影矩阵 P P P的列空间 C ( P ) C(P) C(P)是一条和 a a a重合的直线, r a n k ( P ) = 1 rank(P)=1 rank(P)=1(一列乘以一行: a a T aa^T aaT,矩阵(这里为 a a a)乘以任意向量(矩阵可看作向量组,这里把 a T a^T aT看作一向量组)都是其列空间的重新线性组合,因此 a a a是该矩阵的基)。

投影矩阵的性质:

  • P = P T P=P^T P=PT,投影矩阵是一个对称矩阵。
  • 如果对一个向量做两次投影,即 P P b PPb PPb,则其结果仍然与 P b Pb Pb相同,也就是 P 2 = P P^2=P P2=P

记住这三个公式:
x = a T b a T a p = a x = a a T b a T a P = a a T a T a x=\frac{a^Tb}{a^Ta} \\ p=ax=a\frac{a^Tb}{a^Ta} \\ P=\frac{aa^T}{a^Ta} x=aTaaTbp=ax=aaTaaTbP=aTaaaT

推广到高维

MIT公开课18.06 Gilbert Strang 线性代数 笔记2 - 最小二乘法,行列式和特征值

现在来看 R 3 \mathbb{R}^3 R3中的情形,将向量 b b b投影在平面 A A A上。同样的, p p p是向量 b b b在平面 A A A上的投影, e e e是垂直于平面 A A A的向量,即 b b b在平面 A A A法方向的分量。
设平面 A A A的一组基为 a 1 , a 2 a_1, a_2 a1,a2,则投影向量可以表示为基的线性组合 p = x 1 ^ a 1 + x 2 ^ a 2 p=\hat{x_1}a_1+\hat{x_2}a_2 p=x1^a1+x2^a2,我们更倾向于写作 p = A x ^ p=A\hat{x} p=Ax^,这里如果我们求出 x ^ \hat{x} x^,则该解就是无解方程组最近似的解。

现在问题的关键在于找 e = b − A x ^ e=b-A\hat{x} e=bAx^,使它垂直于平面,因此我们得到两个方程
{ a 1 T ( b − A x ^ ) = 0 a 2 T ( b − A x ^ ) = 0 \begin{cases}a_1^T(b-A\hat{x})=0\\ a_2^T(b-A\hat{x})=0\end{cases} {a1T(bAx^)=0a2T(bAx^)=0,将方程组写成矩阵形式
[ a 1 T a 2 T ] ( b − A x ^ ) = [ 0 0 ] \begin{bmatrix}a_1^T\\a_2^T\end{bmatrix} (b-A\hat{x})= \begin{bmatrix}0\\0\end{bmatrix} [a1Ta2T](bAx^)=[00],即 A T ( b − A x ^ ) = 0 A^T(b-A\hat{x})=0 AT(bAx^)=0

比较该方程与 R 2 \mathbb{R}^2 R2中的投影方程,发现只是向量 a a a变为矩阵 A A A而已,本质上就是 A T e = 0 A^Te=0 ATe=0,所以, e e e A T A^T AT的零空间中( e ∈ N ( A T ) e\in N(A^T) eN(AT))。
从前一讲我们知道,左零空间与列空间正交补,有 e ⊥ C ( A ) e\bot C(A) eC(A),与我们设想的一致。

再化简方程得 A T A x ^ = A T b A^TA \hat x=A^Tb ATAx^=ATb,比较在 R 2 \mathbb{R}^2 R2中的情形, a T a a^Ta aTa是一个数字而 A T A A^TA ATA是一个 n n n阶方阵,解出的 x x x可以看做两个数字的比值。现在在 R 3 \mathbb{R}^3 R3中,我们需要再次考虑:什么是 x ^ \hat{x} x^?投影是什么?投影矩阵又是什么?

  • 第一个问题: x ^ = ( A T A ) − 1 A T b \hat x=(A^TA)^{-1}A^Tb x^=(ATA)1ATb
  • 第二个问题: p = A x ^ = A ( A T A ) − 1 A T ‾ b p=A\hat x=\underline{A(A^TA)^{-1}A^T}b p=Ax^=A(ATA)1ATb,回忆在 R 2 \mathbb{R}^2 R2中的情形,下划线部分就是原来的 a a T a T a \frac{aa^T}{a^Ta} aTaaaT
  • 第三个问题: p = P b p=Pb p=Pb,易得出投影矩阵就是下划线部分 P = A ( A T A ) − 1 A T P=A(A^TA)^{-1}A^T P=A(ATA)1AT

这里还需要注意一个问题, P = A ( A T A ) − 1 A T P=A(A^TA)^{-1}A^T P=A(ATA)1AT是不能继续化简为 P = A A − 1 ( A T ) − 1 A T = I P=AA^{-1}(A^T)^{-1}A^T=I P=AA1(AT)1AT=I的,因为这里的 A A A并不是一个可逆方阵。
也可以换一种思路,如果 A A A是一个 n n n阶可逆方阵,则 A A A的列空间是整个 R n \mathbb{R}^n Rn空间,于是 b b b R n \mathbb{R}^n Rn上的投影矩阵确实变为了 I I I,因为 b b b已经在空间中了,其投影不再改变。

再来看投影矩阵 P P P的性质:

  • P = P T P=P^T P=PT:有
    [ A ( A T A ) − 1 A T ] T = A [ ( A T A ) − 1 ] T A T \left[A(A^TA)^{-1}A^T\right]^T=A\left[(A^TA)^{-1}\right]^TA^T [A(ATA)1AT]T=A[(ATA)1]TAT,而 ( A T A ) (A^TA) (ATA)是对称的,所以其逆也是对称的,所以有 A ( ( A T A ) − 1 ) T A T = A ( A T A ) − 1 A T A((A^TA)^{-1})^TA^T=A(A^TA)^{-1}A^T A((ATA)1)TAT=A(ATA)1AT,得证。
  • P 2 = P P^2=P P2=P:有
    [ A ( A T A ) − 1 A T ] [ A ( A T A ) − 1 A T ] = A ( A T A ) − 1 [ ( A T A ) ( A T A ) − 1 ] A T = A ( A T A ) − 1 A T \left[A(A^TA)^{-1}A^T\right]\left[A(A^TA)^{-1}A^T\right]=A(A^TA)^{-1}\left[(A^TA)(A^TA)^{-1}\right]A^T=A(A^TA)^{-1}A^T [A(ATA)1AT][A(ATA)1AT]=A(ATA)1[(ATA)(ATA)1]AT=A(ATA)1AT,得证。

应用举例:最小二乘法拟合直线

MIT公开课18.06 Gilbert Strang 线性代数 笔记2 - 最小二乘法,行列式和特征值
我们需要找到距离图中三个点 ( 1 , 1 ) , ( 2 , 2 ) , ( 3 , 2 ) (1, 1), (2, 2), (3, 2) (1,1),(2,2),(3,2) 偏差最小的直线: b = C + D t b=C+Dt b=C+Dt

根据条件可以得到方程组
{ C + D = 1 C + 2 D = 2 C + 3 D = 2 \begin{cases} C+D&=1 \\ C+2D&=2 \\ C+3D&=2 \\ \end{cases} C+DC+2DC+3D=1=2=2,写作矩阵形式
[ 1 1 1 2 1 3 ] [ C D ] = [ 1 2 2 ] \begin{bmatrix}1&1 \\1&2 \\1&3\\\end{bmatrix}\begin{bmatrix}C\\D\\\end{bmatrix}=\begin{bmatrix}1\\2\\2\\\end{bmatrix} 111123[CD]=122,也就是我们的 A x = b Ax=b Ax=b,很明显方程组无解。但是 A T A x ^ = A T b A^TA\hat x=A^Tb ATAx^=ATb有解( A T A A^TA ATA A T b A^Tb ATb都是 A T A^T AT的重新线性组合,所以在同一空间),于是我们将原是两边同时乘以 A T A^T AT后得到的新方程组是有解的, A T A x ^ = A T b A^TA\hat x=A^Tb ATAx^=ATb也是最小二乘法的核心方程。

下一讲将进行最小二乘法的验算。

总结

A x = b Ax=b Ax=b无解时,可求其近似解: x ^ = ( A T A ) − 1 A T b \hat x=(A^TA)^{-1}A^Tb x^=(ATA)1ATb

b b b A A A的列空间上的投影 p p p p = A x ^ = A ( A T A ) − 1 A T ‾ b p=A\hat x=\underline{A(A^TA)^{-1}A^T}b p=Ax^=A(ATA)1ATb

投影矩阵 P P P P = A ( A T A ) − 1 A T P=A(A^TA)^{-1}A^T P=A(ATA)1AT P = P T P=P^T P=PT P 2 = P P^2=P P2=P

第16讲:投影矩阵和最小二乘

回顾上讲

上一讲中,我们知道了投影矩阵 P = A ( A T A ) − 1 A T P=A(A^TA)^{-1}A^T P=A(ATA)1AT P b Pb Pb将会把向量投影在 A A A的列空间中。

一般情况下, b b b将会有一个垂直于 A A A的分量,和一个在 A A A列空间中的分量,投影的作用就是去掉垂直分量而保留列空间中的分量。

举两个极端的例子:

  • 如果 b ⊥ C ( A ) b\bot C(A) bC(A),则 P b = 0 Pb=0 Pb=0
  • 如果 b ∈ C ( A ) b\in C(A) bC(A),则 P b = b Pb=b Pb=b

在第一个极端情况中,如果 b ⊥ C ( A ) b\bot C(A) bC(A)则有 b ∈ N ( A T ) b\in N(A^T) bN(AT),即 A T b = 0 A^Tb=0 ATb=0。则 p = P b = A ( A T A ) − 1 A T b = 0 p=Pb=A(A^TA)^{-1}A^Tb=0 p=Pb=A(ATA)1ATb=0,得证。

在第二个极端情况中,如果 b ∈ C ( A ) b\in C(A) bC(A)则有 b = A x b=Ax b=Ax。带入投影矩阵 p = P b = A ( A T A ) − 1 A T A x = A x p=Pb=A(A^TA)^{-1}A^TAx=Ax p=Pb=A(ATA)1ATAx=Ax,得证。

向量 b b b投影后,有 b = e + p , p = P b , e = ( I − P ) b b=e+p, p=Pb, e=(I-P)b b=e+p,p=Pb,e=(IP)b,这里的 p p p b b b C ( A ) C(A) C(A)中的投影,而 e e e b b b N ( A T ) N(A^T) N(AT)中的投影。

最小二乘

问题描述

可以从两个图描述该问题

向量关系图

使
MIT公开课18.06 Gilbert Strang 线性代数 笔记2 - 最小二乘法,行列式和特征值

最优直线图

我们需要找到距离图中三个点 ( 1 , 1 ) , ( 2 , 2 ) , ( 3 , 2 ) (1, 1), (2, 2), (3, 2) (1,1),(2,2),(3,2) 偏差最小的直线: y = C + D t y=C+Dt y=C+Dt
MIT公开课18.06 Gilbert Strang 线性代数 笔记2 - 最小二乘法,行列式和特征值

根据条件可以得到方程组
{ C + D = 1 C + 2 D = 2 C + 3 D = 2 \begin{cases} C+D&=1 \\ C+2D&=2 \\ C+3D&=2 \\ \end{cases} C+DC+2DC+3D=1=2=2
写作矩阵形式:
[ 1 1 1 2 1 3 ] [ C D ] = [ 1 2 2 ] \begin{bmatrix}1&1 \\1&2 \\1&3\\\end{bmatrix}\begin{bmatrix}C\\D\\\end{bmatrix}=\begin{bmatrix}1\\2\\2\\\end{bmatrix} 111123[CD]=122,也就是我们的 A x = b Ax=b Ax=b,很明显方程组无解。

我们需要求一个最接近的解,使得误差 e 1 2 + e 2 2 + e 3 2 e_1^2+e_2^2+e_3^2 e12+e22+e32最小,找到拥有最小平方和的解(即最小二乘),即 ∥ A x − b ∥ 2 = ∥ e ∥ 2 \left\|Ax-b\right\|^2=\left\|e\right\|^2 Axb2=e2最小。

此时向量 b b b变为在 A A A上的投影 向量 p p p
p = [ p 1 p 2 p 3 ] p=\begin{bmatrix}p_1\\p_2\\p_3\end{bmatrix}\\ p=p1p2p3(在方程组有解的情况下, A x − b = 0 Ax-b=0 Axb=0,即 b b b A A A的列空间中,误差 e e e为零)
我们现在做的运算也称作线性回归(linear regression),使用误差的平方和作为测量总误差的标准。

注:如果有另一个点,如 ( 0 , 100 ) (0, 100) (0,100),在本例中该点明显距离别的点很远,最小二乘将很容易被离群的点影响,通常使用最小二乘时会去掉明显离群的点。

求解

现在我们尝试解出 x ^ = [ C ^ D ^ ] \hat x=\begin{bmatrix}\hat C\\ \hat D\end{bmatrix} x^=[C^D^] p = [ p 1 p 2 p 3 ] p=\begin{bmatrix}p_1\\p_2\\p_3\end{bmatrix} p=p1p2p3

A T A x ^ = A T b A T A = [ 3 6 6 14 ] A T b = [ 5 11 ] [ 3 6 6 14 ] [ C ^ D ^ ] = [ 5 11 ] A^TA\hat x=A^Tb\\ A^TA= \begin{bmatrix}3&6\\6&14\end{bmatrix}\qquad A^Tb= \begin{bmatrix}5\\11\end{bmatrix}\\ \begin{bmatrix}3&6\\6&14\end{bmatrix} \begin{bmatrix}\hat C\\\hat D\end{bmatrix}= \begin{bmatrix}5\\11\end{bmatrix}\\ ATAx^=ATbATA=[36614]ATb=[511][36614][C^D^]=[511]

写作方程形式为 { 3 C ^ + 16 D ^ = 5 6 C ^ + 14 D ^ = 11 \begin{cases}3\hat C+16\hat D&=5\\6\hat C+14\hat D&=11\\\end{cases} {3C^+16D^6C^+14D^=5=11,也称作正规方程组(normal equations)。

解方程得 C ^ = 2 3 , D ^ = 1 2 \hat C=\frac{2}{3}, \hat D=\frac{1}{2} C^=32,D^=21,则“最佳直线”为 y = 2 3 + 1 2 t y=\frac{2}{3}+\frac{1}{2}t y=32+21t

x = 1 , x = 2 , x = 3 x=1,x=2,x=3 x=1x=2,x=3,解得 p 1 = 7 6 , p 2 = 5 3 , p 3 = 13 6 p_1=\frac{7}{6}, p_2=\frac{5}{3}, p_3=\frac{13}{6} p1=67,p2=35,p3=613

所以 e 1 = − 1 6 , e 2 = 1 3 , e 3 = − 1 6 e_1=-\frac{1}{6}, e_2=\frac{1}{3}, e_3=-\frac{1}{6} e1=61,e2=31,e3=61

我们得到 p = [ 7 6 5 3 13 6 ] , e = [ − 1 6 1 3 − 1 6 ] p=\begin{bmatrix}\frac{7}{6}\\\frac{5}{3}\\\frac{13}{6}\end{bmatrix}, e=\begin{bmatrix}-\frac{1}{6}\\\frac{1}{3}\\-\frac{1}{6}\end{bmatrix} p=6735613,e=613161

向量关系

易看出 b = p + e b=p+e b=p+e,同时我们发现 p ⋅ e = 0 p\cdot e=0 pe=0 p ⊥ e p\bot e pe

误差向量 e e e不仅垂直于投影向量 p p p,它垂直于列空间,比如垂直于列空间的这两个基 [ 1 1 1 ] , [ 1 2 3 ] \begin{bmatrix}1\\1\\1\end{bmatrix}, \begin{bmatrix}1\\2\\3\end{bmatrix} 111,123

对比向量关系图,结论一致。
MIT公开课18.06 Gilbert Strang 线性代数 笔记2 - 最小二乘法,行列式和特征值

微积分角度求解方案

回顾前面提到的“使得误差最小”的条件:
e 1 2 + e 2 2 + e 3 2 = ( C + D − 1 ) 2 + ( C + 2 D − 2 ) 2 + ( C + 3 D − 2 ) 2 e_1^2+e_2^2+e_3^2=(C+D-1)^2+(C+2D-2)^2+(C+3D-2)^2 e12+e22+e32=(C+D1)2+(C+2D2)2+(C+3D2)2,使该式取最小值
如果使用微积分方法,则需要对该式的两个变量 C , D C, D C,D分别求偏导数,再令求得的偏导式为零即可,正是我们刚才求得的正规方程组。(正规方程组中的第一个方程是对 C C C求偏导的结果,第二个方程式对 D D D求偏导的结果,无论使用哪一种方法都会得到上面的方程组)

证明 A T A A^TA ATA可逆

如果 A A A的各列线性无关,求证 A T A A^TA ATA是可逆矩阵。
根据第三讲的内容,要证 A T A A^TA ATA可逆,只要证明:若 A T A x = 0 A^TAx=0 ATAx=0,则 x x x只能是零向量

所以先假设 A T A x = 0 A^TAx=0 ATAx=0
两边同时乘以 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 ) T ( A x ) (Ax)^T(Ax) (Ax)T(Ax)相当于 A x Ax Ax长度的平方)
A x = 0 Ax=0 Ax=0
结合题设中的“ A A A的各列线性无关”,可知 x = 0 x=0 x=0
也就是 A T A A^TA ATA的零空间中有且只有零向量,得证。

特殊的线性无关

我们再来看一种线性无关的特殊情况:互相垂直的列向量一定是线性无关的。(排除零向量)
比如:

  • [ 1 0 0 ] [ 0 1 0 ] [ 0 0 1 ] \begin{bmatrix}1\\0\\0\end{bmatrix}\begin{bmatrix}0\\1\\0\end{bmatrix}\begin{bmatrix}0\\0\\1\end{bmatrix} 100010001
  • [ cos ⁡ θ sin ⁡ θ ] [ − sin ⁡ θ cos ⁡ θ ] \begin{bmatrix}\cos\theta\\\sin\theta\end{bmatrix}\begin{bmatrix}-\sin\theta\\\cos\theta\end{bmatrix} [cosθsinθ][sinθcosθ]

这些正交单位向量称作标准正交向量组(orthonormal vectors)。

下一讲研究标准正交向量组。

第17讲:正交矩阵和Gram-Schmidt正交化法

标准正交矩阵

定义

定义标准正交向量(orthonormal): 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
两两正交,长度为1的向量组

我们将标准正交向量放入矩阵中,有 Q = [ q 1 q 2 ⋯ q n ] Q=\Bigg[q_1 q_2 \cdots q_n\Bigg] Q=[q1q2qn]
我们把 Q Q Q称为标准正交矩阵(orthonormal matrix),常常省略叫正交矩阵

Q T Q Q^TQ QTQ

上一讲我们研究了 A T A A^TA ATA的特性,现在来观察 Q T Q = [ q 1 T q 2 T ⋮ q n T ] [ q 1 q 2 ⋯ q n ] Q^TQ=\begin{bmatrix} & q_1^T & \\ & q_2^T & \\ & \vdots & \\ & q_n^T & \end{bmatrix}\Bigg[q_1 q_2 \cdots q_n\Bigg] QTQ=q1Tq2TqnT[q1q2qn]

根据标准正交向量的定义, Q T Q = [ 1 0 ⋯ 0 0 1 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ 1 ] = I Q^TQ=\begin{bmatrix}1&0&\cdots&0\\0&1&\cdots&0\\\vdots&\vdots&\ddots&\vdots\\0&0&\cdots&1\end{bmatrix}=I QTQ=100010001=I

特别的,当 Q Q Q恰好是方阵时,由于正交性,易得 Q Q Q是可逆的,又 Q T Q = I Q^TQ=I QTQ=I,所以 Q T = Q − 1 Q^T=Q^{-1} QT=Q1

例子

  • Q = [ 0 1 0 1 0 0 0 0 1 ] Q=\begin{bmatrix}0&1&0\\1&0&0\\0&0&1\end{bmatrix} Q=010100001,则 Q T = [ 0 1 0 0 0 1 1 0 0 ] Q^T=\begin{bmatrix}0&1&0\\0&0&1\\1&0&0\end{bmatrix} QT=001100010,易得 Q T Q = I Q^TQ=I QTQ=I
  • 使用上一讲的例子 Q = [ cos ⁡ θ − sin ⁡ θ sin ⁡ θ cos ⁡ θ ] Q=\begin{bmatrix}\cos\theta&-\sin\theta\\\sin\theta&\cos\theta\end{bmatrix} Q=[cosθsinθsinθcosθ],列向量长度为 1 1 1,且列向量相互正交。
  • Q = 1 2 [ 1 1 1 − 1 ] Q=\frac{1}{\sqrt 2}\begin{bmatrix}1&1\\1&-1\end{bmatrix} Q=2 1[1111],列向量长度为 1 1 1,且列向量相互正交。
  • 使用上一个例子的矩阵,令 Q ′ = c [ Q Q Q − Q ] Q'=c\begin{bmatrix}Q&Q\\Q&-Q\end{bmatrix} Q=c[QQQQ],取合适的 c c c另列向量长度为 1 1 1也可以构造标准正交矩阵: Q = 1 2 [ 1 1 1 1 1 − 1 1 − 1 1 1 − 1 − 1 1 − 1 − 1 1 ] Q=\frac{1}{2}\begin{bmatrix}1&1&1&1\\1&-1&1&-1\\1&1&-1&-1\\1&-1&-1&1\end{bmatrix} Q=211111111111111111,这种构造方法以阿德玛(Adhemar)命名,对 2 , 4 , 16 , 64 , ⋯ 2, 4, 16, 64, \cdots 2,4,16,64,阶矩阵有效。
  • 再来看一个例子, Q = 1 3 [ 1 − 2 2 2 − 1 − 2 2 2 1 ] Q=\frac{1}{3}\begin{bmatrix}1&-2&2\\2&-1&-2\\2&2&1\end{bmatrix} Q=31122212221,列向量长度为 1 1 1,且列向量相互正交。

格拉姆-施密特正交化法的缺点在于,由于要求得单位向量,所以我们总是除以向量的长度,这导致标准正交矩阵中总是带有根号,而上面几个例子很少有根号。

优势

假设要做投影,将向量 b b b投影在标准正交矩阵 Q Q Q的列空间中,根据上一讲的公式得 P = Q ( Q T Q ) − 1 Q T P=Q(Q^TQ)^{-1}Q^T P=Q(QTQ)1QT,得 P = Q Q T P=QQ^T P=QQT

我们断言,当列向量为标准正交基时, Q Q T QQ^T QQT是投影矩阵。

极端情况,假设矩阵是方阵,而其列向量是标准正交的(列向量线性无关的充分条件),则列空间就是整个向量空间,而投影整个空间的投影矩阵就是单位矩阵,此时 Q Q T = Q Q − 1 = I QQ^T=QQ^{-1}=I QQT=QQ1=I

可以验证一下投影矩阵的两个性质:
投影矩阵是对称的: ( Q Q T ) T = ( Q T ) T Q T = Q Q T (QQ^T)^T=(Q^T)^TQ^T=QQ^T (QQT)T=(QT)TQT=QQT,得证;
投影两次相当于投影一次: ( Q Q T ) 2 = Q Q T Q Q T = Q ( Q T Q ) Q T = Q Q T (QQ^T)^2=QQ^TQQ^T=Q(Q^TQ)Q^T=QQ^T (QQT)2=QQTQQT=Q(QTQ)QT=QQT,得证

我们计算的 A T A x ^ = A T b A^TA\hat x=A^Tb ATAx^=ATb,现在变为 Q T Q x ^ = Q T b Q^TQ\hat x=Q^Tb QTQx^=QTb,也就是 x ^ = Q T b \hat x=Q^Tb x^=QTb,分解成向量来看就是 x ^ i = q i T b ‾ \underline{\hat x_i=q_i^Tb} x^i=qiTb,这个式子在很多数学领域都有重要作用。当我们知道标准正交基,则解向量第 i i i个分量为基的第 i i i个分量乘以 b b b,在第 i i i个基方向上的投影就等于 q i T b q_i^Tb qiTb

Gram-Schmidt正交化法

两个向量

我们有两个线性无关的向量 a , b a, b a,b,先把它们化为正交向量 A , B A, B A,B,再将它们单位化,变为单位正交向量 q 1 = A ∥ A ∥ , q 2 = B ∥ B ∥ q_1=\frac{A}{\left\|A\right\|}, q_2=\frac{B}{\left\|B\right\|} q1=AA,q2=BB

  • 我们取定 a a a向量的方向, a = A a=A a=A
  • 接下来将 b b b投影在 A A A的法方向上得到 B B B,也就是求子空间投影一讲中,我们提到的误差向量 e = b − p e=b-p e=bp,即 B = b − A T b A T A A B=b-\frac{A^Tb}{A^TA}A B=bATAATbA
    MIT公开课18.06 Gilbert Strang 线性代数 笔记2 - 最小二乘法,行列式和特征值
    检验一下 A ⊥ B A\bot B AB A T B = A T b − A T A T b A T A A = A T b − A T A A T A A T b = 0 A^TB=A^Tb-A^T\frac{A^Tb}{A^TA}A=A^Tb-\frac{A^TA}{A^TA}A^Tb=0 ATB=ATbATATAATbA=ATbATAATAATb=0。( A T b A T A A \frac{A^Tb}{A^TA}A ATAATbA就是 A x ^ = p A\hat x=p Ax^=p。)
  • 最后再让 A , B A,B A,B除以自身长度单位化一下就好了
    MIT公开课18.06 Gilbert Strang 线性代数 笔记2 - 最小二乘法,行列式和特征值

三个向量

如果我们有三个线性无关的向量 a , b , c a, b, c a,b,c,则我们现需要求它们的正交向量 A , B , C A, B, C A,B,C,再将它们单位化,变为单位正交向量 q 1 = A ∥ A ∥ , q 2 = B ∥ B ∥ , q 3 = C ∥ C ∥ q_1=\frac{A}{\left\|A\right\|}, q_2=\frac{B}{\left\|B\right\|}, q_3=\frac{C}{\left\|C\right\|} q1=AA,q2=BB,q3=CC

  • 前两个向量我们已经得到了,我们现在需要求第三个向量同时正交于 A , B A, B A,B
  • 我们依然沿用上面的方法,从 c c c中减去其在 A , B A, B A,B上的分量,得到与 A , B A, B A,B正交的 C C C C = c − A T c A T A A − B T c B T B B C=c-\frac{A^Tc}{A^TA}A-\frac{B^Tc}{B^TB}B C=cATAATcABTBBTcB

现在我们试验一下推导出来的公式, a = [ 1 1 1 ] , b = [ 1 0 2 ] a=\begin{bmatrix}1\\1\\1\end{bmatrix}, b=\begin{bmatrix}1\\0\\2\end{bmatrix} a=111,b=102

  • 取定一方向, A = a = [ 1 1 1 ] A=a=\begin{bmatrix}1\\1\\1\end{bmatrix} A=a=111
  • 正交化,根据公式有 B = a − h A B=a-hA B=ahA h h h是比值 A T b A T A = 3 3 \frac{A^Tb}{A^TA}=\frac{3}{3} ATAATb=33,则 B = [ 1 1 1 ] − 3 3 [ 1 0 2 ] = [ 0 − 1 1 ] B=\begin{bmatrix}1\\1\\1\end{bmatrix}-\frac{3}{3}\begin{bmatrix}1\\0\\2\end{bmatrix}=\begin{bmatrix}0\\-1\\1\end{bmatrix} B=11133102=011。验证一下正交性有 A ⋅ B = 0 A\cdot B=0 AB=0
  • 单位化, q 1 = 1 3 [ 1 1 1 ] , q 2 = 1 2 [ 1 0 2 ] q_1=\frac{1}{\sqrt 3}\begin{bmatrix}1\\1\\1\end{bmatrix},\quad q_2=\frac{1}{\sqrt 2}\begin{bmatrix}1\\0\\2\end{bmatrix} q1=3 1111,q2=2 1102,则标准正交矩阵为 Q = [ 1 3 0 1 3 − 1 2 1 3 1 2 ] Q=\begin{bmatrix}\frac{1}{\sqrt 3}&0\\\frac{1}{\sqrt 3}&-\frac{1}{\sqrt 2}\\\frac{1}{\sqrt 3}&\frac{1}{\sqrt 2}\end{bmatrix} Q=3 13 13 102 12 1,对比原来的矩阵 D = [ 1 1 1 0 1 2 ] D=\begin{bmatrix}1&1\\1&0\\1&2\end{bmatrix} D=111102,有 D , Q D, Q D,Q的列空间是相同的,我们只是将原来的基标准正交化了。

矩阵表达正交化

我们曾经用矩阵的眼光审视消元法,有 A = L U A=LU A=LU。同样的,我们也可用矩阵表达标准正交化: A = Q R A=QR A=QR(Gram-Schmidt表达式)
设矩阵 A A A有两个列向量 [ a 1 a 2 ] \Bigg[a_1 a_2\Bigg] [a1a2],则有 [ a 1 a 2 ] = [ q 1 q 2 ] [ a 1 T q 1 a 2 T q 1 a 1 T q 2 a 2 T q 2 ] \Bigg[a_1 a_2\Bigg]=\Bigg[q_1 q_2\Bigg]\begin{bmatrix}a_1^Tq_1&a_2^Tq_1\\a_1^Tq_2&a_2^Tq_2\end{bmatrix} [a1a2]=[q1q2][a1Tq1a1Tq2a2Tq1a2Tq2],而 R R R左下角的 a 1 T q 2 a_1^Tq_2 a1Tq2始终为 0 0 0,因为Gram-Schmidt正交化第一步取定方向,使得
i < j 时 , a i ⊥ q j i<j时,a_i\bot q_j i<jaiqj,后来构造的向量总是正交于先前的向量
所以这个 R R R矩阵是一个上三角矩阵。

第18讲:行列式及其性质

行列式概述

此前我们一直讨论的是长方矩阵,现在我们把注意力转向方阵,探讨两大话题,行列式和特征值

我们需要行列式的重要原因:求特征值

行列式可以决定方程组是否有解即矩阵是否可逆(行列式为0时矩阵奇异)。从另外一个角度来理解,行列式代表了这个矩阵的特征,这是学习特征分解的前置概念,不过行列式的作用不仅限于此。

行列式的英文名为determinant,意为决定因素,行列式是一个 从矩阵 到 一个值 的函数,它把尽可能多的信息压缩到了一个值当中。

行列式的性质

了解行列式,我们先从简单的性质入手,之后再去认识复杂的求解公式

铺垫性质

基本性质

  1. det ⁡ I = 1 \det{I}=1 detI=1,单位矩阵行列式值为一。

  2. 交换行,行列式变号。

    在给出第三个性质之前,先由前两个性质可知,对置换矩阵有 det ⁡ P = { 1 e v e n − 1 o d d \det P=\begin{cases}1\quad &even\\-1\quad &odd\end{cases} detP={11evenodd

    举例: ∣ 1 0 0 1 ∣ = 1 , ∣ 0 1 1 0 ∣ = − 1 \begin{vmatrix}1&0\\0&1\end{vmatrix}=1,\quad\begin{vmatrix}0&1\\1&0\end{vmatrix}=-1 1001=1,0110=1,于是我们猜想,对于二阶方阵,行列式的计算公式为 ∣ a b c d ∣ = a d − b c \begin{vmatrix}a&b\\c&d\end{vmatrix}=ad-bc acbd=adbc

  3. a. ∣ t a t b c d ∣ = t ∣ a b c d ∣ \begin{vmatrix}ta&tb\\c&d\end{vmatrix}=t\begin{vmatrix}a&b\\c&d\end{vmatrix} tactbd=tacbd

    b. ∣ a + a ′ b + b ′ c d ∣ = ∣ a b c d ∣ + ∣ a ′ b ′ c d ∣ \begin{vmatrix}a+a'&b+b'\\c&d\end{vmatrix}=\begin{vmatrix}a&b\\c&d\end{vmatrix}+\begin{vmatrix}a'&b'\\c&d\end{vmatrix} a+acb+bd=acbd+acbd

    行列式的线性变换并不对应整个方阵的线性变换,而是针对某一行的线性变换。

推出性质

  1. 如果两行相等,则行列式为 0 0 0
    证明:使用性质2,交换两相等的行,方阵不变,行列式的值也就未变,但行列式变号了,说明行列式为0

  2. 从第 k k k行中减去第 i i i行的 l l l倍,行列式不变。
    这条性质是针对消元的,我们可以先消元,将方阵变为上三角形式后再计算行列式。

    证明举例: ∣ a b c − l a d − l b ∣ = 3. b ∣ a b c d ∣ + ∣ a b − l a − l b ∣ = 3. a ∣ a b c d ∣ − l ∣ a b a b ∣ = 4 ∣ a b c d ∣ \begin{vmatrix}a&b\\c-la&d-lb\end{vmatrix}\stackrel{3.b}{=}\begin{vmatrix}a&b\\c&d\end{vmatrix}+\begin{vmatrix}a&b\\-la&-lb\end{vmatrix}\stackrel{3.a}{=}\begin{vmatrix}a&b\\c&d\end{vmatrix}-l\begin{vmatrix}a&b\\a&b\end{vmatrix}\stackrel{4}{=}\begin{vmatrix}a&b\\c&d\end{vmatrix} aclabdlb=3.bacbd+alablb=3.aacbdlaabb=4acbd

  3. 如果方阵的某一行为零,则其行列式值为零。
    证明:
    方法1:使用性质3.a对为零行乘以不为零系数 l l l,使 l det ⁡ A = det ⁡ A l\det A=\det A ldetA=detA即可证明
    MIT公开课18.06 Gilbert Strang 线性代数 笔记2 - 最小二乘法,行列式和特征值

方法2:使用性质3.a
MIT公开课18.06 Gilbert Strang 线性代数 笔记2 - 最小二乘法,行列式和特征值

重点性质

  1. 上三角矩阵的行列式 det ⁡ U = ∣ d 1 ∗ ⋯ ∗ 0 d 2 ⋯ ∗ ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ d n ∣ \det U=\begin{vmatrix}d_{1}&*&\cdots&*\\0&d_{2}&\cdots&*\\\vdots&\vdots&\ddots&\vdots\\0&0&\cdots&d_{n}\end{vmatrix} detU=d100d20dn
    det ⁡ U = d 1 d 2 ⋯ d n \det U=d_1d_2\cdots d_n detU=d1d2dn
    注意:要得到三角阵时,可能需要换行,如果换行,符号可能会改变
    证明:使用性质5,从最后一行开始,将对角元素上方的 ∗ * 元素依次变为零,可以得到型为 det ⁡ U = ∣ d 1 0 ⋯ 0 0 d 2 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ d n ∣ \det U=\begin{vmatrix}d_{1}&0&\cdots&0\\0&d_{2}&\cdots&0\\\vdots&\vdots&\ddots&\vdots\\0&0&\cdots&d_{n}\end{vmatrix} detU=d1000d2000dn的对角行列式
    再使用性质3.a将对角元素提出得到 det ⁡ U = d n d n − 1 ⋯ d 1 ∣ 1 0 ⋯ 0 0 1 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ 1 ∣ \det U = d_nd_{n-1}\cdots d_1\begin{vmatrix}1&0&\cdots&0\\0&1&\cdots&0\\\vdots&\vdots&\ddots&\vdots\\0&0&\cdots&1\end{vmatrix} detU=dndn1d1100010001
    最后用性质一, det ⁡ U = d 1 d 2 ⋯ d n \det U = d_1d_2\cdots d_n detU=d1d2dn,得证

  2. det ⁡ A = 0 \det A=0 detA=0,当且仅当 A A A奇异
    det ⁡ A ≠ 0 \det A\neq0 detA=0,当且仅当 A A A可逆
    证明:利用性质8,如果矩阵奇异,则化简为上三角形式时会出现全零行,行列式为零。
    同理,如果矩阵可逆,则化简为上三角形式后各行都含有主元,行列式即为主元乘积;

    再回顾二阶情况: ∣ a b c d ∣ → 消 元 ∣ a b 0 d − c a b ∣ = a d − b c \begin{vmatrix}a&b\\c&d\end{vmatrix}\xrightarrow{消元}\begin{vmatrix}a&b\\0&d-\frac{c}{a}b\end{vmatrix}=ad-bc acbd a0bdacb=adbc,前面的猜想得到证实。

  3. det ⁡ A B = ( det ⁡ A ) ( det ⁡ B ) \det AB=(\det A)(\det B) detAB=(detA)(detB)
    证明较复杂,这里不给出了
    使用这一性质, det ⁡ I = det ⁡ A − 1 A = det ⁡ A − 1 det ⁡ A \det I=\det{A^{-1}A}=\det A^{-1}\det A detI=detA1A=detA1detA,所以 det ⁡ A − 1 = 1 det ⁡ A \det A^{-1}=\frac{1}{\det A} detA1=detA1
    并可以轻松求得对角矩阵的逆:MIT公开课18.06 Gilbert Strang 线性代数 笔记2 - 最小二乘法,行列式和特征值
    还可以检验矩阵是否奇异:如果可逆,则行列式不为0, 1 det ⁡ A \frac{1}{\det A} detA1才有意义,如果奇异, det ⁡ A = 0 \det A=0 detA=0,则公式不再work, 1 det ⁡ A \frac{1}{\det A} detA1无意义

    同时还可以得到:
    det ⁡ A 2 = ( det ⁡ A ) 2 \det A^2=(\det A)^2 detA2=(detA)2
    det ⁡ 2 A = 2 n det ⁡ A \det 2A=2^n\det A det2A=2ndetA,这个式子就像是求体积,对三维物体有每边翻倍则体积变为原来的八倍。

  4. det ⁡ A T = det ⁡ A \det A^T=\det A detAT=detA,前面一直在关注行的属性给行列式带来的变化,有了这条性质,行的属性同样适用于列,比如对性质2就有“交换列行列式变号”。

    证明:
    把矩阵化为三角阵
    无论是 L , L T , U , U T L,L^T,U,U^T L,LT,U,UT,只要是三角阵,行列式就为对角线的乘积,转置对此没有影响
    MIT公开课18.06 Gilbert Strang 线性代数 笔记2 - 最小二乘法,行列式和特征值

第19讲:行列式公式和代数余子式

行列式公式

上一讲中,我们从三个简单的性质扩展出了一些很好的推论,本讲将继续使用这三条基本性质:

  1. det ⁡ I = 1 \det I=1 detI=1
  2. 交换行行列式变号;
  3. 对行列式的每一行都可以单独使用线性运算,其值不变;

我们使用这三条性质推导二阶方阵行列式:

∣ a b c d ∣ = ∣ a 0 c d ∣ + ∣ 0 b c d ∣ = ∣ a 0 c 0 ∣ + ∣ a 0 0 d ∣ + ∣ 0 b c 0 ∣ + ∣ 0 b 0 d ∣ = a d − b c \begin{vmatrix}a&b\\c&d\end{vmatrix}=\begin{vmatrix}a&0\\c&d\end{vmatrix}+\begin{vmatrix}0&b\\c&d\end{vmatrix}=\begin{vmatrix}a&0\\c&0\end{vmatrix}+\begin{vmatrix}a&0\\0&d\end{vmatrix}+\begin{vmatrix}0&b\\c&0\end{vmatrix}+\begin{vmatrix}0&b\\0&d\end{vmatrix}=ad-bc acbd=ac0d+0cbd=ac00+a00d+0cb0+00bd=adbc

按照这个方法,我们继续计算三阶方阵的行列式,可以想到,我们保持第二、三行不变,将第一行拆分为个行列式之和,再将每一部分的第二行拆分为三部分,这样就得到九个行列式,再接着拆分这九个行列式的第三行,最终得到二十七个行列式。可以想象到,这些矩阵中有很多值为零的行列式,我们只需要找到不为零的行列式,求和即可。

∣ a 11 a 12 a 13 a 21 a 22 a 23 a 31 a 32 a 33 ∣ = ∣ a 11 0 0 0 a 22 0 0 0 a 33 ∣ + ∣ a 11 0 0 0 0 a 23 0 a 32 0 ∣ + ∣ 0 a 12 0 a 21 0 0 0 0 a 33 ∣ + ∣ 0 a 12 0 0 0 a 23 a 31 0 0 ∣ + ∣ 0 0 a 13 a 21 0 0 0 a 32 0 ∣ + ∣ 0 0 a 13 0 a 22 0 a 31 0 0 ∣ \begin{vmatrix}a_{11}&a_{12}&a_{13}\\a_{21}&a_{22}&a_{23}\\a_{31}&a_{32}&a_{33}\end{vmatrix}=\begin{vmatrix}a_{11}&0&0\\0&a_{22}&0\\0&0&a_{33}\end{vmatrix}+\begin{vmatrix}a_{11}&0&0\\0&0&a_{23}\\0&a_{32}&0\end{vmatrix}+\begin{vmatrix}0&a_{12}&0\\a_{21}&0&0\\0&0&a_{33}\end{vmatrix}+\begin{vmatrix}0&a_{12}&0\\0&0&a_{23}\\a_{31}&0&0\end{vmatrix}+\begin{vmatrix}0&0&a_{13}\\a_{21}&0&0\\0&a_{32}&0\end{vmatrix}+\begin{vmatrix}0&0&a_{13}\\0&a_{22}&0\\a_{31}&0&0\end{vmatrix} a11a21a31a12a22a32a13a23a33=a11000a22000a33+a110000a320a230+0a210a120000a33+00a31a12000a230+0a21000a32a1300+00a310a220a1300

原 式 = a 11 a 22 a 33 − a 11 a 23 a 32 − a 12 a 21 a 33 + a 12 a 23 a 31 + a 13 a 21 a 32 − a 13 a 22 a 31 原式=a_{11}a_{22}a_{33}-a_{11}a_{23}a_{32}-a_{12}a_{21}a_{33}+a_{12}a_{23}a_{31}+a_{13}a_{21}a_{32}-a_{13}a_{22}a_{31} =a11a22a33a11a23a32a12a21a33+a12a23a31+a13a21a32a13a22a31 (1)

同理,我们想继续推导出阶数更高的式子,按照上面的式子可知 n n n阶行列式应该可以分解成 n ! n! n!个非零行列式(占据第一行的元素有 n n n种选择,占据第二行的元素有 n − 1 n-1 n1种选择,以此类推得 n ! n! n!)由此可得 行列式大公式
det ⁡ A = ∑ n !   t e r m s ± a 1 α a 2 β a 3 γ ⋯ a n ω , ( α , β , γ , ω ) = P n n (2) \det A=\sum_{n! \, terms} \pm a_{1\alpha}a_{2\beta}a_{3\gamma}\cdots a_{n\omega}, (\alpha, \beta, \gamma, \omega)=P_n^n \tag{2} detA=n!terms±a1αa2βa3γanω,(α,β,γ,ω)=Pnn(2)
MIT公开课18.06 Gilbert Strang 线性代数 笔记2 - 最小二乘法,行列式和特征值
α , β , γ . . . , ω α,β,γ...,ω αβγ...ω ( 1 , 2 , . . . , n ) (1,2,...,n) (1,2,...,n)的所有排列

确定每个term的符号:

∣ 0 0 1 ‾ 1 ‾ 0 1 ‾ 1 ‾ 0 1 ‾ 1 ‾ 0 0 1 ‾ 0 0 1 ‾ ∣ \begin{vmatrix}0&0&\overline 1&\underline 1\\0&\overline 1&\underline 1&0\\\overline 1&\underline 1&0&0\\\underline 1&0&0&\overline 1\end{vmatrix} 0011011011001001

  • 观察带有下划线的元素,它们的排列是 ( 4 , 3 , 2 , 1 ) (4,3,2,1) (4,3,2,1),变为 ( 1 , 2 , 3 , 4 ) (1,2,3,4) (1,2,3,4)需要两步操作,所以应取 + + +
  • 观察带有上划线的元素,它们的排列是 ( 3 , 2 , 1 , 4 ) (3,2,1,4) (3,2,1,4),变为 ( 1 , 2 , 3 , 4 ) (1,2,3,4) (1,2,3,4)需要一步操作,所以应取 − -
  • 观察其他元素,我们无法找出除了上面两种以外的排列方式,于是该行列式值为零,这是一个奇异矩阵。

代数余子式

此处引入代数余子式(cofactor)的概念,它的作用是把 n n n阶行列式化简为 n − 1 n-1 n1阶行列式。

于是我们把 ( 1 ) (1) (1)式改写为:

a 11 ( a 22 a 33 − a 23 a 32 ) + a 12 ( a 21 a 33 − a 23 a 31 ) + a 13 ( a 21 a 32 − a 22 a 31 ) a_{11}(a_{22}a_{33}-a_{23}a_{32})+a_{12}(a_{21}a_{33}-a_{23}a_{31})+a_{13}(a_{21}a_{32}-a_{22}a_{31}) a11(a22a33a23a32)+a12(a21a33a23a31)+a13(a21a32a22a31)
= ∣ a 11 0 0 0 a 22 a 23 0 a 32 a 33 ∣ + ∣ 0 a 12 0 a 21 0 a 23 a 31 0 a 33 ∣ + ∣ 0 0 a 13 a 21 a 22 0 a 31 a 32 0 ∣ =\begin{vmatrix}a_{11}&0&0\\0&a_{22}&a_{23}\\0&a_{32}&a_{33}\end{vmatrix}+\begin{vmatrix}0&a_{12}&0\\a_{21}&0&a_{23}\\a_{31}&0&a_{33}\end{vmatrix}+\begin{vmatrix}0&0&a_{13}\\a_{21}&a_{22}&0\\a_{31}&a_{32}&0\end{vmatrix} =a11000a22a320a23a33+0a21a31a12000a23a33+0a21a310a22a32a1300

我们定义 a i j a_{ij} aij的代数余子式:将原行列式的第 i i i行与第 j j j列抹去后得到的 n − 1 n-1 n1阶行列式,记为 C i j C_{ij} Cij i + j i+j i+j为偶时时取 + + + i + j i+j i+j为奇时取 − -

现在再来改写式子 ( 2 ) (2) (2):将行列式 A A A沿第一行展开(也可按第 i i i行或第 j j j列展开):

det ⁡ A = a 11 C 11 + a 12 C 12 + ⋯ + a 1 n C 1 n \det A=a_{11}C_{11}+a_{12}C_{12}+\cdots+a_{1n}C_{1n} detA=a11C11+a12C12++a1nC1n

总结

到现在为止,我们了解了三种求 n n n阶行列式的方法:

  1. 主元公式求解:消元,变换为上三角矩阵后求其主元乘积(注意换行后的符号改变);

  2. 使用行列式大公式展开,求 n ! n! n!项之积;

  3. 使用代数余子式,化为 n − 1 n-1 n1阶行列式

    计算难度: 1. < 3. < 2.

例题

A n A_n An n n n阶“三对角线行列式”
MIT公开课18.06 Gilbert Strang 线性代数 笔记2 - 最小二乘法,行列式和特征值

A 4 = ∣ 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 ∣ = 沿 第 一 行 展 开 ∣ 1 1 0 1 1 1 0 1 1 ∣ − ∣ 1 1 0 0 1 1 0 1 1 ∣ = − 1 − 0 = − 1 A_4=\begin{vmatrix}1&1&0&0\\1&1&1&0\\0&1&1&1\\0&0&1&1\end{vmatrix}\stackrel{沿第一行展开}{=}\begin{vmatrix}1&1&0\\1&1&1\\0&1&1\end{vmatrix}-\begin{vmatrix}1&1&0\\0&1&1\\0&1&1\end{vmatrix}=-1-0=-1 A4=1100111001110011=沿110111011100111011=10=1

MIT公开课18.06 Gilbert Strang 线性代数 笔记2 - 最小二乘法,行列式和特征值
得到 A n A_n An的值以 1 , 0 , − 1 , − 1 , 0 , 1 1,0,-1,-1,0,1 1,0,1,1,0,1为周期变化

第20讲:克拉默法则、逆矩阵、体积

逆矩阵

对于二阶矩阵有 [ a b c d ] − 1 = 1 a d − b c [ d − b − c a ] \begin{bmatrix}a&b\\c&d\end{bmatrix}^{-1}=\frac{1}{ad-bc}\begin{bmatrix}d&-b\\-c&a\end{bmatrix} [acbd]1=adbc1[dcba]
观察易得,系数项就是行列式的倒数,而矩阵则是由一系列代数余子式组成的。先给出公式:

A − 1 = 1 det ⁡ A C T (1) A^{-1}=\frac{1}{\det A}C^T \tag{1} A1=detA1CT(1)

其中 C T C^T CT称作 A A A伴随矩阵

观察这个公式是如何运作的: A C T = ( det ⁡ A ) I AC^T=(\det A)I ACT=(detA)I,写成矩阵形式有 [ a 11 a 12 ⋯ a 1 n ⋮ ⋮ ⋱ ⋮ a n 1 a n 2 ⋯ a n n ] [ C 11 ⋯ C n 1 C 12 ⋯ C n 2 ⋮ ⋱ ⋮ C 1 n ⋯ C n n ] = R e s \begin{bmatrix}a_{11}&a_{12}&\cdots&a_{1n}\\\vdots&\vdots&\ddots&\vdots\\a_{n1}&a_{n2}&\cdots&a_{nn}\end{bmatrix}\begin{bmatrix}C_{11}&\cdots&C_{n1}\\C_{12}&\cdots&C_{n2}\\\vdots&\ddots&\vdots\\C_{1n}&\cdots&C_{nn}\end{bmatrix}=Res a11an1a12an2a1nannC11C12C1nCn1Cn2Cnn=Res

对于这两个矩阵的乘积,观察其结果的元素 R e s 11 = a 11 C 11 + a 12 C 12 + ⋯ + a 1 n C 1 n Res_{11}=a_{11}C_{11}+a_{12}C_{12}+\cdots+a_{1n}C_{1n} Res11=a11C11+a12C12++a1nC1n,这正是上一讲提到的将行列式按第一行展开的结果。同理,对 R e s 22 , ⋯   , R e s n n Res_{22}, \cdots, Res_{nn} Res22,,Resnn都有 R e s i i = det ⁡ A Res_{ii}=\det A Resii=detA,即对角线元素均为 det ⁡ A \det A detA

再来看非对角线元素:回顾二阶的情况,如果用第一行乘以第二行的代数余子式 a 11 C 21 + a 12 C 22 a_{11}C_{21}+a_{12}C_{22} a11C21+a12C22,得到 a ( − b ) + a b = 0 a(-b)+ab=0 a(b)+ab=0。我们可以换一种角度看这个式子, a ( − b ) + a b = 0 a(-b)+ab=0 a(b)+ab=0也是一个矩阵的行列式值,即 A s = [ a b a b ] A_{s}=\begin{bmatrix}a&b\\a&b\end{bmatrix} As=[aabb]。将 det ⁡ A s \det A_{s} detAs按第二行展开,也会得到 det ⁡ A s = a ( − b ) + a b \det A_{s}=a(-b)+ab detAs=a(b)+ab,因为行列式有两行相等所以行列式值为零。

推广到 n n n阶,我们来看元素 R e s 1 n = a 11 C n 1 + a 12 C n 2 + ⋯ + a 1 n C n n Res_{1n}=a_{11}C_{n1}+a_{12}C_{n2}+\cdots+a_{1n}C_{nn} Res1n=a11Cn1+a12Cn2++a1nCnn,该元素是第一行与最后一行的代数余子式相乘之积。这个式子也可以写成一个特殊矩阵的行列式,即矩阵 A s = [ a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ a n − a 1 a n − 12 ⋯ a n − 1 n a 11 a 12 ⋯ a 1 n ] A_{s}=\begin{bmatrix}a_{11}&a_{12}&\cdots&a_{1n}\\a_{21}&a_{22}&\cdots&a_{2n}\\\vdots&\vdots&\ddots&\vdots\\a_{n-a1}&a_{n-12}&\cdots&a_{n-1n}\\a_{11}&a_{12}&\cdots&a_{1n}\end{bmatrix} As=a11a21ana1a11a12a22an12a12a1na2nan1na1n。计算此矩阵的行列式,将 det ⁡ A s \det A_{s} detAs按最后一行展开,也得到 det ⁡ A s = a 11 C n 1 + a 12 C n 2 + ⋯ + a 1 n C n n \det A_{s}=a_{11}C_{n1}+a_{12}C_{n2}+\cdots+a_{1n}C_{nn} detAs=a11Cn1+a12Cn2++a1nCnn。同理,行列式 A s A_{s} As有两行相等,其值为零。

结合对角线元素与非对角线元素的结果,我们得到 R e s = [ det ⁡ A 0 ⋯ 0 0 det ⁡ A ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ det ⁡ A ] Res=\begin{bmatrix}\det A&0&\cdots&0\\0&\det A&\cdots&0\\\vdots&\vdots&\ddots&\vdots\\0&0&\cdots&\det A\end{bmatrix} Res=detA000detA000detA,也就是 ( 1 ) (1) (1)等式右边的 ( det ⁡ A ) I (\det A)I (detA)I,得证。

MIT公开课18.06 Gilbert Strang 线性代数 笔记2 - 最小二乘法,行列式和特征值

克拉默法则求解 A x = b Ax=b Ax=b

因为我们现在有了逆矩阵的计算公式,所以对 A x = b Ax=b Ax=b x = A − 1 b = 1 det ⁡ A C T b x=A^{-1}b=\frac{1}{\det A}C^Tb x=A1b=detA1CTb,这就是计算 x x x的公式,即克莱默法则(Cramer’s rule)。

现在来观察 x = 1 det ⁡ A C T b x=\frac{1}{\det A}C^Tb x=detA1CTb,我们将得到的解拆分开来,对 x x x的第一个分量有 x 1 = y 1 det ⁡ A x_1=\frac{y_1}{\det A} x1=detAy1,这里 y 1 y_1 y1是一个数字,其值为 y 1 = b 1 C 11 + b 2 C 21 + ⋯ + b n C n 1 y_1=b_1C_{11}+b_2C_{21}+\cdots+b_nC_{n1} y1=b1C11+b2C21++bnCn1,每当我们看到数字与代数余子式乘之积求和时,都应该联想到求行列式,也就是说 y 1 y_1 y1可以看做是一个矩阵的行列式,我们设这个矩阵为 B 1 B_1 B1。所以有 x i = det ⁡ B 1 det ⁡ A x_i=\frac{\det B_1}{\det A} xi=detAdetB1,同理有 x 2 = det ⁡ B 2 det ⁡ A x_2=\frac{\det B_2}{\det A} x2=detAdetB2 x 2 = det ⁡ B 2 det ⁡ A x_2=\frac{\det B_2}{\det A} x2=detAdetB2

B 1 B_1 B1是一个型为 [ b a 2 a 3 ⋯ a n ] \Bigg[b a_2 a_3 \cdots a_n\Bigg] [ba2a3an]的矩阵,即将矩阵 A A A的第一列变为 b b b向量而得到的新矩阵。其实很容易看出, det ⁡ B 1 \det B_1 detB1可以沿第一列展开得到 y 1 = b 1 C 11 + b 2 C 21 + ⋯ + b n C n 1 y_1=b_1C_{11}+b_2C_{21}+\cdots+b_nC_{n1} y1=b1C11+b2C21++bnCn1

一般的,有 B j = [ a 1 a 2 ⋯ a j − 1 b a j + 1 ⋯ a n ] B_j=\Bigg[a_1 a_2 \cdots a_{j-1} b a_{j+1} \cdots a_n\Bigg] Bj=[a1a2aj1baj+1an],即将矩阵 A A A的第 j j j列变为 b b b向量而得到的新矩阵。所以,对于解的分量有 x j = det ⁡ B j det ⁡ A x_j=\frac{\det B_j}{\det A} xj=detAdetBj

MIT公开课18.06 Gilbert Strang 线性代数 笔记2 - 最小二乘法,行列式和特征值

这个公式虽然很漂亮,但是并不方便计算。

体积

先提出命题:行列式的绝对值等于一个箱子的体积。

来看三维空间中的情形(二维空间对应的是面积),对于 3 3 3阶方阵 A A A,取第一行 ( a 1 , a 2 , a 3 ) (a_1,a_2,a_3) (a1,a2,a3),令其为三维空间中点 A 1 A_1 A1的坐标,同理有点 A 2 , A 3 A_2, A_3 A2,A3。连接这三个点与原点可以得到三条边,使用这三条边展开得到一个平行六面体, ∥ det ⁡ A ∥ \left\|\det A\right\| detA就是该平行六面体的体积。

性质1

对于三阶单位矩阵,其体积为 det ⁡ I = 1 \det I=1 detI=1,此时这个箱子是一个单位立方体。这其实也证明了前面学过的行列式性质1。于是我们想,如果能接着证明性质2、3即可证明对于三维空间,行列式就是箱子的体积。

现在我们取矩阵 A = Q A=Q A=Q,而 Q Q Q是一个标准正交矩阵,此时这个箱子是一个立方体,可以看出其实这个箱子就是刚才的单位立方体经过旋转得到的。对于标准正交矩阵,有 Q T Q = I Q^TQ=I QTQ=I,等式两边取行列式得 det ⁡ ( Q T Q ) = 1 = ∣ Q T ∣ ∣ Q ∣ \det(Q^TQ)=1=\left|Q^T\right|\left|Q\right| det(QTQ)=1=QTQ,而根据行列式性质10有 ∣ Q T ∣ = ∣ Q ∣ \left|Q^T\right|=\left|Q\right| QT=Q,所以 原 式 = ∣ Q ∣ 2 = 1 , ∣ Q ∣ = ± 1 原式=\left|Q\right|^2=1, \left|Q\right|=\pm 1 =Q2=1,Q=±1
MIT公开课18.06 Gilbert Strang 线性代数 笔记2 - 最小二乘法,行列式和特征值

性质2

对于行列式性质2,我们交换两行并不会改变箱子的大小,同时行列式的绝对值也没有改变,得证。

性质3

接下来在考虑不再是“单位”的立方体,即长方体。 假设 Q Q Q矩阵的第一行翻倍得到新矩阵 Q 2 Q_2 Q2,此时箱子变为在第一行方向上增加一倍的长方体箱子,也就是两个“标准正交箱子”在第一行方向上的堆叠。易知这个长方体箱子是原来体积的两倍,而根据行列式性质3.a有 det ⁡ Q 2 = 2 det ⁡ Q \det Q_2=2\det Q detQ2=2detQ,于是体积也符合行列式的数乘性质。

MIT公开课18.06 Gilbert Strang 线性代数 笔记2 - 最小二乘法,行列式和特征值

我们来看二阶方阵的情形, ∣ a + a ′ b + b ′ c d ∣ = ∣ a b c d ∣ + ∣ a ′ b ′ c d ∣ \begin{vmatrix}a+a'&b+b'\\c&d\end{vmatrix}=\begin{vmatrix}a&b\\c&d\end{vmatrix}+\begin{vmatrix}a'&b'\\c&d\end{vmatrix} a+acb+bd=acbd+acbd。在二阶情况中,行列式就是一个求平行四边形面积的公式,原来我们求由四个点 ( 0 , 0 ) , ( a , b ) , ( c , d ) , ( a + c , b + d ) (0,0), (a,b), (c,d), (a+c,b+d) (0,0),(a,b),(c,d),(a+c,b+d)围成的四边形的面积,以前需要先求四边形的底边长,再做高求解,现在只需要计算 det ⁡ A = a d − b c \det A=ad-bc detA=adbc即可(更加常用的是求由 ( 0 , 0 ) , ( a , b ) , ( c , d ) (0,0), (a,b), (c,d) (0,0),(a,b),(c,d)围成的三角形的面积,即 1 2 ( a d − b c ) \frac{1}{2}(ad-bc) 21(adbc)。也就是说,如果知道了歪箱子的顶点坐标,求面积(二阶情形)或体积(三阶情形)时,我们不再需要开方、求角度,只需要计算行列式的值就行了。

MIT公开课18.06 Gilbert Strang 线性代数 笔记2 - 最小二乘法,行列式和特征值
MIT公开课18.06 Gilbert Strang 线性代数 笔记2 - 最小二乘法,行列式和特征值

再多说两句我们通过好几讲得到的这个公式,在一般情形下,由点 ( x 1 , y 1 ) , ( x 2 , y 2 ) , ( x 3 , y 3 ) (x_1,y_1), (x_2,y_2), (x_3,y_3) (x1,y1),(x2,y2),(x3,y3)围成的三角形面积等于 1 2 ∣ x 1 y 1 1 x 2 y 2 1 x 3 y 3 1 ∣ \frac{1}{2}\begin{vmatrix}x_1&y_1&1\\x_2&y_2&1\\x_3&y_3&1\end{vmatrix} 21x1x2x3y1y2y3111,计算时分别用第二行、第三行减去第一行化简到第三列只有一个 1 1 1(这个操作实际作用是将三角形移动到原点),得到 1 2 ∣ x 1 y 1 1 x 2 − x 1 y 2 − y 1 0 x 3 − x 1 y 3 − y 1 0 ∣ \frac{1}{2}\begin{vmatrix}x_1&y_1&1\\x_2-x_1&y_2-y_1&0\\x_3-x_1&y_3-y_1&0\end{vmatrix} 21x1x2x1x3x1y1y2y1y3y1100,再按照第三列展开,得到三角形面积等于 ( x 2 − x 1 ) ( y 3 − y 1 ) − ( x 3 − x 1 ) ( y 2 − y 1 ) 2 \frac{(x_2-x_1)(y_3-y_1)-(x_3-x_1)(y_2-y_1)}{2} 2(x2x1)(y3y1)(x3x1)(y2y1)

(这里大概提一下,性质3.b更详细的证明要看书)

第21讲:特征值和特征向量

特征值、特征向量是什么

给定矩阵 A A A,矩阵 A A A乘以向量 x x x,就像是使用矩阵 A A A作用在向量 x x x上,得到新的向量 A x Ax Ax。在这里,矩阵 A A A就像是一个函数,接受一个向量 x x x作为输入,给出向量 A x Ax Ax作为输出。

在这一过程中,我们对一些特殊的向量很感兴趣,他们在输入( x x x)输出( A x Ax Ax)后始终保持同一个方向,这是比较特殊的,因为在大多情况下, A x Ax Ax x x x指向不同的方向。在这种特殊的情况下, A x Ax Ax平行于 x x x,我们把满足这个条件的 x x x称为特征向量(Eigen vector)。这个平行条件用方程表示就是:

A x = λ x (1) Ax=\lambda x\tag{1} Ax=λx(1)

其中 λ \lambda λ称为特征值

例子

  • 我们试着计算特征值为 0 0 0的特征向量,此时有 A x = 0 Ax=0 Ax=0,也就是特征值为 0 0 0的特征向量应该位于 A A A的零空间中。

    也就是说,如果矩阵是奇异的,那么它将有一个特征值为 λ = 0 \lambda = 0 λ=0

  • 投影矩阵:我们再来看投影矩阵 P = A ( A T A ) − 1 A T P=A(A^TA)^{-1}A^T P=A(ATA)1AT的特征值和特征向量。用向量 b b b乘以投影矩阵 P P P得到投影向量 P b Pb Pb,在这个过程中,当 b b b已经处于投影平面(即 A A A的列空间)中时, P b Pb Pb b b b是同向的,此时 b b b投影前后不变( P b = 1 ⋅ b Pb=1\cdot b Pb=1b)。
    即在投影平面中的所有向量都是投影矩阵的特征向量,而他们的特征值均为 1 1 1

    再来观察投影平面的法向量,也就是投影一讲中的 e e e向量。我们知道对于投影,因为 e ⊥ C ( A ) e\bot C(A) eC(A),所以 P e = 0 e Pe=0e Pe=0e,即特征向量 e e e的特征值为 0 0 0

    于是,投影矩阵的特征值为 λ = 1 , 0 \lambda=1, 0 λ=1,0

  • 置换矩阵:再多讲一个例子,二阶置换矩阵 A = [ 0 1 1 0 ] A=\begin{bmatrix}0&1\\1&0\end{bmatrix} A=[0110],经过这个矩阵处理的向量,其元素会互相交换位置。

    那么特征值为 1 1 1的特征向量(即经过矩阵交换元素前后仍然不变)为 [ 1 1 ] \begin{bmatrix}1\\1\end{bmatrix} [11]

    特征值为 − 1 -1 1的特征向量(即经过矩阵交换元素前后方向相反)为 [ 1 − 1 ] \begin{bmatrix}1\\-1\end{bmatrix} [11]

再提前透露一个特征值的性质:我们把矩阵对角线元素之和称为矩阵的(trace),对于一个 n × n n\times n n×n的矩阵,将会有 n n n个特征值,而这些特征值之和等于该矩阵的迹
∑ i = 1 n λ i = ∑ i = 1 n a i i \sum_{i=1}^n \lambda_i=\sum_{i=1}^n a_{ii} i=1nλi=i=1naii

在上面二阶转置矩阵的例子中,如果我们求得了一个特征值 1 1 1,那么利用迹的性质,我们就可以直接推出另一个特征值是 − 1 -1 1

求解 A x = λ x Ax=\lambda x Ax=λx

求解思路

对于方程 A x = λ x Ax=\lambda x Ax=λx,有两个未知数,我们需要利用一些技巧从这一个方程中一次解出两个未知数,先移项得 ( A − λ I ) x = 0 (A-\lambda I)x=0 (AλI)x=0

观察 ( A − λ I ) x = 0 (A-\lambda I)x=0 (AλI)x=0,右边的 λ I \lambda I λI相当于将 A A A矩阵平移了 λ \lambda λ个单位,而如果方程有非零解,则这个平移后的矩阵 ( A − λ I ) (A-\lambda I) (AλI)一定是奇异矩阵。根据前面学到的行列式的性质,则有 det ⁡ ( A − λ I ) = 0 (2) \det{(A-\lambda{I})}=0\tag{2} det(AλI)=0(2)

这样一来,方程中就没有 x x x了,这个方程叫作特征方程(characteristic equation)。求出了特征值,再代回 ( A − λ I ) x = 0 (A-\lambda I)x=0 (AλI)x=0,继续求 ( A − λ I ) (A-\lambda I) (AλI)的零空间即可得到 x x x

例子

特征值为实数

现在计算一个简单的例子, A = [ 3 1 1 3 ] A=\begin{bmatrix}3&1\\1&3\end{bmatrix} A=[3113]
再来说一点题外话,这是一个对称矩阵,我们将得到实特征值,前面还有置换矩阵、投影矩阵,矩阵越特殊,则我们得到的特征值与特征向量也越特殊。看置换矩阵中的特征值,两个实数 1 , − 1 1, -1 1,1,而且它们的特征向量是正交的。

回到例题,计算 det ⁡ ( A − λ I ) = ∣ 3 − λ 1 1 3 − λ ∣ \det{(A-\lambda{I})}=\begin{vmatrix}3-\lambda&1\\1&3-\lambda\end{vmatrix} det(AλI)=3λ113λ,也就是对角矩阵平移再取行列式。原式继续化简得 ( 3 − λ ) 2 − 1 = λ 2 − 6 λ + 8 = 0 , λ 1 = 4 , λ 2 = 2 (3-\lambda)^2-1=\lambda^2-6\lambda+8=0, \lambda_1=4,\lambda_2=2 (3λ)21=λ26λ+8=0,λ1=4,λ2=2。可以看到一次项系数中的 6 6 6就是矩阵的迹,常数项8就是矩阵的行列式。

继续计算特征向量, A − 4 I = [ − 1 1 1 − 1 ] A-4I=\begin{bmatrix}-1&1\\1&-1\end{bmatrix} A4I=[1111],显然矩阵是奇异的(如果是非奇异说明特征值计算有误),解出矩阵的零空间 x 1 = [ 1 1 ] x_1=\begin{bmatrix}1\\1\end{bmatrix} x1=[11];同理计算另一个特征向量, A − 2 I = [ 1 1 1 1 ] A-2I=\begin{bmatrix}1&1\\1&1\end{bmatrix} A2I=[1111],解出矩阵的零空间 x 2 = [ 1 − 1 ] x_2=\begin{bmatrix}1\\-1\end{bmatrix} x2=[11]

回顾前面转置矩阵的例子,对矩阵 A ′ = [ 0 1 1 0 ] A'=\begin{bmatrix}0&1\\1&0\end{bmatrix} A=[0110] λ 1 = 1 , x 1 = [ 1 1 ] , λ 2 = − 1 , x 2 = [ − 1 1 ] \lambda_1=1, x_1=\begin{bmatrix}1\\1\end{bmatrix}, \lambda_2=-1, x_2=\begin{bmatrix}-1\\1\end{bmatrix} λ1=1,x1=[11],λ2=1,x2=[11]。看转置矩阵 A ′ A' A与本例中的对称矩阵 A A A有什么联系。

易得 A = A ′ + 3 I A=A'+3I A=A+3I,两个矩阵特征值相同,而其特征值刚好相差 3 3 3。也就是如果给一个矩阵加上 3 I 3I 3I,则它的特征值会加 3 3 3,而特征向量不变。
这很容易证明,如果 A x = λ x Ax=\lambda x Ax=λx,则 ( A + 3 I ) x = λ x + 3 x = ( λ + 3 ) x (A+3I)x=\lambda x+3x=(\lambda+3)x (A+3I)x=λx+3x=(λ+3)x,所以 x x x还是原来的 x x x,而 λ \lambda λ变为 λ + 3 \lambda+3 λ+3

接下来,看一个关于特征向量认识的误区:已知 A x = λ x , B x = α x Ax=\lambda x, Bx=\alpha x Ax=λx,Bx=αx,则有 ( A + B ) x = ( λ + α ) x (A+B)x=(\lambda+\alpha)x (A+B)x=(λ+α)x,当 B = 3 I B=3I B=3I时,在上例中我们看到,确实成立,但是如果 B B B为任意矩阵,则推论不成立,因为这两个式子中的特征向量 x x x并不一定相同,所以两个式子的通常情况是 A x = λ x , B y = α y Ax=\lambda x, By=\alpha y Ax=λx,By=αy,它们也就无从相加了。

特征值为复数

再来看旋转矩阵的例子,旋转 9 0 ∘ 90^\circ 90的矩阵 Q = [ cos ⁡ 90 − sin ⁡ 90 sin ⁡ 90 cos ⁡ 90 ] = [ 0 − 1 1 0 ] Q=\begin{bmatrix}\cos 90&-\sin 90\\\sin 90&\cos 90\end{bmatrix}=\begin{bmatrix}0&-1\\1&0\end{bmatrix} Q=[cos90sin90sin90cos90]=[0110](可将一个向量旋转 9 0 ∘ 90^\circ 90,用 Q Q Q表示因为旋转矩阵是正交矩阵中很重要的例子)

上面提到特征值的一个性质:特征值之和等于矩阵的迹;现在有另一个性质:特征值之积等于矩阵的行列式

∏ i = 1 n λ i = det ⁡ A \prod_{i=1}^n\lambda_i=\det A i=1nλi=detA

对于 Q Q Q矩阵,有 { λ 1 + λ 2 = 0 λ 1 ⋅ λ 2 = 1 \begin{cases}\lambda_1+\lambda_2&=0\\\lambda_1\cdot\lambda_2&=1\end{cases} {λ1+λ2λ1λ2=0=1,再来思考特征值与特征向量的由来,哪些向量旋转 9 0 ∘ 90^\circ 90后与自己平行,于是遇到了麻烦,并没有这种向量,也没有这样的特征值来满足前面的方程组。

我们来按部就班的计算, det ⁡ ( Q − λ I ) = ∣ λ − 1 1 λ ∣ = λ 2 + 1 = 0 \det(Q-\lambda I)=\begin{vmatrix}\lambda&-1\\1&\lambda\end{vmatrix}=\lambda^2+1=0 det(QλI)=λ11λ=λ2+1=0,于是特征值为 λ 1 = i , λ 2 = − i \lambda_1=i, \lambda_2=-i λ1=i,λ2=i,我们看到这两个值满足迹与行列式的方程组,即使矩阵全是实数,其特征值也可能不是实数。本例中即出现了一对共轭复数,我们可以说,如果矩阵越接近对称,那么特征值就越接近实数。如果矩阵越不对称,就像本例, Q T = − Q Q^T=-Q QT=Q,这是一个反对称的矩阵,于是我得到了纯虚的特征值,这是极端情况,通常我们见到的矩阵是介于对称与反对称之间的。

于是我们看到,对于好的矩阵(置换矩阵)有实特征值及正交的特征向量,对于不好的矩阵( 9 0 ∘ 90^\circ 90旋转矩阵)有纯虚的特征值。

有特征值相等

再来看一个更糟的情况, A = [ 3 1 0 3 ] A=\begin{bmatrix}3&1\\0&3\end{bmatrix} A=[3013],这是一个三角矩阵,我们可以直接得出其特征值,即对角线元素。来看如何得到这一结论的: det ⁡ ( A − λ I ) = ∣ 3 − λ 1 0 3 − λ ∣ = ( 3 − λ ) 2 = 0 \det(A-\lambda I)=\begin{vmatrix}3-\lambda&1\\0&3-\lambda\end{vmatrix}=(3-\lambda)^2=0 det(AλI)=3λ013λ=(3λ)2=0,于是 λ 1 = 3 , λ 2 = 3 \lambda_1=3, \lambda_2=3 λ1=3,λ2=3。而我们之所以说这是一个糟糕的状况,在于它的特征向量。

带入特征值计算特征向量,带入 λ 1 = 3 \lambda_1=3 λ1=3 ( A − λ I ) x = [ 0 1 0 0 ] [ x 1 x 2 ] = [ 0 0 ] (A-\lambda I)x=\begin{bmatrix}0&1\\0&0\end{bmatrix}\begin{bmatrix}x_1\\x_2\end{bmatrix}=\begin{bmatrix}0\\0\end{bmatrix} (AλI)x=[0010][x1x2]=[00],算出一个特征值 x 1 = [ 1 0 ] x_1=\begin{bmatrix}1\\0\end{bmatrix} x1=[10],当我们带入第二个特征值 λ 1 = 3 \lambda_1=3 λ1=3时,我们无法得到另一个与 x 1 x_1 x1线性无关的特征向量了。

而本例中的矩阵 A A A是一个退化矩阵(degenerate matrix),重复的特征值在特殊情况下可能导致特征向量的短缺。

这一讲我们看到了足够多的“不好”的矩阵,下一讲会介绍一般情况下的特征值与特征向量。

第22讲:对角化和 A A A的幂

特征值、特征向量的用途:对角化矩阵

S − 1 A S = Λ S^{-1}AS=\Lambda S1AS=Λ

上一讲我们提到关键方程 A x = λ x Ax=\lambda x Ax=λx,通过 det ⁡ ( A − λ I ) = 0 \det(A-\lambda I)=0 det(AλI)=0得到特征值 λ \lambda λ,再带回方程算出特征向量 x x x

在得到特征值与特征向量后,该如何使用它们?我们可以利用特征向量来对角化给定矩阵。

n n n阶方阵 A A A n n n个线性无关的特征向量 x 1 , x 2 , ⋯   , x n x_1, x_2, \cdots, x_n x1,x2,,xn,使用特征向量作为列向量组成一个矩阵 S = [ x 1 x 2 ⋯ x n ] S=\Bigg[x_1x_2\cdots x_n\Bigg] S=[x1x2xn],即特征向量矩阵, 再使用公式 S − 1 A S = Λ (1) S^{-1}AS=\Lambda\tag{1} S1AS=Λ(1)
可将 A A A对角化。注意到公式中有 S − 1 S^{-1} S1,也就是说特征向量矩阵 S S S必须是可逆的,于是我们需要 n n n个线性无关的特征向量。

现在,假设 A A A n n n个线性无关的特征向量,将它们按列组成特征向量矩阵 S S S,则 A S = A [ x 1 x 2 ⋯ x n ] AS=A\Bigg[x_1x_2\cdots x_n\Bigg] AS=A[x1x2xn],当我们分开做矩阵与每一列相乘的运算时,易看出 A x 1 Ax_1 Ax1就是矩阵与自己的特征向量相乘,其结果应该等于 λ 1 x 1 \lambda_1x_1 λ1x1。那么 A S = [ ( λ 1 x 1 ) ( λ 2 x 2 ) ⋯ ( λ n x n ) ] AS=\Bigg[(\lambda_1x_1)(\lambda_2x_2)\cdots(\lambda_nx_n)\Bigg] AS=[(λ1x1)(λ2x2)(λnxn)]。可以进一步化简原式,使用右乘向量按列操作矩阵的方法,将特征值从矩阵中提出来,得到 [ x 1 x 2 ⋯ x n ] [ λ 1 0 ⋯ 0 0 λ 2 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ λ n ] = S Λ \Bigg[x_1x_2\cdots x_n\Bigg]\begin{bmatrix}\lambda_1&0&\cdots&0\\0&\lambda_2&\cdots&0\\\vdots&\vdots&\ddots&\vdots\\0&0&\cdots&\lambda_n\end{bmatrix}=S\Lambda [x1x2xn]λ1000λ2000λn=SΛ

于是我们看到,从 A S AS AS出发,得到了 S Λ S\Lambda SΛ,特征向量矩阵又一次出现了,后面接着的是一个对角矩阵,即特征值矩阵。这样,再继续左乘 S − 1 S^{-1} S1就得到了公式 ( 1 ) (1) (1)。当然,运算的前提条件是特征向量矩阵 S S S可逆,即矩阵 A A A n n n个线性无关的特征向量。这个式子还有另一种写法, A = S Λ S − 1 A=S\Lambda S^{-1} A=SΛS1

我们来看如何应用这个公式,比如说要计算 A 2 A^2 A2

  • 先从 A x = λ x Ax=\lambda x Ax=λx开始,如果两边同乘以 A A A,有 A 2 x = λ A x = λ 2 x A^2x=\lambda Ax=\lambda^2x A2x=λAx=λ2x,于是得出结论,对于矩阵 A 2 A^2 A2,其特征值也会取平方,而特征向量不变。
  • 再从 A = S Λ S − 1 A=S\Lambda S^{-1} A=SΛS1开始推导,则有 A 2 = S Λ S − 1 S Λ S − 1 = S Λ 2 S − 1 A^2=S\Lambda S^{-1}S\Lambda S^{-1}=S\Lambda^2S^{-1} A2=SΛS1SΛS1=SΛ2S1。同样得到特征值取平方,特征向量不变。

两种方法描述的是同一个现象,即对于矩阵幂运算 A 2 A^2 A2,其特征向量不变,而特征值做同样的幂运算。对角矩阵 Λ 2 = [ λ 1 2 0 ⋯ 0 0 λ 2 2 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ λ n 2 ] \Lambda^2=\begin{bmatrix}\lambda_1^2&0&\cdots&0\\0&\lambda_2^2&\cdots&0\\\vdots&\vdots&\ddots&\vdots\\0&0&\cdots&\lambda_n^2\end{bmatrix} Λ2=λ12000λ22000λn2

特征值和特征向量给我们了一个深入理解矩阵幂运算的方法, A k = S Λ k S − 1 A^k=S\Lambda^kS^{-1} Ak=SΛkS1

再来看一个矩阵幂运算的应用:如果 k → ∞ k\to\infty k,则 A k → 0 A^k\to 0 Ak0(趋于稳定stable)的条件是什么?
S Λ k S − 1 S\Lambda^kS^{-1} SΛkS1易得,对于 i = 1 , 2 , 3 , . . . , n i=1,2,3,...,n i=1,2,3,...,n,每一个 i i i都有 ∣ λ i ∣ < 1 |\lambda_i|<1 λi<1时,即可。

关于矩阵可对角化的条件

  • 如果一个矩阵 n n n个互不相同的特征值(即没有重复的特征值),则该矩阵具有 n n n个线性无关的特征向量,因此该矩阵可对角化。

  • 如果一个矩阵的特征值存在重复值,则该矩阵可能具有 n n n个线性无关的特征向量。比如取 10 10 10阶单位矩阵, I 10 I_{10} I10具有 10 10 10个相同的特征值 1 1 1,但是单位矩阵的特征向量并不短缺,每个向量都可以作为单位矩阵的特征向量,我们很容易得到 10 10 10个线性无关的特征向量。当然这里例子中的 I 10 I_{10} I10的本来就是对角矩阵,它的特征值直接写在矩阵中,即对角线元素。

    同样的,如果是三角矩阵,特征值也写在对角线上,但是这种情况我们可能会遇到麻烦。
    矩阵 A = [ 2 1 0 2 ] A=\begin{bmatrix}2&1\\0&2\end{bmatrix} A=[2012],计算行列式值 det ⁡ ( A − λ I ) = ∣ 2 − λ 1 0 2 − λ ∣ = ( 2 − λ ) 2 = 0 \det(A-\lambda I)=\begin{vmatrix}2-\lambda&1\\0&2-\lambda\end{vmatrix}=(2-\lambda)^2=0 det(AλI)=2λ012λ=(2λ)2=0,所以特征值为 λ 1 = λ 2 = 2 \lambda_1=\lambda_2=2 λ1=λ2=2,带回 A x = λ x Ax=\lambda x Ax=λx得到计算 [ 0 1 0 0 ] \begin{bmatrix}0&1\\0&0\end{bmatrix} [0010]的零空间,我们发现 x 1 = x 2 = [ 1 0 ] x_1=x_2=\begin{bmatrix}1\\0\end{bmatrix} x1=x2=[10],代数重度(algebraic multiplicity,计算特征值重复次数时,就用代数重度,它是多项式根的次数,这里的多项式就是 ( 2 − λ ) 2 (2-\lambda)^2 (2λ)2)为 2 2 2,这个矩阵无法对角化。这就是上一讲的退化矩阵。

我们不打算深入研究有重复特征值的情形。

A A A的幂

u k + 1 = A u k u_{k+1}=Au_k uk+1=Auk

已知矩阵 A A A满足可对角化条件, u 0 u_0 u0为特征向量,求解 u k + 1 = A u k u_{k+1} = Au_k uk+1=Auk

u 1 = A u 0 u_1=Au_0 u1=Au0开始, u 2 = A 2 u 0 u_2=A^2u_0 u2=A2u0,所有 u k = A k u 0 u_k=A^ku_0 uk=Aku0。下一讲涉及微分方程(differential equation),会有求导的内容,本讲先引入简单的差分方程(difference equation)。本例是一个一阶差分方程组(first order system)。

要解此方程,需要将 u 0 u_0 u0展开为矩阵 A A A特征向量的线性组合,即 u 0 = c 1 x 1 + c 2 x 2 + ⋯ + c n x n = [ x 1 x 2 ⋯ x n ] [ c 1 c 2 ⋮ c n ] = S c u_0=c_1x_1+c_2x_2+\cdots+c_nx_n=\Bigg[x_1x_2\cdots x_n\Bigg]\begin{bmatrix}c_1\\c_2\\\vdots\\c_n\end{bmatrix}=Sc u0=c1x1+c2x2++cnxn=[x1x2xn]c1c2cn=Sc。于是 A u 0 = c 1 A x 1 + c 2 A x 2 + ⋯ + c n A x n = c 1 λ 1 x 1 + c 2 λ 2 x 2 + ⋯ + c n λ n x n Au_0=c_1Ax_1+c_2Ax_2+\cdots+c_nAx_n=c_1\lambda_1x_1+c_2\lambda_2x_2+\cdots+c_n\lambda_nx_n Au0=c1Ax1+c2Ax2++cnAxn=c1λ1x1+c2λ2x2++cnλnxn。继续化简原式, A u 0 = [ x 1 x 2 ⋯ x n ] [ λ 1 0 ⋯ 0 0 λ 2 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ λ n ] [ c 1 c 2 ⋮ c n ] = S Λ c Au_0=\Bigg[x_1x_2\cdots x_n\Bigg]\begin{bmatrix}\lambda_1&0&\cdots&0\\0&\lambda_2&\cdots&0\\\vdots&\vdots&\ddots&\vdots\\0&0&\cdots&\lambda_n\end{bmatrix}\begin{bmatrix}c_1\\c_2\\\vdots\\c_n\end{bmatrix}=S\Lambda c Au0=[x1x2xn]λ1000λ2000λnc1c2cn=SΛc。用矩阵的方式同样可以得到该式: A u 0 = S Λ S − 1 u 0 = S Λ S − 1 S c = S Λ c Au_0=S\Lambda S^{-1}u_0=S\Lambda S^{-1}Sc=S\Lambda c Au0=SΛS1u0=SΛS1Sc=SΛc

那么如果我们要求 A 100 u 0 A^{100}u_0 A100u0,则只需要将 λ \lambda λ变为 λ 100 \lambda^{100} λ100,而系数 c c c与特征向量 x x x均不变。

当我们真的要计算 A 100 u 0 A^{100}u_0 A100u0时,就可以使用 S Λ 100 c = c 1 λ 1 100 x 1 + c 2 λ 2 100 x 2 + ⋯ + c n λ n 100 x n S\Lambda^{100}c=c_1\lambda_1^{100}x_1+c_2\lambda_2^{100}x_2+\cdots+c_n\lambda_n^{100}x_n SΛ100c=c1λ1100x1+c2λ2100x2++cnλn100xn

例子:斐波那契数列动态增长

问题描述

接下来看一个斐波那契数列(Fibonacci sequence)的例子:

0 , 1 , 1 , 2 , 3 , 5 , 8 , 13 , ⋯   , F 100 = ? 0,1,1,2,3,5,8,13,\cdots,F_{100}=? 0,1,1,2,3,5,8,13,,F100=?,我们要求第一百项的公式,并观察这个数列是如何增长的。可以想象这个数列并不是稳定数列,因此无论如何该矩阵的特征值并不都小于一,这样才能保持增长。而他的增长速度,则由特征值来决定。

求解

求特征值

已知 F k + 2 = F k + 1 + F k F_{k+2}=F_{k+1}+F_{k} Fk+2=Fk+1+Fk,但这不是 u k + 1 = A u k u_{k+1}=Au_{k} uk+1=Auk的形式,而且只有一个方程,而不是方程组,同时这是一个二阶差分方程(就像含有二阶导数的微分方程,我们希望能够化简为一阶导数,也就是一阶差分)。

使用一个小技巧,令 u k = [ F k + 1 F k ] u_{k}=\begin{bmatrix}F_{k+1}\\F_{k}\end{bmatrix} uk=[Fk+1Fk],再追加一个方程成方程组: { F k + 2 = F k + 1 + F k F k + 1 = F k + 1 \begin{cases}F_{k+2}&=F_{k+1}+F_{k}\\F_{k+1}&=F_{k+1}\end{cases} {Fk+2Fk+1=Fk+1+Fk=Fk+1
u k = [ F k + 1 F k ] u_k=\begin{bmatrix}F_{k+1}\\F_{k}\end{bmatrix} uk=[Fk+1Fk],把方程组用矩阵表达得到 [ F k + 2 F k + 1 ] = [ 1 1 1 0 ] [ F k + 1 F k ] \begin{bmatrix}F_{k+2}\\F_{k+1}\end{bmatrix}=\begin{bmatrix}1&1\\1&0\end{bmatrix}\begin{bmatrix}F_{k+1}\\F_{k}\end{bmatrix} [Fk+2Fk+1]=[1110][Fk+1Fk],于是我们得到了 u k + 1 = A u k , A = [ 1 1 1 0 ] u_{k+1}=Au_{k}, A=\begin{bmatrix}1&1\\1&0\end{bmatrix} uk+1=Auk,A=[1110]。我们把二阶标量方程(second-order scalar problem)转化成了一阶向量方程组(first-order system)。

我们的矩阵 A = [ 1 1 1 0 ] A=\begin{bmatrix}1&1\\1&0\end{bmatrix} A=[1110]是一个对称矩阵,所以它的特征值将会是实数,且他的特征向量将会互相正交。因为是二阶,我们可以直接利用迹与行列式解方程组 { λ 1 + λ 2 = 1 λ 1 ⋅ λ 2 = − 1 \begin{cases}\lambda_1+\lambda_2&=1\\\lambda_1\cdot\lambda_2&=-1\end{cases} {λ1+λ2λ1λ2=1=1。在求解之前,我们先写出一般解法并观察 ∣ A − λ I ∣ = ∣ 1 − λ 1 1 − λ ∣ = λ 2 − λ − 1 = 0 \left|A-\lambda I\right|=\begin{vmatrix}1-\lambda&1\\1&-\lambda\end{vmatrix}=\lambda^2-\lambda-1=0 AλI=1λ11λ=λ2λ1=0,与前面斐波那契数列的递归式 F k + 2 = F k + 1 + F k → F k + 2 − F k + 1 − F k = 0 F_{k+2}=F_{k+1}+F_{k}\rightarrow F_{k+2}-F_{k+1}-F_{k}=0 Fk+2=Fk+1+FkFk+2Fk+1Fk=0比较,我们发现这两个式子在项数与幂次上非常相近。

  • 用求根公式解特征值得 { λ 1 = 1 2 ( 1 + 5 ) ≈ 1.618 λ 2 = 1 2 ( 1 − 5 ) ≈ − 0.618 \begin{cases}\lambda_1=\frac{1}{2}\left(1+\sqrt{5}\right)\approx{1.618}\\\lambda_2=\frac{1}{2}\left(1-\sqrt{5}\right)\approx{-0.618}\end{cases} {λ1=21(1+5 )1.618λ2=21(15 )0.618,得到两个不同的特征值,一定会有两个线性无关的特征向量,则该矩阵可以被对角化。
求特征向量

我们先来观察这个数列是如何增长的,数列增长由什么决定?——特征值。哪一个特征值起决定性作用?——较大的一个。

F 100 ≈ c 1 ( 1 + 5 2 ) 100 F_{100}\approx c_1\left(\frac{1+\sqrt{5}}{2}\right)^{100} F100c1(21+5 )100,由于 − 0.618 -0.618 0.618在幂增长中趋近于 0 0 0,所以近似的忽略该项,剩下较大的项,我们可以说数量增长的速度大约是 1.618 1.618 1.618。可以看出,这种问题与求解 A x = b Ax=b Ax=b不同,这是一个动态的问题, A A A的幂在不停的增长,而问题的关键就是这些特征值。

  • 继续求解特征向量, A − λ I = [ 1 − λ 1 1 − λ ] A-\lambda I=\begin{bmatrix}1-\lambda&1\\1&-\lambda\end{bmatrix} AλI=[1λ11λ],因为有根式且矩阵只有二阶,我们直接观察 [ 1 − λ 1 1 − λ ] [ ? ? ] = 0 \begin{bmatrix}1-\lambda&1\\1&-\lambda\end{bmatrix}\begin{bmatrix}?\\?\end{bmatrix}=0 [1λ11λ][??]=0,由于 λ 2 − λ − 1 = 0 \lambda^2-\lambda-1=0 λ2λ1=0,则其特征向量为 [ λ 1 ] \begin{bmatrix}\lambda\\1\end{bmatrix} [λ1],即 x 1 = [ λ 1 1 ] , x 2 = [ λ 2 1 ] x_1=\begin{bmatrix}\lambda_1\\1\end{bmatrix}, x_2=\begin{bmatrix}\lambda_2\\1\end{bmatrix} x1=[λ11],x2=[λ21]
求系数c

最后,计算初始项 u 0 = [ F 1 F 0 ] = [ 1 0 ] u_0=\begin{bmatrix}F_1\\F_0\end{bmatrix}=\begin{bmatrix}1\\0\end{bmatrix} u0=[F1F0]=[10],现在将初始项用特征向量表示出来 [ 1 0 ] = c 1 x 1 + c 2 x 2 \begin{bmatrix}1\\0\end{bmatrix}=c_1x_1+c_2x_2 [10]=c1x1+c2x2,计算系数得 c 1 = 5 5 , c 2 = − 5 5 c_1=\frac{\sqrt{5}}{5}, c_2=-\frac{\sqrt{5}}{5} c1=55 ,c2=55 ,问题解决。

思路总结

来回顾整个问题,对于动态增长的一阶方程组,初始向量是 u 0 u_0 u0,关键在于确定 A A A的特征值及特征向量。特征值将决定增长的趋势,发散至无穷还是收敛于某个值。接下来需要找到一个展开式,把 u 0 u_0 u0展开成特征向量的线性组合。

  • 再下来就是套用公式,即 A A A k k k次方表达式 A k = S Λ k S − 1 A^k=S\Lambda^kS^{-1} Ak=SΛkS1,则有 u 99 = A u 98 = ⋯ = A 99 u 0 = S Λ 99 S − 1 S c = S Λ 99 c u_{99}=Au_{98}=\cdots=A^{99}u_{0}=S\Lambda^{99}S^{-1}Sc=S\Lambda^{99}c u99=Au98==A99u0=SΛ99S1Sc=SΛ99c,代入特征值、特征向量得 u 99 = [ F 100 F 99 ] = [ 1 + 5 2 1 − 5 2 1 1 ] [ ( 1 + 5 2 ) 99 0 0 ( 1 − 5 2 ) 99 ] [ 5 5 − 5 5 ] = [ c 1 λ 1 100 + c 2 λ 2 100 c 1 λ 1 99 + c 2 λ 2 99 ] u_{99}=\begin{bmatrix}F_{100}\\F_{99}\end{bmatrix}=\begin{bmatrix}\frac{1+\sqrt{5}}{2}&\frac{1-\sqrt{5}}{2}\\1&1\end{bmatrix}\begin{bmatrix}\left(\frac{1+\sqrt{5}}{2}\right)^{99}&0\\0&\left(\frac{1-\sqrt{5}}{2}\right)^{99}\end{bmatrix}\begin{bmatrix}\frac{\sqrt{5}}{5}\\-\frac{\sqrt{5}}{5}\end{bmatrix}=\begin{bmatrix}c_1\lambda_1^{100}+c_2\lambda_2^{100}\\c_1\lambda_1^{99}+c_2\lambda_2^{99}\end{bmatrix} u99=[F100F99]=[21+5 1215 1](21+5 )9900(215 )99[55 55 ]=[c1λ1100+c2λ2100c1λ199+c2λ299],最终结果为 F 100 = c 1 λ 1 100 + c 2 λ 2 100 F_{100}=c_1\lambda_1^{100}+c_2\lambda_2^{100} F100=c1λ1100+c2λ2100

  • 原式的通解为 u k = c 1 λ k x 1 + c 2 λ k x 2 u_k=c_1\lambda^kx_1+c_2\lambda^kx_2 uk=c1λkx1+c2λkx2

下一讲将介绍求解微分方程。