《线性代数(第6版)》学习笔记
《线性代数(第6版)》由Gilbert Strang(吉尔伯特·斯特朗)编写,是线性代数领域的经典教材。
这个笔记的内容来自MIT的线性代数课程以及《线性代数(第6版)》这本教材。
线性方程组的几何解释
线性组合
我们可以将其表示为矩阵形式:
我们可以将其记为 \(Ax=b\)。
站在行的角度来看,这个方程组中的每个方程都可以确定一条直线,方程组是在求两条直线的交点。
站在列的角度来看,它的列视图可以表示为:
这实际上是两个列向量的线性组合(Linear Combination),线性组合就是把向量加法和数乘结合起来的运算,线性组合的结果是一个新的向量。
考虑以下三元线性方程组
和二元线性方程组同理,站在行的角度,每个方程都可以确定一个平面,方程组是在求三个平面的交点。站在列的角度,可以将方程组表示为 \(Ax = b\)。
奇异/不可逆
站在列的角度,考虑这样一个问题,对于 \(Ax = b\),是不是对于任意的 \(b\),都存在解 \(x\) 呢?换句话说,列向量的线性组合能否覆盖整个三维空间?
假设三个列向量处于同一个平面内,答案就是否定的,一个平面外的向量必然不能被这三个列向量的线性组合表示出来。这种情况,我们称之为奇异(Singular)或矩阵不可逆(Invertible)。(原因在于这三个列向量不是完全相互独立的)
矩阵乘向量
两种方法:
- 将矩阵的每一行与向量做点积
- 将矩阵的列向量与向量的每个分量做线性组合
矩阵消元(Elimination)
消元和回代
矩阵消元是让每个方程组消去一个未知数,使系数矩阵成为一个上三角矩阵 \(U\)(又叫高斯消元法)。
考虑以下线性方程组:
我们可以将其表示为矩阵相乘形式 \(Ax = b\)
消元法要将系数矩阵 \(A\) 变为上三角矩阵 \(U\):
对角线上的元素称为主元(Pivot),主元不能是0。
如果主元的数量不够,少于未知数的数量,意味着消元法失效了。
回代(Back Substitution)
将线性方程组等号右侧的 \(b\) 加入到系数矩阵中,新的矩阵称为增广矩阵(Augmented Matrix),对增广矩阵做消元法,最右侧一列会同步变化,我们将新的一列记为 \(c\):
有了三角形式的增广矩阵,我们就可以从最后一个方程开始,由下往上依次将未知数带入到方程组中,求解出未知数,最后这个代入并求解的过程,叫做回代。
矩阵乘法的列视角和行视角
根据上述内容,矩阵 A 乘以一个列向量 b ,实际上是A 的列向量的线性组合,以 b 的各分量为系数,最终得到一个列向量。
站在行视角来看,一个行向量 r 乘以矩阵 A ,实际上是 A 的行向量的线性组合,以 r 的各分量为系数,最终得到一个行向量。
为什么这里要提出矩阵乘法的行视角呢?因为上述消元法实际上是对矩阵的行做线性组合,因此,利用矩阵乘法的行视角,我们可以将消元法表示为一个矩阵乘法的形式。
上一节中的一系列消元步骤,可以表示为:
左侧的两个矩阵称为初等矩阵(Elementary Matrix)或消元矩阵(Elimination Matrix),记作 \(E\),它表示对矩阵做了一次行操作/行变换,\(E_{ij}\) 表示要消去原矩阵第 i 行、第 j 列的元素。
(假设有一个矩阵乘法 AB = C,现在已知 B 和 C,要求出 A,站在列的视角,可以将 A 视为一组新的基向量,站在行的视角,可以将 A 是为对 B 做一系列行变换的矩阵,这两种方法都能快速得到A)。
置换矩阵(Permutation Matrix)是一种特殊的初等矩阵,用于交换矩阵的行或列,交换单位矩阵的对应行即可得到置换矩阵。
两个矩阵相乘,左侧矩阵是对右侧矩阵做行变换,右侧矩阵是对左侧矩阵做列变换。
(注意,这里提到的行变换和列变换是针对整个矩阵而言的,而线性变换是针对向量而言的。)
矩阵乘法满足结合律,但不满足交换律。
矩阵乘法和逆
矩阵乘法
矩阵乘法 AB = C 的五种计算方法:
- 对 A 的单行和 B 的单列做点积
- 将 AB = C 视为 A 的列向量的线性组合,B 的每一列是 C 的对应列的系数
- 将 AB = C 视为 B 的行向量的线性组合,A 的每一行是 C 的对应行的系数
- 对 A 的单列和 B 的单行做矩阵乘法,然后对所有结果求和,假设 A 有 n 列,B 有 n 行,那么结果是对 n 个矩阵求和。
- 分块乘法。
以下是方法 4 的一个例子:
先来看单列和单行相乘的结果:
实际上是对左边的列向量或右边的行向量做了按倍数放大操作,这些向量的方向都是同一方向,而且没有发生变化,这个矩阵的行空间和列空间都在同一条直线上。
矩阵的逆(Inverse)
\(A^{-1}A = I\)
如果 A 是方阵,则 \(AA^{-1} = I\)
A 叫做可逆矩阵或非奇异矩阵。
逆矩阵不一定存在。
判断一个矩阵是否可逆(例如 \(A = \begin{bmatrix} 1 & 2 \\ 3 & 6 \\ \end{bmatrix}\) )有以下方法:
- 行列式为0,则矩阵不可逆
- 考虑是否存在一个矩阵和它相乘能够得到一个单位矩阵,由于它是个方阵,既可以考虑把它放在左边的情况,也可以考虑放在右边的情况。
- 考虑是否存在一个非零向量x,使得 Ax = 0 ,如果存在这样的非零向量x,则矩阵A不可逆。一方面从线性方程组的角度来看,如果 A 可逆,它的主元数量应该等于未知数的数量,Ax = 0 只有零解,x 不会是非零向量,另一方面,从线性组合的角度来看,一个可逆的矩阵,它的列向量是线性无关的,不可能通过线性组合得到零向量,除非所有系数都是零。如果 A 存在逆矩阵,可以在方程 Ax = 0 左右两侧同时乘以 A的逆,只能得到 x = 0。
一个不可逆的、奇异的矩阵,它的列向量是线性相关的,可以通过线性组合得到零向量,这意味着 Ax = 0 存在非零解 x。
如果要求一个矩阵的逆,可以利用 \(AA^{-1} = I\) 将问题转化为 求 \(AX = I\) 的问题,其中 X 是未知矩阵,可以将 I 看作是多个列向量组成的矩阵,然后对每个列向量分别求解线性方程组 \(Ax = e_i\),其中 \(e_i\) 是 I 的一个列向量,最终将所有的解组合成矩阵 X 即可。
高斯-约旦消元法(Gauss-Jordan Elimination)也可以用来求矩阵的逆,具体做法是将矩阵 A 和单位矩阵 I 拼接成增广矩阵 [A | I],然后对增广矩阵做行变换,直到左侧的 A 变成单位矩阵,此时右侧的矩阵就是 A 的逆矩阵 \(A^{-1}\)(其实就是上面求解多个线性方程组方法的简化版)。
高斯-约旦消元法可以很容易地从求解线性方程组的角度来理解,还有一种理解方式,假设 \([A | I] \to [I | A']\) 这个变换是由 \(E\) 实现的,即 \(E[A | I] = [I | A']\),那么根据矩阵分块乘法,\(EA = I\),\(EI = A'\),很容易就能得到 \(A' = A^{-1}\)。
两个矩阵相乘的逆,\((AB)^{-1} = B^{-1}A^{-1}\),这很容易证明,\((AB)(AB)^{-1} = I, (AB)(B^{-1}A^{-1}) = A(BB^{-1})A^{-1} = AIA^{-1} = AA^{-1} = I\),这个性质也很容易理解,从线性变换的角度来看,先做 B 变换,再做 A 变换,那么要想倒回去,必须先做 A 的逆变换,再做 B 的逆变换。
矩阵的逆与转置(Transpose) 满足 \((A^T)^{-1} = (A^{-1})^T\), 证明也很简单,\(AA^{-1} = I = I^T = (AA^{-1})^T = (A^{-1})^TA^T\),由 \((A^{-1})^TA^T = I\) 可以得到 \(A^T\) 和 \((A^{-1})^T\) 互为逆。这里用到一个转置性质:\((AB)^T = B^TA^T\)。
矩阵分解(A = LU)
怎么分解
假如 2x2 矩阵 A 通过一次行变换 \(E_{21}\) 消元,变成了上三角矩阵 U,即 \(E_{21}A = U\),现在我们想知道如何从 U 反向变回 A,也就是存在一个 L 使得 A = LU,L 是 \(E_{21}\) 的逆矩阵。(U 是个上三角矩阵,L 是个下三角矩阵)
例如:
上面这个例子不仅将 A 分解成了 LU 的形式,还进一步分解成了 LDU 的形式,其中 D 是一个对角矩阵。
如果 A 是 3x3 矩阵,会复杂一些,\(E_{32}E_{31}E_{21}A = U, A = L U,L = E_{21}^{-1}E_{31}^{-1}E_{32}^{-1}\)。
假设有一个 3x3 矩阵 A,它的第三行第一列元素为0,那么它在消元时只需要做两次行变换 \(E_{32}E_{21}A = U\),对应的 L 矩阵为 \(L = E_{21}^{-1}E_{32}^{-1}\),如下所示:
我们发现一个问题,虽然我们没有做 \(E_{31}\) 这个行变换,但是 E 矩阵的第三行第一列元素并不是0,而 L 矩阵的好处在于,它的元素中只会把消元时用到的乘数(消元过程中需要乘以并减去的那个倍数)记录下来,其他位置的元素都是0或1(前提是没有行交换这种变换),换句话说,只要我知道所有的消元乘数,就能快速得到 L,并且,L的对角线上的元素都是 1。
消元的计算复杂度
一个 nxn 矩阵消元,如果对一个元素做一次乘法和减法算一次操作,总共进行了多少次消元操作?
假设矩阵中的所有的非主元都不为0,都需要消元,如果要把第一列所有的非主元都消掉,那么矩阵中除了第一行之外的所有行都需要做一次消元操作,因此总共有 n(n-1) 个元素会发生变化,以此类推,把第二列的所有非主元都消掉,共有 (n-1)(n-2) 个元素会发生变化,我们把计算简化一下,把 n(n-1) 视为 \(n^2\),把(n-1)(n-2) 视为 \((n-1)^2\),总的操作次数大约有 \(n^2 + (n-1)^2 + ... + 1\) 这么多次,整体为 \(n^3\) 这个量级,实际大约是 \(\frac{1}{3}n^3\)(直接对 \(x^2\) 求积分可以得出,级数可以理解为用宽度为1的矩形和去对积分做近似)。
行交换、置换和转置
置换和转置
现在我们把行交换也考虑进去,当某一行的主元为 0 时,就需要行交换,行交换需要使用置换矩阵。
前面讲过,置换矩阵实际上是把单位矩阵的行交换得到的矩阵,3x3 矩阵的置换矩阵有 6 种,如果这 6 个置换矩阵互相相乘,得到的新矩阵仍然是这6 个置换矩阵中的一个,也就是说这 6 个置换矩阵在矩阵乘法下构成了一个群。
(注意,这 6 个置换矩阵可不都是仅交换两行的,有可能一个置换矩阵交换了多行,它们都是对行的重排列)
一个 nxn 的矩阵有 n! 种置换矩阵,即 \(A_{n}^{n}\) 种行排列方式。
用 P 表示置换矩阵,上节中的矩阵分解可以表示为一般形式 PA = LU,用来包括消元时需要做行交换的情况。
置换矩阵的逆就是它的转置,\(P^{-1} = P^T\),这也意味着 \(P^TP = I\)
对称和转置
对称矩阵(Symmetric Matrix)满足 \(A = A^T\),对称矩阵的逆矩阵也是对称矩阵,很容易证明,\(A^{-1} = (A^T)^{-1} = (A^{-1})^T\)。
任意一个矩阵和它的转置相乘(\(A^TA\))就可以得到一个对称矩阵,可以这样证明,\((A^TA)^T = A^T(A^T)^T = A^TA\)。
向量空间
向量空间
标量和向量,标量就是一个数,向量是一个有方向和大小的量,可以用有序数组表示。
\(R^2\) 就是一个向量空间,它表示所有二维实向量的集合。
向量空间必须对数乘和加法这两种运算封闭(对线性组合封闭)
子空间(Subspace)
子空间也必须满足对数乘和加法这两种运算封闭。
例如,在 \(R^2\) 中,一条过原点的直线就是一个子空间,因为这条直线上的所有向量都对数乘和加法封闭,如果这条直线不过原点,那它就不是子空间。
实际上,\(R^2\) 有三种子空间,(1)它本身,(2)过原点的直线,(3)零点。
\(R^3\) 有四种子空间,(1)它本身,(2)过原点的平面,(3)过原点的直线,(4)零点。
如果从一个 n 行矩阵 A 的列向量出发构造子空间,A 的列向量的所有线性组合会构成一个 \(R^n\) 的子空间,这个子空间称为列空间,用 \(C(A)\) 表示。
在 \(R^3\) 中,两个线性无关的列向量构成的列空间是一个过原点的平面。
如果是两个共线的向量,它们构成的列空间就是一条过原点的直线。
两个子空间的并集不一定是一个新的子空间。
两个子空间的交集仍然是一个子空间,因为交集中的向量必然同时属于两个子空间,它们数乘和相加后的结果也必然属于两个子空间,也就是说,数乘和相加后的结果仍在交集之中。
列空间(Column Space)
一个 mxn 矩阵,例如一个 4x3 矩阵 A,A 的列向量本身位于 \(R^4\) 中,它的列空间 \(C(A)\) 是 \(R^4\) 的一个子空间。
我们把它和线性方程组 Ax = b 联系起来看,b 必须位于 A 的列空间 \(C(A)\) 中,方程组才有解。
例子中,对于任意的b,Ax = b 并不是都有解,它有四个方程,但只有三个未知数,三个列向量的线性组合最多只能张成一个三维空间,无法覆盖整个四维空间,因此,只有当 b 是 A 的列向量的线性组合时,Ax = b 才有解。
如果 A 的三个列向量是线性相关的,只有两个线性无关的列向量,那么能表示的 b 就更少了,我们把两个线性无关向量称为主列,它们张成的子空间是 \(R^4\) 的一个二维子空间。
零空间(Null Space)
当 b 为 0 向量时,方程组变成 Ax = 0 ,零空间是由 Ax = 0 所有的解 x 组成的子空间,记作 \(N(A)\)。
(要构成子空间,一个解做完数乘和加法后仍然是方程的解,稍微琢磨一下就知道,Ax = 0 的全体解必然是构成一个子空间的。)
以上面的 4x3 矩阵 A 为例,方程中中有四个方程,而未知数只有三个,因此 A 的列空间 \(C(A)\) 是 \(R^4\) 的一个子空间,零空间 \(N(A)\) 是 \(R^3\) 的一个子空间。
零向量必然在零空间中。
把 Ax = 0 换成 Ax = b,它的解不构成一个子空间(最基本地,解中连零向量都不包含)。
向量空间需要穿过零点,不过零点不是向量空间。
注意,列空间是由列向量出发张成的,而零空间是由全体解向量组成的,我们最开始并不知道里面有哪些向量,只能通过解方程组来找到这些向量,这是两种不同的子空间构造方式。
Ax = 0
特解
考虑这样一个 Ax = 0
消元之后会得到
可以看到只有两个主元,我们把两个主元称为矩阵的秩(Rank)为 2。
从 Ax=0 到 Ux=0,解空间(零空间)不会变。
(前面提到,矩阵中线性无关的列叫主列,我们可以观察到,消元结束后,主元所在的列就是主列。)
我们把主元所在的列称作主列(Pivot Column),没有主元的列称作自由列(Free Column)。
自由列对应的未知数的值可以随便取值,然后我们肯定能给主元对应的未知数找到两个值,从而求出方程的解,一组特定的自由变量称为特解。
此时,只要找到两个线性无关的特解,就能将解写成两个特解的线性组合的形式,张成零空间。
如何取特解
简化行阶梯形矩阵(Reduced Row Echelon Form, RREF)是矩阵消元的最简形式,指每个主元都是1,并且主元所在列的其他元素都是0的矩阵。
对于上面的例子,简化行阶梯形矩阵为:
把 R 矩阵列的顺序调整一下,使得 R 变成以下形式:
左侧是由主列构成的单位矩阵,右侧是由自由列构成的矩阵 F。
现在求解 Rx = 0 变成了求解 RN = 0,N 代表零空间矩阵(即 N 的列可以张成整个零空间)。
很容易得到
(我们能够注意到,Ax = 0求特解实际上就是求一组零空间的基,有几个自由变量,就有几个基向量)
Ax = b
求解 Ax = b
Ax = b 可能无解,可能有唯一解,可能有无穷多解。
还是以上面的例子为例,加上 b 之后,可以得到一个增广矩阵
消元后,
并且由于第三行都为0,所以有 \(0 = b_{3}-b_{2}-b_{1}\)。
b 的可解性条件(Solvability Condition)的两种等价描述:
站在列的角度:b 必须属于 A 的列空间。
站在行的角度:如果消元后有一行是全0(例如上面的情况),b 变换后对应的分量必须为0,这个分量实际上是 b 原分量的线性组合。
求解 Ax = b
继续上面的例子,先找特解,将所有自由变量设为0,求出一个特解 \(x_{p}\),然后再在零空间内找一个任意的解 \(x_{n}\),最终的解可以表示为 \(x = x_{p} + x_{n}\)。
通解为 \(x = x_{p} + c_1n_1 + ... + c_nn_n\),即特解加上零空间的线性组合。
上面的例子得到的通解为:
这个通解所代表的一系列向量,并不能构成一个子空间,因为它们并不包含零向量,如果不包含最左边那个特解,剩下的部分是 Ax = b 的零空间(即 Ax = 0 的解空间),它是一个过原点的平面,加上特解以后,相当于整个平面朝着特解的方向整体平移了一段距离。
mxn 矩阵
考虑秩为 r 的 mxn 矩阵 A,主元个数不可能超过行数 m 和列数 n,即,
(下面这些有解或无解的情况是根据主变量和自由变量的数量来推断的)
列满秩
考虑列满秩的情况(r=n,m>n),列全部线性无关,没有自由变量,零空间只有零向量(Ax = 0只有零解),Ax = b 有解时只有唯一解,或者无解(方程只有 0 个解或 1 个解)。
此时,
行满秩
考虑行满秩的情况(r=m,n>m),Ax = b 有无穷多解,对任意的 b,Ax = b 都有解。
此时,
行列都满秩
r = m = n,A 是一个方阵,并且是可逆矩阵,Ax = b 对任意的 b 都有唯一解。
此时,
行列都不满秩
r < m,r < n,Ax = b 有无穷多解或无解,不可能有唯一解。
此时,
线性相关
线性相关(Linear Dependence)、线性无关(Linear Independence)、基(Basis)、维度(Dimension)
Ax = 0 存在非零解的原因是,A 消元后存在自由变量,A 的列向量是线性相关的。
假设 A 中存在一个全 0 的列,那么 A 的列向量的线性组合中全 0 列的系数可以是任意的,Ax = 0 会存在无穷多个解。
当矩阵的零空间中只有零向量时,A 的列向量是线性无关的。
如果 mxn 矩阵的列是线性无关的,矩阵的秩 r = n,秩代表线性无关的列向量的个数。
生成/张成(Span):两个线性无关的向量的线性组合可以张成一个平面。
基向量:一组线性无关的向量,并且张成一个空间,基向量的个数称为空间的维度,只有零向量的空间是 0 维的。
对于矩阵 A,列空间的维数是线性无关的列向量的个数,即矩阵的秩 r(列空间的维数和行数无关)。
零空间的维数是自由变量的个数,即 n - r,Ax = 0 有几个自由向量,就有几个特解。
四个基本子空间
列空间 \(C(A)\)、零空间 \(N(A)\)、行空间(A转置的列空间) \(C(A^T)\)、左零空间(A转置的零空间) \(N(A^T)\)。
假设 A 为 mxn 矩阵,秩为 r,那么这四个子空间的关系如下表所示:
| 子空间 | 子空间所在空间 | 子空间维度 |
|---|---|---|
| 列空间 \(C(A)\) | \(R^m\) | \(r\) |
| 零空间 \(N(A)\) | \(R^n\) | \(n-r\) |
| 行空间 \(C(A^T)\) | \(R^n\) | \(r\) |
| 左零空间 \(N(A^T)\) | \(R^m\) | \(m-r\) |
(注意,子空间所在空间是根据向量的元素个数来定的,而子空间的维度是根据空间中线性无关的基向量个数来定的。)
行空间
矩阵 A 经过消元后变成 R,零空间不变(这是前面讲过的),但是它的列空间变了,\(C(R) \neq C(A)\),而它的行空间没变(因为消元做的是行变化,通过线性组合改变行的值),R 中的前 r 行可以作为行空间的一组基。
左零空间
左零空间 \(N(A^T)\) 是 A 转置的零空间,即 \(A^Ty = 0\) 的解空间。
如果将方程转置,\(A^Ty = 0\),就会变成 \(y^TA = 0\)(这正好符合前面提到的,站在行的角度,左侧向量是右侧矩阵行向量的线性组合系数),这就是为什么 A 转置的零空间叫左零空间,因为 \(y^T\) 在 A 的左侧。
如何求左零空间的基呢?
先求从 A 到 R 的消元矩阵(行变换矩阵) E,利用高斯-约旦消元法,\([A_{m*n}|I_{m*m}]->[R_{m*n}|E_{m*m}]\),我们发现,E 就是 A 的消元矩阵。
然后就能得到 EA = R,R 是行阶梯矩阵,里面可能会存在全 0 行,那么 E 中对应的那一行就是左零空间的一个基,
所有 3x3 矩阵组成的空间
这是一种特殊的向量空间,我们把一个 3x3 矩阵看作一个向量,全体 3x3 矩阵构成一个向量空间,用 M 表示。
其中有几种子空间:所有的上三角矩阵,所有的对称矩阵,所有的对角矩阵(即前两个子空间的交集,前面讲过两个子空间的交集仍然是一个子空间)。
所有对角矩阵组成的子空间维度是3,以下是它的一组基,
以上是一种把 \(R^n\) 扩展到 \(R^{n*n}\) 的一种思想。
对于 \(R^{n*n}\) 空间,有一组标准基(Standard Basis),每个基矩阵中只有一个元素为1,其他元素都为0,总共有 \(n^2\) 个基矩阵, 例如 \(R^{3*3}\) 空间的标准基为:
共有 9 个基矩阵,因而 \(R^{3*3}\) 是一个 9 维空间。
我们用 S 表示所有对称矩阵组成的子空间,用 U 表示所有上三角矩阵组成的子空间,那么 S + U 是整个 \(R^{3*3}\) 空间,即 S + U = M(注意这里不是取 S 和 U 的并集,而是将任一对称矩阵和任一上三角矩阵相加),这里面有一个结论, dim(S) + dim(U) = dim(S ∩ U) + dim(S + U),即 6 + 6 = 3 + 9 ,dim代表空间维度。
微分方程空间
这是一个二阶常系数微分方程:
解方程的目的是求出 y 的函数表达式。
这个方程有两个特解,\(y_1 = \cos x\),\(y_2 = \sin x\),任意的 y 都可以表示为 \(y = c_1 \cos x + c_2 \sin x\),这也是方程的通解。
该微分方程的零空间是一个二维空间,上面两个特解可以构成一组基。
秩为 1 的矩阵
现在已经知道,mxn 矩阵 A 的秩为 r 时,A 的行空间和列空间的维度均为 r。
所有秩为 1 的矩阵都能一列乘以一行的形式,例如:
秩为 1 的矩阵可以看作是一个基本矩阵,例如,一个秩为 4 的矩阵可以由四个秩为 1 的矩阵组合得到。
然而所有秩为 4 的矩阵并不构成一个子空间(按前面所讲,把矩阵视为“向量”,矩阵的集合也能组成一个子空间),如果矩阵不满秩,那么它们的和的秩可能会大于4,实际上,两个矩阵之和的秩不大于两个矩阵的秩之和,\(Rank(A + B) \leqslant Rank(A) + Rank(B)\)。
一个例子
现在有一个向量集合,由所有元素之和为 0 的 4 维向量组成,这显然是一个子空间,从直觉上,我们能给出一组基:
显然,这是个三维子空间。
用 v 表示这个子空间中的一个向量,用 S 表示这个子空间,如果我们将 S 视为矩阵 A 的零空间,那么只要找到一个满足 Av = 0 的 A,就能知道 S 的维度和基向量。
显然,A 只要为一个全 1 的行向量即可,即,\(A = \begin{bmatrix} 1 & 1 & 1 & 1 \end{bmatrix}\),A 的秩为 1,A 的零空间的维度为 4 - 1 = 3,这和我们前面得到的结果是一致的,另外,A 的行空间维度为 1,A 的左零空间维度为 0。
一个图论的例子
假设一个图有 4 个节点,5 条边,我们可以将其表示为一个 5x4 的矩阵 A,行表示边,列表示结点,边有方向,这种矩阵叫关联矩阵(Incidence Matrix),关联矩阵中的元素表示结点和边的连接情况,-1 表示边从该结点出发,1 表示边指向该结点,0 表示该结点和该边不连接。
例如,有以下图:

它的关联矩阵为:
前三行对应边 1、2、3,从图中可以看出,边 1、2、3 构成了一个回路(Loop),而在矩阵 A 中,前三行是线性相关的,其实回路就是线性相关的,没有回路时,矩阵的行是线性无关的,这时的图叫做树。
考虑 A 的列空间和零空间,
如果用 \(x_1, x_2, x_3,x_4\) 表示各节点的电势,那么 Ax 表示各边从起点到终点的电势差,Ax = 0 是想求出各节点的电势为多少时,各边的电势差都为0。
我们会发现,除了全零以外,全 1 向量也是 Ax = 0 的解,这意味着所有节点电势相等时,各边的电势差都为0,所以,A 的零空间是 1 维的,这也意味着,只要确定了一个节点的电势,其他三个节点的电势就都确定了,A 的 秩为 3。
考虑 A 的行空间和左零空间,
如果用 \(y_1, y_2, y_3, y_4, y_5\) 表示各边的电流,那么 \(A^Ty\) 表示各节点的电流总和,\(A^Ty = 0\) 是想求出各边的电流为多少时,各节点的电流总和都为0。
\(A^Ty = 0\) 就是基尔霍夫电流定律(KCL),即每个节点上的合电流为0。
左零空间的维度为2,即 m-r=5-3=2,这意味着可以找到两组线性无关的解,这也意味着,可以在图中找到两条独立的回路。
抛开物理意义,从几何上来看,任何一个图的拓扑结构都满足这个规律,即独立回路的数量 = \(dim(N(A^T))\) = m - r = 边数 - (节点数 - 1) = 边数 - 节点数 + 1,这个规律也叫欧拉公式(Euler's Formula),这里是以线性代数的视角来看待这个问题。
回到上面的电路例子,根据欧姆定律,我们有 电流 = 常数*电势差,这个常数是电导(电阻的倒数),即 \(y = Ce\),如果考虑外部的电源,输入电流 f 或输入电压 e,系统的总电势差和电流和则不再为0,会有\(Ax = e\),\(A^Ty = f\),最终能够得到一个平衡方程:\(A^TCAx = f\),\(A^TCA\) 总是对称的。
复习1
如果 \(B^2 = 0\),那么 \(B 不一定为 0\),例如:
如果 C 是一个可逆矩阵,CBx=0 和 Bx=0 有相同的解,换句话说,CB 和 B 有相同的零空间。
如果一个矩阵交换了两行,那么它的行空间没有变,零空间没有变,列空间变了,左零空间变了。
一个向量不可能既在零空间中,又在行空间中,零空间和行空间的交集中只有零向量。
正交(Orthogonality)
矩阵 A 的四个子空间中,行空间和零空间正交,列空间和左零空间正交。
正交向量
正交向量(Orthogonal Vectors):正交是垂直的另一种说法,两个向量夹角是 90 度,点积为0,\(x^Ty = 0\)。
根据毕达哥拉斯定理,如果向量 x 和 y 正交,那么:
或者
而
从上式也能得到 \(x^Ty = 0\),这里运用了一个转置的性质,多个向量和的转置等于它们转置的和,\((x+y)^T = x^T + y^T\)。
零向量和任意向量正交。
正交子空间
两个子空间正交意味着它们的任意向量都互相正交。
三维坐标系中的 xy、xz、zy 三个平面并不正交,因为它们有共同的交线,比如有向量既在 xy 平面上,又在 xz 平面上。
行空间和零空间正交,它们都位于 \(R^n\) 空间之内,它们的维度之和为 n(注意,这并不是说行空间和零空间构成了整个 \(R^n\) 空间),我们把这种关系称为正交补(Orthogonal Complement),即行空间和零空间互为正交补,列空间和左零空间互为正交补,正交补意味着和行空间正交的所有向量都在零空间中,反之亦然。
如何判断 Ax = b 是否有解
这里要用到一个关键矩阵,\(A^TA\)。
\(A^TA\) 有以下性质:
A 是个 mxn 矩阵,\(A^TA\) 是个 nxn 的对称矩阵,但不一定可逆。
\(A^TA\) 的秩等于 A 的秩,\(A^TA\) 的零空间和 A 的零空间相同。
(两个矩阵乘积的秩不大于这两个矩阵各自的秩)
当且仅当 A 的各列线性无关时,\(A^TA\) 可逆
在 Ax = b 左右两侧同时乘以 \(A^T\),得到:\(A^TAx = A^Tb\),后面会讲到,这个方程实际上实在求 b 在 A 上的投影系数(最终的投影为 \(p = Ax\)),如果 Ax = b 有解,那么 b 在 A 上的投影就是 b 本身。
投影(Projection)
现在在二维空间中有两个向量 a 和 b,我们想把 b 投影到 a 上,也就是说,从 b 出发,做一条垂线到 a 上,垂足为 p,那么 p 就是 b 在 a 上的投影。
用 e 表示 b 到 p 这个垂直向量,那么 e 必须和 a 正交,\(a^Te = 0\),同时,\(e = b - p\),并且 p 是 a 的一个倍数,\(p = xa\),x 代表倍数,因此,\(a^T(b - xa) = 0\),求出 x,就能得到 p。
由上述方法可以得到:
(实际上,用几何的方法也能得到这个结果,用几何的方法求x, \(x = \frac{\|b\|\cos\theta}{\|a\|}\),和上面的结果实际上是等价的。)
投影 p 就是某个投影矩阵 P 作用在向量 b 上,在上面的例子中,投影矩阵为:
P 的列空间这就是 a 所在的直线,P 的秩为 1。
投影矩阵是对称的,\(P^T = P\),并且满足 \(P^2 = P\),即投影矩阵自乘仍然等于它本身。
(投影本质上是要把向量 b 映射到由投影矩阵 P 张成的子空间内,当然不可否认的是,投影矩阵本身比较特殊,比如,如果向量 b 本身就在子空间内,那么投影矩阵对 b 的作用就是保持 b 不变。)
扩展到 n 维空间
上述例子考虑的是二维空间中的投影。
考虑更高维的情况,并结合判断 Ax = b 是否有解这个问题一起来看,假设有一个矩阵 A 表示一个平面,如果我们想判断 Ax = b 是否有解,实际上是在判断 b 是否在 A 平面上,我们可以求 b 的投影,如果 b 在 A 平面上,那么 b 的投影就是它本身。
b 在平面 A 上的投影 p 可以表示为 A 的某个线性组合,\(p = A\hat{x}\),因此,求 x 的方程就变成了 \(A^T(b - A\hat{x}) = 0\),这其实和上面提到的 \(A^TAx = A^Tb\) 是等价的。
垂直于 A 的向量 e 位于 A 的左零空间。
系数向量 \(\hat{x}\),投影向量,投影矩阵分别为: $$ \hat{x} = (A^TA)^{-1}A^Tb \ p = A\hat{x} = A(A^TA)^{-1}A^Tb \ P = A(A^TA)^{-1}A^T \ b = p + e \ e = (I-P)b \ $$
如果此时 A 是一个可逆矩阵,那么投影矩阵 P 就是单位矩阵 I。
\(P^T = P\),\(P^2 = P\),这两个性质仍然满足。
b 投影到左零空间的向量为 e,投影矩阵为 I-P,同样满足上述投影矩阵的性质。
(注意:A 中包含的都是线性无关的基向量)
例子:最小二乘法(Least Squares)拟合直线
假设有三个点 (1,1),(2,2),(3,2),我们想拟合出一条直线 b = c + dt。
将点代入,可列出方程组
将方程组改写为 Ax = b 的形式:
这个方程组有可能无解,因为这些点可能不都在拟合的直线上。
我们的目的是求 c 和 d 的最优解,使得拟合直线尽可能接近这些点,也就是让总误差最小。
总误差是所有误差的平方和,“最小二乘”这个名称就是使误差的平方和最小化的意思。
什么情况下误差最小?当 Ax 为 b 在 A 上的投影时,误差最小,此时 e 和 A 垂直,因此,解方程 \(A^TAx = A^Tb\)。
从微积分的角度,求出使误差最小的 c 和 d(c 和 d 组成了 x),对 \(\|Ax-b\|^2\) 分别关于 c 和 d 求偏导数,并令偏导数为0,也能得到 \(A^TAx = A^Tb\) 这组方程。
最优直线为
正交基和正交矩阵
标准正交向量(Orthonormal Vectors):向量不仅正交,而且每个向量的长度为1。
标准正交基(Orthonormal Basis):一组标准正交向量作为空间的基向量(基向量的数量不一定和空间维度相同,比如在 \(R^3\) 中,我需要一个二维子空间,那么我只需要两个标准正交向量作为基向量)。
用 Q 表示标准正交向量组成的矩阵(不一定是方阵),\(Q^TQ\) 是 单位矩阵 I,如果 Q 是方阵,Q 本身就是 I。
正交矩阵是由标准正交向量组成列向量的方阵,\(Q^T = Q^{-1}\)。
前面提到的置换矩阵就是正交矩阵。
旋转矩阵也是正交矩阵,例如二维空间中的旋转矩阵:
格拉姆-施密特(Gram-Schmidt)正交化过程:将一组线性无关的向量转换为一组标准正交向量。
施密特正交化得到的正交向量会让计算变得简单,比如计算投影的方程 \(A^TA\hat{x} = A^Tb\) 会变成 \(Q^TQ\hat{x} = Q^Tb\),进而变成 \(\hat{x} = Q^Tb\),第 i 个基方向上的投影就是 \(\hat{x_i} = q_i^Tb\)。
格拉姆-施密特正交化
有三个线性无关的向量 a,b,c,我们想把它们转换为标准正交向量。
- 先求出三个正交向量 A,B,C,
- 然后将其标准化为单位向量 q1,q2,q3。
直接将向量 a 作为 A。
求 B 的方法是对 b 做投影,先将 b 投影到 A 上,得到投影向量 p,然后用 b 减去 p,得到向量e,e 就是向量 B。
可以这么理解,这是将 b 在 A 方向上的分量减去,只保留垂直于 A 方向上的分量。
向量 C 需要将 c 在 A 和 B 方向上(注意是 A 和 B,不是 a 和 b)的分量都减去,只保留垂直于 A 和 B 方向上的分量。
最后,将 A,B,C 分别除以自身长度标准化为单位向量。
经过施密特正交化后的向量和变换前的向量位于同一个列空间。
施密特正交化过程也是一种矩阵分解(前面提到的 A = LU 是一种矩阵分解)
R 是一个上三角矩阵。
行列式(Determinant)
det(A) 或 |A| 表示矩阵 A 的行列式,A 必须是方阵。
矩阵可逆,行列式不为零;矩阵不可逆,行列式为零。
2x2 行列式的计算方法:
行列式的十个性质
性质1,单位矩阵的行列式值为 1。
性质2,交换行,行列式的值符号会取反(置换矩阵的值为 1 或 -1,取决于交换次数)。
性质3,对于任一行,有以下性质: $$ \begin{vmatrix} ta & tb \ c & d \ \end{vmatrix} =t \begin{vmatrix} a & b \ c & d \ \end{vmatrix} $$
可以得出,\(det(2A) = 2^n det(A)\)。
性质4,如果两行相同,行列式的值为0。
性质5,消元不会改变行列式的值。
性质6,如果有一行是全0,行列式的值为0。
性质7,三角矩阵行列式的值等于对角线元素的乘积(无论是上三角矩阵还是下三角矩阵)。
性质8,当且仅当 A 为奇异矩阵时(不可逆),行列式的值为0,当且仅当 A 为非奇异矩阵时(可逆),行列式的值不为0。 - 如果矩阵奇异(不可逆),消元后会出现全 0 行 - 如果矩阵非奇异(可逆),消元后会成为上三角矩阵或者对称矩阵。
我们对 2x2 矩阵做一次消元:
性质9,\(det(AB) = det(A) * det(B)\)。由此可以得到一系列结论,\(det(A^{-1}) = 1/det(A)\),\(det(A^2) = det(A)^2\)。
性质10,\(det(A^T) = det(A)\),以上所有性质对列也是成立的。
行列式的求解公式
按照这个规律,3x3 行列式最终可以拆分为 27 个行列式,最终实际产生作用的行列式的每行和每列都只有一个元素不为0。
求解 nxn 行列式的通用公式为:
代数余子式(Cofactor)是把每项除了第一个乘数以外剩余的乘积提取出来,用 \(C_{ij}\) 表示 \(a_{ij}\) 的代数余子式,那么上面的行列式可以改写为:
\(C_{11}\) 相当于把第一行第一列去掉,剩余部分的行列式就是 \(C_{11}\)。
行列式的求和公式可以从任意一行展开,例如可以计算 \(a_{21}C_{21}+...+a_{2n}C_{2n}\)。
代数余子式将每项的计算拆解为递归计算的过程,将一个大行列式的计算不断拆解为小行列式的计算,直到拆解到 2x2 行列式为止。
逆矩阵公式
2x2 矩阵的求逆公式:
其中,C 是 A 的代数余子式矩阵,\(C^T\) 叫做伴随矩阵(Adjoint Matrix)。
如果计算 \(AC^T\) 就会发现,\(AC^T\) 的对角线元素都等于 A 的行列式值,其余元素都为0,因此,\(AC^T = det(A)I\),从而得到 \(A^{-1} = \frac{1}{det(A)}C^T\)。
从这里也能看出来,A 的某一行向量和其他任意行的代数余子式向量是正交的。
克拉默法则(克莱姆法则)
Ax = b 有唯一解的条件是 A 可逆,此时 \(x = A^{-1}b = \frac{1}{det(A)}C^Tb\)。
\(C^T\) 的每个元素都是一个代数余子式,\(C^T\) 的一行和 b 的点积可以看作是求某个矩阵的行列式值,因此,我们将 x 的元素表示为这种形式:
矩阵 \(B_i\) 其实就是把矩阵 A 的第 i 列替换为向量 b 后得到的矩阵:
用行列式求体积
一个立方体(不一定是长方体,可能是个平行六面体),我们把从一个顶点看作是原点,把从这个顶点出发的三个边向量分别表示为 a,b,c,那么这个立方体的体积就等于 a,b,c 这三个向量组成的行列式的绝对值。
正交矩阵的行列式值为 1 或 -1,因为正交矩阵是由标准正交向量组成的方阵,它相当于单位矩阵在空间中的旋转或者置换,这不会改变体积,单位矩阵对应的立方体的体积为1,因此正交矩阵的行列式值为 1 或 -1。
利用 \(Q^TQ = I\) 这个正交矩阵的性质也可以推导出正交矩阵的行列式绝对值为 1 这个结论。
类似的,两个二维向量组成的行列式的绝对值等于这两个向量构成的平行四边形的面积,如果要求三角形的面积,除以 2 就行了。
特征值(Eigenvalue)和特征向量(Eigenvector)
矩阵 A 乘以向量 x,得到一个新的向量 Ax。如果把向量 x 看作一个输入,那么矩阵 A 相当于一个函数,对 x 进行变换,得到 Ax 这个输出。
有一些向量,变换前后方向不变,这些向量就是特征向量,\(Ax = \lambda x\),其中 \(\lambda\) 是特征值。特征值可以为 0 或者负数。特征向量不能是零向量。
0 永远是一个特征值,对应的特征向量就是零空间中的向量,由于特征值 0 的特征向量子空间其实就是矩阵的零空间,因此有几个线性无关的特征向量,就有几个特征值 0,即,特征值 0 的个数等于零空间的维度。
以前面提到的投影矩阵 P 为例,
对于投影矩阵 P,很显然,要投影到的那个空间中任意一个向量都是特征向量,对应的特征值为 1,因为投影矩阵对投影空间中的向量的作用就是保持不变。垂直于投影空间的向量也是特征向量,对应的特征值为 0。
再以置换矩阵为例,
置换矩阵用于交换矩阵的行或列,因此,交换位置上的元素相同的向量都是特征向量,特征值为 1,交换位置上的元素值相同但符号相反的向量也都是特征向量,对应的特征值为 -1。
特征值有几个性质:
- n x n 矩阵有 n 个特征值(可能有重复)。
- 特征值的和等于对角线元素和,这个和叫做“迹”(Trace),\(Trace(A) = a_{11} + a_{22} + ... + a_{nn}\)。
- 特征值的积等于行列式值,注意,并不等于对角线元素的积(只有三角矩阵的行列式值才等于对角元素的积)。
- 特征向量之间线性无关。
求解特征值和特征向量
将 \(Ax = \lambda x\) 变形为 \((A - \lambda I)x = 0\)。
\(A - \lambda I\) 是对 A 做了一个平移操作,\(A - \lambda I\) 必须是一个奇异矩阵(不可逆),否则 x 必须是零向量,而特征向量不能是零向量。
由于奇异矩阵的行列式为 0,因此,
由此可以求出特征值 \(\lambda\),这个方程叫做特征方程(Characteristic Equation)或特征值方程(Eigenvalue Equation)。
求出 \(\lambda\) 后,将 \(\lambda\) 代入方程 \((A - \lambda I)x = 0\) 中,求特征向量 x。方程可能有很多解或无穷多解,即一个特征值可能对应多个特征向量,选一个向量作为特征向量的基向量即可。
特征向量之间是线性无关的,因此,特征向量的数量不可能超过矩阵的维度。
矩阵 A 发生变化后对特征值和特征向量的影响
我们可以观察到,下面两个矩阵的特征向量是相同的,特征值右边比左边的特征值大 3,它们的区别是,第二个矩阵等于第一个矩阵加 3I。
但如果是两个矩阵相加或者相乘,上面这种做法是不对的,比如(注意,下面的推导是错误的)
这个推导是错误的,因为这里面有个隐含的前提,它认为 A 和 B 有相同的特征向量 x,这是不对的。
\(A/2\) 的特征值是 \(\lambda/2\),\(A+3I\) 的特征值是 \(\lambda + 3\),但 A+B 的特征值不等于 A 的特征值加 B 的特征值。
复特征值/不存在特征值(旋转矩阵)
记旋转矩阵为 Q,把一个向量旋转 90 度的旋转矩阵为
我们能注意到,Q 的特征值为虚数。这很容易理解,因为 Q 的作用是把一个向量旋转 90 度,旋转 90 度后,向量的方向肯定会变,只有零向量不会变,因此,不可能存在一个实数特征值使得 \(Qx = \lambda x\) 成立。
对称矩阵的特征值一定是实数,不对称的矩阵可能有复数特征值。
反对称矩阵(满足 \(A^T = -A\) 的矩阵)的特征值一定是纯虚数。
反对称矩阵主对角线元素为0,对角线两侧的元素成对出现,符号相反,例如
退化矩阵(Degenerate Matrix)
特征值重复,线性无关的特征向量数量有可能少于特征值,换句话说,特征向量是线性相关的。
例如,
这个矩阵的特征值为两个0,特征向量为 \((1,0)^T\),不存在其他线性无关的特征向量了,因此,这个矩阵是退化的。
矩阵对角化和矩阵乘幂
矩阵对角化
\(S^{-1}AS = \Lambda\)
S 是 A 的特征向量组成的矩阵(S 必须可逆),S 又叫特征向量矩阵。
以下是推导过程:
\(\Lambda\) 是一个由特征值组成的对角矩阵。
由此可得,\(S^{-1}AS = \Lambda\) 或者 \(A = S\Lambda S^{-1}\),这也是一种矩阵分解(前面的 A = LU 和 A = QR 都是矩阵分解)。
矩阵幂
考虑 \(A^2\) 的特征值和特征向量,有以下推导,
\(A^2\) 的特征值为 \(\lambda^2\),特征向量和 A 相同。
从矩阵分解的角度考虑,
\(\Lambda^2\) 仍然是对角矩阵,也可以得出结论,特征向量不变,特征值变为 \(\lambda^2\)。
进一步,我们有 \(A^k = S\Lambda^k S^{-1}\),其中 \(\Lambda^k\) 仍然是对角矩阵,特征向量不变,特征值变为 \(\lambda^k\)。
特征值是计算矩阵幂的一种方法。
有一种情况是矩阵的幂趋于零,\(当 k \to \infty时, A^K \to 0\),他的前提条件是显然的,A 的所有特征值的绝对值都小于 1,这时 A 的幂次就会越来越小,趋于零。
矩阵对角化的前提条件
A 有 n 个线性无关的特征向量,S 是可逆的。
只要特征值不重复,A 就一定有 n 个线性无关的特征向量。
如果特征值重复则不一定,有可能没有足够的线性无关特征向量(前面讲过),也有可能有足够的线性无关特征向量,比如单位矩阵,它的特征值都是1,但任意向量都是特征向量。
差分方程(Difference Equation)
差分方程(Difference Equation)是描述序列之间递推关系的方程。它通过已知的前一项(或多项)来确定后一项的值。
有这样一个一阶线性差分方程(一阶代表只依赖于前一项,线性代表只有一次幂),
\(u_0\) 表示为特征向量的线性组合:
那么
以斐波那契数为例,斐波那契数满足递推关系:
可以把它改写为矩阵形式:
令 \(u_k = \begin{bmatrix} F_{k+1}, F_k \end{bmatrix}\),上式就变成了 \(u_{k+1} = Au_k\) 的形式,其中 A 是上面的矩阵。
这样就把一个二阶标量差分方程,变成了一阶向量差分方程。
微分方程
一阶常系数线性微分方程(First-order Linear Ordinary Differential Equation)。
下面这个例子是一个由两个微分方程构成的方程组
(由于有两个方程,这里面有两个未知函数 \(u_1(t)\) 和 \(u_2(t)\),而在基础微积分里,我们面对的微分方程一般由一个未知函数 \(u(t)\) 和一个 自变量 t 组成。)
我们将他写成一个矩阵:
令 \(u = [u_1, u_2]^T\),假设
矩阵 A 的特征值为 \(\lambda_1 = 0\),\(\lambda_2 = -3\),对应的特征向量分别为 \(x_1 = [2, 1]^T\) 和 \(x_2 = [1, -1]^T\)。
这里直接给出微分方程的解:
\(\lambda_1\),\(\lambda_2\) 是特征值,\(x_1\),\(x_2\) 是特征向量,\(c_1\),\(c_2\) 是由初始条件 \(u(0)\) 确定的常数。
将解代入
中,可以验证上式确实是微分方程的解。
对于上例,微分方程的解为:
\(c_1\) 和 \(c_2\) 是由初始条件 \(u(0) = [1, 0]^T\) 确定的常数。
经过计算,可以得到,\(c_1 = \frac{1}{3}\),\(c_2 = \frac{1}{3}\)。
最终,
关于稳态(Steady State)的讨论
t 趋于无穷大时,\(e^{-3t}\) 趋于0,因此,\(u(t)\) 的极限为 \(\frac{1}{3}[2, 1]^T\),这时,我们称方程达到了稳态(Steady State)。
当 \(u(t)\) 趋近于 0 时,系统达到稳态。 - 当特征值为负数时,\(e^{\lambda t}\) 会趋于0 - 当特征值为复数时,根据欧拉公式,\(e^{\lambda t}\) 的虚部的模为1,即它会以某个频率振荡,也就是说复数的虚部不会对稳态产生影响。 - 当特征值为0时,\(e^{\lambda t}\) 的值为1,稳态存在。 - 当特征值为正数时,\(e^{\lambda t}\) 会趋于无穷大,稳态不存在。
对于 2x2 矩阵,判断两个特征值是否都为负很容易,只需要根据它的迹和行列式的值来判断即可(迹为负,行列式的值为正)。
方程组解耦
原方程组 \(u_1\) 和 \(u_2\) 互相耦合,把解表示为 \(S\) 和 \(\Lambda\) 的形式,对方程组解耦。
令 \(u = Sv\),以特征向量为基,将 u 表示为特征向量的线性组合,代入到方程中,得到,
两边乘以 \(S^{-1}\),得到,
并且,
(前提是 A 可以对角化)
下面证明这个等式,
\(e^{At}\) 称为矩阵指数(Matrix Exponential),它是矩阵 A 的幂级数展开:
幂级数展开公式对矩阵同样有效,例如几何级数,
换成矩阵的形式就是:
(几何级数要求 \(|r|<1\),矩阵几何级数要求 \(\rho(At)<1\),其中 \(\rho(At)\) 是矩阵 \(At\) 的谱半径,谱半径指最大特征值的绝对值。)
这个方法可以用来矩阵求逆。
利用泰勒展开形式,做一些变形,就可以得到 \(Se^{\Lambda t}S^{-1} = e^{At}\)。
证明完毕。
什么情况下,t 不断增长,\(e^{At}\) 趋向于 0?
当特征值的实部为负数时,\(e^{\lambda t}\) 的值会趋于0,此时微分方程存在稳态解。
什么情况下,矩阵的幂趋于0?
当特征值的绝对值小于1时,\(A^k\) 的特征值 \(\lambda^k\) 的绝对值会趋于0,此时 \(A^k\) 趋于0。
二阶微分方程转化为一阶微分方程组
二阶微分方程:
令 \(u = [y', y]^T\),上式就变成了 \(u' = Au\) 的形式,其中 A 是下面的矩阵:
一个 5 阶微分方程转化为 1 阶微分方程组需要一个 5x5 的矩阵。
马尔可夫矩阵(Markov Matrix)和傅里叶级数(Fourier Series)
马尔可夫矩阵
A 是一个马尔可夫矩阵(Markov Matrix)。
马尔科夫矩阵有以几个性质:
- 每个元素大于等于0
- 每列元素的和为1
- 矩阵的幂都是马尔可夫矩阵。
他的特征值有以下特点:
- 一定有一个特征值为1,对应的特征向量是一个非负向量(每个元素都大于等于0)。
- 其他特征值的绝对值都小于1(可能会有绝对值为 1 的其他特征值,但绝不会大于 1)
矩阵对角化和乘幂以及差分方程这两节提到,
可以发现,特征值 \(\lambda\) 为 1 的项会趋于稳态,特征值绝对值小于 1 的项会趋于0。
我们来求 A 的特征向量,
我们发现 \(A-\lambda I\) 的各列和为0,也就是说,它的行向量是线性相关的,因此,我们能够很容易求出 \(A^T\) 的 \(\lambda = 1\) 的特征向量 \(x_1 = [1,1,1]^T\),这里利用到一个规律,A 和 A转置 (\(A\) 和 \(A^T\)) 的特征值是相同的,但特征向量不一定相同,因此 \(\lambda = 1\) 同样是 A 的特征值,但特征向量得另外再求,可以得到,特征向量是 \([0.6, 33, 0.7]^T\)。
马尔科夫矩阵的应用
\(u_{k+1} = Au_k\),A 是一个马尔可夫矩阵,\(u_k\) 是一个概率向量(每个元素大于等于0,元素和为1),\(u_k\) 表示第 k 代的状态分布。
举个例子,假设有两个州,加州和麻省,矩阵 A 描述每年各州的人口迁移情况,因此,A 是 2x2 矩阵,共 4 个元素,分别表示留在加州的人口比例,迁移到麻省的人口比例,迁移到加州的人口比例,留在麻省的人口比例。
u 是一个 2x1 的向量,表示两个州的人口数量。
下面是一个完整的例子,
\(u_c\)、\(u_m\) 分别表示加州和麻省的人口数量,矩阵 A 的第一列表示加州的人口迁移情况,第二列表示麻省的人口迁移情况,各元素分别代表以下含义:
(上面的方程实际上是假设人口迁移的趋势不变,即 A 不变,来预测未来的人口分布情况。)
带有标准正交基的投影问题
假设 n 维空间的一组标准正交基向量 \(q_1,...,q_n\),给定向量 v,那么
现在我们想求出 \(x_1, x_2, ..., x_n\),按照前面投影一节所讲的内容,实际上就是求向量 v 到各基向量的投影系数,
例如,
由于 \(q_1,...,q_n\) 是标准正交向量,因此,\(x_1\) 直接等于 \(v^Tq_1\),求出所有的 x 相当于求以下方程组
即 \(Qx = v\),\(x = Q^{-1}v\),由于 Q 是由标准正交向量组成的矩阵,因此,\(Q^{-1} = Q^T\),因此,\(x = Q^Tv\)。
傅里叶级数
已知函数 f(x),我们想把 f(x) 表示为函数 \(\sin(nx)\) 和 \(\cos(nx)\) 的线性组合,如下所示,
我们用线性代数的视角来看待傅里叶级数,前面的内容里讨论的都是向量空间,这里我们把函数当成向量来看待,这些三角函数构成了一个函数空间,\([1, \cos(x), \sin(x), \cos(2x), \sin(2x), ...]\) 是这个函数空间的一组基,这组基是正交的。
如何判断函数是否是正交的呢?我们可以定义函数的点积,利用点积是否为 0 来判断函数是否正交。向量的点积是求两个向量各个元素的乘积之和,而函数是连续的,我们可以把函数的点积定义为两个函数的乘积在一定区间上的积分,因此,两个函数 f(x) 和 g(x) 的点积为
上面那些三角函数最小的周期是 \(2\pi\),因此积分的区间可以是 \([0, 2\pi]\)。
经过计算发现,这些基函数的确是相互正交的。
求 \(a_1\) 的方法和上面求 \(x_1\) 的方法是一样的,是求函数 f(x) 在 \(\cos(x)\) 这个基函数上的投影系数,注意,函数空间的基只是正交,不是标准正交,\(a_1\) 并不直接等于 \(f(x)\) 和 \(\cos(x)\) 的点积。
这就是傅里叶级数系数公式。
复习2
求逆矩阵的特征值和行列式
A 的逆矩阵的特征值为 \(\frac{1}{\lambda}\),特征向量不变。
推导:
因此,A 的逆矩阵的行列式
对称矩阵和正定矩阵
对称矩阵
两个性质: 1. 对称矩阵的特征值是实数。 2. 特征向量是正交(垂直)的,或者说,可以挑选出一组垂直的,为什么这么说呢,因为比如说单位矩阵,它的向量都是特征向量,但一定能挑出一组正交的特征向量。
这里还要讨论一下特征值重复和不重复的情况,
在矩阵对称的情况下,如果特征值不重复,一个特征值对应一条线,它对应的特征向量都在这条线上,并且这几条线相互垂直,如果特征值重复,特征向量就会在一个平面上(不局限于二维平面,也可能是高维的超平面),这个平面上的任意向量都是特征向量,我们可以从这个平面上挑选出一组垂直的向量作为特征向量。
通常情况下(矩阵不一定对称),如果特征值不重复,特征值所在的线不一定相互垂直,如果特征值重复,并且至少有同样数量的线性无关特征向量,这时和矩阵对称的情况是一样的。
对称矩阵的对角化分解
前面提到过,如果 A 有一套线性无关的特征向量,A 可以分解为
如果 A 是对称矩阵,它的特征向量不仅正交,我们还可以将他们标准化成单位向量,这时 S 就是一个正交矩阵 Q,
这在数学上叫谱定理(Spectral Theorem):对称矩阵可以被一个正交矩阵对角化,“谱”是指矩阵的特征值集合。
力学上,通常被称为主轴定理(Principal Axis Theorem)。
关于实特征值的讨论
为什么对称矩阵的特征值总是实数?
有一个总是成立的规律:
对于 \(Ax = \lambda x\),可以对每一部分取其共轭复数(把所有的 i 换成 -i),方程仍然成立,得到 \(\overline{A}\,\overline{x} = \overline{\lambda}\,\overline{x}\)。
由于我们讨论的矩阵始终是实矩阵,\(\overline{A} = A\),因此,\(A\overline{x} = \overline{\lambda}\,\overline{x}\),对方程两边做转置,然后左右两边同时乘以 x,得到,
同时,对于原方程 \(Ax = \lambda x\),在左右两边同时乘以 \(\overline{x}^T\),得到,
和上面的方程比较一下,\(\lambda \overline{x}^Tx = \overline{\lambda} \overline{x}^Tx\),\(\lambda = \overline{\lambda}\),因此,\(\lambda\) 总是实数。
这里有个前提,即 \(\overline{x}^Tx\) 不为 0 ,根据复数的性质,复数乘以其共轭复数,会得到一个实数,等于它的模的平方,因此,只要 x 不是零向量, \(\overline{x}^Tx\) 肯定是不为 0 的。
一个关于复向量的重要结论
如果一个向量是复向量,它和它共轭向量的内积是向量长度的平方,如果是实向量,这条也成立,因为实向量的共轭向量就是它自身。
复矩阵
对于一个复矩阵,如果想要拥有上述对称矩阵的两条性质,需要满足 \(A = \overline{A}^T\),即它必须等于其共轭转置,这是复数域上的对称矩阵。
对称矩阵的对角化分解
将 \(A = Q\Lambda Q^{-1}\) 展开:
\(q_1, q_2, ..., q_n\) 都是标准正交向量,我们会发现 \(q_i q_i^T\) 实际上都是投影矩阵,这些投影矩阵互相垂直,A 是一系列互相垂直的投影矩阵的线性组合。
关于对称矩阵的特征值
对称矩阵的特征值有以下特点(注意必须是对称矩阵,并且消元时不能做行交换):
主元的符号和特征值的符号相同,数量相同,即,大于0 的主元的数量等于大于0 的特征值的数量,等于0 的主元的数量等于等于0 的特征值的数量,小于0 的主元的数量等于小于0 的特征值的数量。
主元的乘积等于特征值的乘积,两者都等于行列式的值,这对所有方阵都成立(前提是不能做行交换,根据行列式的性质,每做一次行交换,行列式的符号就变一次)。
有一个判断有多少个特征值大于某个数的方法,例如,如果我想判断一个对称矩阵有多少个特征值大于 7,我可以把矩阵减去 7I,得到一个新的矩阵,这时,原始特征值 = 新特征值 + 7,因此,原始特征值大于 7 的数量等于新特征值大于 0 的数量,而新特征值的符号和主元的符号相同,因此,原始特征值大于 7 的数量等于新矩阵的主元大于 0 的数量。
令新特征值为 \(\lambda '\),矩阵减去 7I 后,计算特征值的方程变成了 \(det(A - 7I - \lambda 'I) = 0\),即 \(det(A - (\lambda ' + 7)I) = 0\),可以看出,原始特征值等于新特征值加 7。
正定矩阵(Positive Definite Matrix)
正定矩阵是一种对称矩阵,它有以下特点
- 它的所有特征值为正,他的所有主元也为正(上面讲的,主元符号和特征值符号相同,数量相同)。
- 它的行列式值和所有的子行列式值都为正。
\(A^TA\) 是对称矩阵,同时也是正定矩阵(或者半正定矩阵,列满秩时是正定的,一般情形是半正定的)
复矩阵和快速傅里叶变换(Fast Fourier Transform)
复向量、共轭转置、厄米矩阵、酉矩阵
复向量 \(z = [z_0, z_1, ..., z_{n}]\),它位于 \(\mathbb{C}^n\) 中,即 n 维复空间中。
求复向量的模需要利用共轭转置,复向量和它的共轭转置向量的内积是模的平方,
这也告诉我们,复向量的模的平方实际上是各元素的模的平方之和。
复向量自身的共轭转置也叫厄米转置(Hermitian transpose),共轭转置向量记为 \(z^H\),因此,
同样的,复向量内积也需要使用共轭转置,复向量 x 和 y 的内积为 \(y^Hx\)。
厄米矩阵(Hermitian Matrix)是一种复数域上的具有对称性的矩阵,满足 \(A = A^H\),即它和它自身的共轭转置矩阵相等,它的特点是对角线上的元素是实数,对角线外的元素满足共轭对称,例如:
厄米矩阵和实数域上的对称矩阵一样有以下特点:
- 特征值都是实数。
- 特征向量相互垂直(都是复向量)。
用 \(q_1, q_2, ..., q_n\) 表示特征向量,它们是标准正交的:
然后有,
Q 是复数域下的正交矩阵,在复数域下叫酉矩阵(Unitary Matrix)。
傅里叶矩阵
\(F_n\) 是个对称矩阵(注意它不是厄米矩阵,它是复数域上的对称矩阵),且各列互相正交(但不是标准正交的,所以不能算酉矩阵)。
令 \(i,j = 0, 1, ..., n-1\),则 \(F_n\) 的元素为 \(F_{ij} = w^{ij}\)。
w 是一个特殊的复数,它位于复平面的单位圆上,满足以下性质:
\(\frac{2\pi i}{n}\) 相当于对单位圆进行 n 等分,或者说是对 1 求 n 次方根,一共有 n 个不同的根,均匀分布在单位圆上,w 是第一个分点,又称为原根。
以 4 阶傅里叶矩阵为例:
n = 4,因此,\(w = e^{\frac{2\pi i}{4}} = i\)
可以从这个矩阵得到一个 4 点离散傅里叶变换(Discrete Fourier Transform),它的逆矩阵代表对应的傅里叶逆变换。
傅里叶矩阵的逆矩阵
\(F_4\) 的逆矩阵也容易求,\(F_4\) 各列相互正交,但不是标准正交向量,因此 \(F_4\) 不是正交矩阵/酉矩阵,但它有个特点是各列长度相同,都是 4,将其标准化后得到 \(\frac{1}{2}F_4\),此时它变成了正交矩阵/酉矩阵,因此满足 \((\frac{1}{2}F_4)^{-1} = (\frac{1}{2}F_4)^H\),将两侧展开后得到 \(2 F_4^{-1} = \frac{1}{2} F_4^H\),然后可以得到 \(F_4^{-1} = \frac{1}{4} F_4^H\)。
换个推导过程,由于每一列长度的平方都是 4,因此 \(F_4^H F_4 = 4I\),可以直接得到 \(F_4^{-1} = \frac{1}{4} F_4^H\)。
因此,\(F_4\) 的逆矩阵为 \(\frac{1}{4} F_4^H\)。
实际上这是个一般结论,
快速傅里叶变换(Fast Fourier Transform)
首先看一个傅里叶矩阵的规律,\(F_n\) 和 \(F_{n/2}\) 之间具有内在联系,例如,\(F_{64}\) 的 w 是 \(e^{\frac{2\pi i}{64}}\),\(F_{32}\) 的 w 是 \(e^{\frac{2\pi i}{32}}\),我们分别用 \(w_{64}\) 和 \({32}\) 来表示,可以发现,\(w_{32} = w_{64}^2\),\(w_{64}\) 和 \(w_{32}\) 相当于对单位圆进行 64 等分和 32 等分,\(w_{64}^2\) 相当于把辐角扩大了一倍。
从矩阵的角度来看,可以将 \(F_n\) 分解为 \(F_{n/2}\) 乘以左右两个修正矩阵的形式,以简化傅里叶变换的计算,例如,
\(I\) 是单位矩阵,\(D\) 是一个对角矩阵,\(P\) 是一个奇偶置换矩阵。
奇偶置换矩阵是把偶数行放在前面,奇数行放在后面,例如,4x4 的奇偶置换矩阵为:
D 是由 w 的幂构成的对角矩阵,
矩阵分解后,可以减少傅里叶变换的计算量,例如,\(F_{64}\) 的计算量是 \(64^2\) 次乘法,分解后,计算量变为两个 \(F_{32}\) 的乘法次数外加修正矩阵的乘法次数。
最终,对于 n 阶傅里叶矩阵,快速傅里叶变换的计算量为 \(O(\frac{1}{2}n \log_2 n)\),而直接计算的计算量为 \(O(n^2)\)。
正定矩阵
正定矩阵是一种特殊的对称矩阵,它的特征值都是正数,主元也是正数,并且它的行列式值和所有的子行列式值都为正数。
通常,对正定性的定义如下所示:
对于所有非零向量 x,\(x^TAx\) 的值都大于 0。
\(x^TAx\) 叫做二次型(Quadratic Form),因为它展开后是一个二次函数,无论 A 是不是正定矩阵,它都是二次型,我们这里只讨论 A 是正定矩阵的情况。
我们可以用开头提到的几点来判断一个矩阵是不是二次型。
正定矩阵的逆矩阵也是正定矩阵(前面提到,逆矩阵的特征值是原矩阵特征值的倒数)。
如果 A 和 B 都是正定矩阵,则 A + B 也是正定矩阵(\(x^T(A+B)x > 0\))。
\(A^TA\) 也是正定矩阵,A 为 mxn 矩阵,A 的转置乘以 A 是一个 nxn 的对称矩阵,并且它是正定的,证明如下:
对称矩阵的消元系数
(这一节 Strang 是放在正定矩阵章节中讲的,实际上下面的规律也适用于一般的对称矩阵)
以 2x2 正定矩阵为例,如果我们将 \(x^TAx\) 拆开来看的话,会得到形如 \(ax^2 + 2bxy + cy^2\) 的二次函数,其中 \(a, b, c\) 是由矩阵元素决定的,\(x, y\) 是向量的分量。
比如有如下 2x2 正定矩阵:
展开后会变成 \(2x^2 + 12xy + 20y^2\),配方后得到 \(2(x + 3y)^2 + 2y^2\),可以看出,这个二次函数的值总是大于 0 的。
消元后 A 变成了 U,L 记录了消元过程中用到的倍数,上面配方后得到的二次函数,平方项中的 3 就是 L 中的消元倍数 3 ,剩下的 2 就是 U 中的主元。
二次型极小值和正定矩阵
从微积分的角度来讲,函数的极小值需要根据 \(f(x)\) 的一阶导数 和 二阶导数来判断,当一阶导数为 0,二阶导数大于 0 时,函数有极小值,位于一阶导数为 0 的点上。
如果是二元函数,例如上面的 \(f(x) = ax^2 + 2bxy + cy^2\),当它的一阶导数为 0 、二阶导数矩阵为正定矩阵时,函数有极小值,位于一阶导数为 0 的点上。
二阶导数矩阵:
对称矩阵的主轴定理
(这一节 Strang 同样是放在正定矩阵章节中讲,但主轴定理也适用于一般的对称矩阵)
我们从几何的角度来理解这个事。
对于正定矩阵来说,\(x^TAx\) 可以展开为一个二次函数,并且它的值总是大于 0 的。
如果 \(x^TAx\) 展开是一个一元二次函数,例如 \(f = ax^2\),那么这个函数的图像是一个开口向上的抛物线,函数的值总是大于 0 的,如果我们指定一个函数值 f = p,相当于沿着 f = p 这条线在抛物线上横着截了一刀,截面看起来是一个线段,实际上截面上只有两个点,在这两个点上,函数值都是 p。
相应的,如果 \(x^TAx\) 展开是一个二元二次函数,例如 \(f = ax^2 + 2bxy + cy^2\),这个函数的图像是一个开口向上的抛物面(一个碗),如果我们沿着 f = p 这个值在抛物面上截一下,截面看起来是一个椭圆,实际上截面上只包含这个椭圆的边缘(换句话说,椭圆是空心的),在这个椭圆上,函数值都是 p。
那么,以此类推,如果 \(x^TAx\) 展开是一个三元二次函数,如果我们沿着 f = p 这个值在抛物面上截一下,会得到一个椭球体,空心的椭球体,在这个椭球体的表面上,函数值都是 p。
然后,椭球里面可以定义出三个互相垂直、长短不一的轴,这三个轴分别对应着 A 的三个特征向量,轴的长度由特征值的大小决定(半轴长度和特征值大小成反比)。
这本质上是因为 A 可以被分解为 \(A = Q\Lambda Q^T\),分解后,二次型 \(x^TAx\) 在新坐标 \(y = Q^Tx\) 下变成了
新坐标 y 是 x 在 Q 的各个特征向量方向上的投影。
此时二次型的主方向就是特征向量方向。
当 f = p 时,
可以看出,\(p/\lambda_i\) 就是第 i 个轴的长度的平方,因此,轴的长度和特征值成反比。
将二次型 \(x^TAx\) 变为 \(y^T\Lambda y\)的过程叫做二次型化为标准型。
相似矩阵和若当矩阵(Jordan Matrix)
相似矩阵
A 和 B 是两个 nxn 的方阵,如果存在一个可逆矩阵 M,使得 \(A = M^{-1}BM\),则称 A 和 B 是相似矩阵。
按照以上定义,如果 A 的特征向量是线性无关的,那么 A 和 它的对角化矩阵 \(\Lambda\) 是相似矩阵,\(S^{-1}AS = \Lambda\)。
如果 \(M^{-1}AM = B\),则 A 、B、\(\Lambda\) 这三个矩阵互为相似矩阵,他们的特征值相同。
相似矩阵具有相同的特征值。
对角阵是最重要的相似矩阵,他的特征值就是对角线上的元素,特征向量是标准正交向量 \([1,0,0,...,0]^T\)、\([0,1,0,...,0]^T\)、...、\([0,0,0,...,1]^T\)。
特征值重复时的相似矩阵
特征值重复时,相似矩阵又分两种情况:
对于矩阵 A,\(M^{-1} A M = A\),考虑一下 A 和 I 的关系,就会发现,A 只和 他自己相似。
而矩阵 B,我们能找出一系列其他和 B 相似的矩阵,但它无法对角化,因为它只有一个线性无关的特征向量,因此,B 和 A 不相似。
若当矩阵(Jordan Matrix)
上面提到的矩阵
是一系列相似矩阵中最简洁、最接近对角阵的一个,我们把它叫做若当标准型(Jordan Normal Form)或 若当矩阵(Jordan Matrix),所有和 B 相似的矩阵都能转化为若当标准型。
通常来讲,若当矩阵的主对角线元素相同,上方次对角线上的元素只能为 0 或 1,其他元素为 0(实际上主对角线元素不一定相同,下面若当块部分会介绍这一点)。
上面给出的矩阵 A 和 矩阵 B 都是若当矩阵。
若当块(Jordan Block)
严格来讲,若当矩阵是由若干个若当块(Jordan Block)组成的矩阵,若当块沿着主对角线排列,即若当块的主对角线一定在若当矩阵的主对角线上。
一个若当块主对角线元素相同,特征值重复,上方次对角线上的元素只能为 1,其他元素为 0,只有一个线性无关的特征向量,如下所示。
看一个比较极端的例子,以下矩阵是若当矩阵,它的特征值全为 0,分为两个若当块,有两个线性无关的特征向量:
下面这个矩阵不是若当矩阵,但它是 A 的相似矩阵:
下面这个矩阵虽然是若当矩阵,特征值和特征向量的个数和 A 相同,但不是 A 的相似矩阵,因为他们的若当块划分不同:
对角矩阵也是若当矩阵
任何一个方阵 A 都相似于一个若当矩阵。
如果 A 的特征值各不相同,那么它就相似于一个对角矩阵,按照若当矩阵的定义,实际上对角矩阵也是若当矩阵(每个特征值对应一个单独的若当块)。
奇异值分解(Singular Value Decomposition, SVD)
\(\Sigma\) 是对角矩阵,U、V 是正交矩阵。
A 可以是任意的 mxn 矩阵,U 是 mxm 的正交矩阵,V 是 nxn 的正交矩阵,\(\Sigma\) 是 mxn 的对角矩阵,对角线上的元素为 A 的奇异值(Singular Value),奇异值为非负实数,并且按照从大到小的顺序排列。
对称正定矩阵的对角化分解 \(A = Q\Lambda Q^T\) 就是一种奇异值分解。
怎么理解奇异值分解
假设有一个 mxn 的矩阵,它的行空间中有一个向量 \(v\),列空间中有一个向量 \(u\),我们希望找到一个矩阵 A 使得 \(u = Av\),实际上,我们需要找到行空间的一组标准正交基和列空间的一组标准正交基,使得这两组基之间也能用 A 来转换。
即,
表示为矩阵乘法就是如下形式:
其中,A 的秩为 r,\(V = [v_1, v_2, ..., v_r]\) 是行空间的一组标准正交基,\(U = [u_1, u_2, ..., u_r]\) 是列空间的一组标准正交基,\(\sigma_1, \sigma_2, ..., \sigma_r\) 是从 V 变换到 U 的缩放系数。
可以简写为:
V 是一个 nxr 的矩阵,U 是一个 mxr 的矩阵,\(\Sigma\) 是一个 rxr 的对角矩阵。
此时,U 和 V 还不是正交矩阵,因为它们不是方阵。
将 U, V 补全成正交矩阵:
我们将 U 补全成 mxm 的正交矩阵,把 V 补全成 nxn 的正交矩阵,补到 U 里的向量是从左零空间中选取的,补到 V 里的列是从零空间里选取的,原因是 U 是由列向量组成的,而列空间和左零空间互为正交补(都位于 \(\mathbb{R}^m\) 中,维度之和为 m,且相互正交),所以恰好能找出几个向量补充到 U 中使其称为正交矩阵,矩阵 V 同理。
而 \(\Sigma\) 补全为:
我们发现 U 和 V 中额外补充进来的向量其实并不起作用,因为和 \(\Sigma\) 相乘后会变为0。
这时,我们将 A 两边同时乘以 \(V^{-1}\),得到:
奇异值和特征值的关系
奇异值不一定等于特征值,它们只在某些情况下相同,但是由于非零奇异值的数量等于矩阵的秩,因此,
- 非零奇异值的数量和非零特征值的数量是相同的。
- 可以根据奇异值的数量来判断矩阵的秩、矩阵是否可逆。
V 、 U 、σ 怎么求
我们发现,这实际上是把 \(A^TA\) 对角化分解了,\(\sigma_1^2, \sigma_2^2, ..., \sigma_r^2\) 是 \(A^TA\) 的特征值,V 是 \(A^TA\) 的特征向量矩阵。
U 是 \(AA^T\) 的特征向量矩阵。
注意,这里单凭 \(A^TA\) 无法确定 U 中各向量的符号,需要结合 \(Av_i = \sigma_i u_i\) 来确定。
除此之外,我们还发现,\(A^TA\) 和 \(AA^T\) 的特征值相同。
推广到一般情况,AB 和 BA 的特征值也相同。
利用 SVD 求 Ax=0
利用 SVD,我们可以求解零空间和左零空间的解空间,即 Ax = 0 和 \(A^Ty = 0\) 的解。
根据非零奇异值的数量,我们可以知道矩阵的秩,进而知道 U 和 V 中有多少列是从零空间和左零空间中选取的,这些列就是 Ax = 0 和 \(A^Ty = 0\) 的解空间的基。
线性变换
变换(Transformation)又被称为映射(Mapping)。
线性变换必须满足以上两个性质。
投影、旋转都是线性变换。
矩阵也是一个线性变换,矩阵乘以一个向量相当于对这个向量做一个线性变换。
根据上述两个性质,只要我们知道一个线性变换对基向量的影响,就能得到对空间内任意一个向量变换后的结果。
基变换
基变换就是把一个向量 p 表示成另一组基的线性组合,我们需要求出 p 在新基下的坐标,也就是线性组合的系数。
W 是新基,c 是 p 在新基下的坐标。
如果 W 可逆,那么,
p 是原基向量下的坐标,c 是新基向量下的坐标。
如果 W 是一个正交矩阵,那么,\(W^{-1} = W^T\),c 的计算就简单了。
假设有一个线性变换 T,有两组不同的基 V 和 W,经过 T 变换后,分别得到两个矩阵 A 和 B,A 和 B 是相似矩阵。
M 称为基变换矩阵。
复习三
满足 \(A^TA = AA^T\) 的矩阵具有以下特点:
- A 可以被分解为 \(A = Q\Lambda Q^T\) 的形式,即 A 可以被对角化分解。
- A 的特征向量相互垂直。
对称矩阵、反对称矩阵、正交矩阵都满足 \(A^TA = AA^T\),因此,他们都具有以上两个特点。
这类矩阵叫做正规矩阵(Normal Matrix)。
正交矩阵的特征值的绝对值为 1。
左右逆和伪逆
令 A 是 mxn 矩阵,以下讨论都以此为前提。
左逆和右逆
左逆(Left Inverse)
如果 A 是列满秩矩阵,r = n,m ≥ n,那么 \(A^TA\) 的秩也是 n (根据前面正交一节中提到的性质),由于 \(A^TA\) 是个 nxn 的对称矩阵,因此 \(A^TA\) 可逆,此时,
上式的前半部分 \((A^TA)^{-1}A^T\) 就是 A 的左逆矩阵,记作 \(A_{left}^{-1}\),是 nxm 矩阵。
如果交换 \(A_{left}^{-1}\) 和 A 的相乘顺序,上式是不成立的。
交换相乘顺序后,变成了这样,\(A(A^TA)^{-1}A^T\),我们发现这是个投影矩阵,可以用来求列空间上的投影。
右逆(Right Inverse)
如果 A 是行满秩矩阵,r = m,m ≤ n,那么 \(AA^T\) 的秩也是 m ( \(R(AA^T) = R(A^T) = m\) ),由于 \(AA^T\) 是个 mxm 的对称矩阵,因此 \(AA^T\) 可逆,此时,
上式的后半部分 \(A^T(AA^T)^{-1}\) 就是 A 的右逆矩阵,记作 \(A_{right}^{-1}\),是 nxm 矩阵。
同样,如果交换 A 和 \(A_{right}^{-1}\) 的相乘顺序,上式也是不成立的。
交换相乘顺序后,变成了 \(A^T(A A^T)^{-1}A\),这也是个投影矩阵,可以用来求行空间上的投影。
伪逆(Pseudo-inverse)
假设我们现在要求解 Ax,那么 x 一定是一个 n 维向量,和行向量维度相同,我们又知道行空间和零空间为正交补,即,行空间和零空间共同构成 n 维空间,这就意味着,由前面解方程 Ax= b 的过程可以知道,x 总能表示为“特解 + 通解”的形式,实际上,特解位于行空间,通解位于零空间,x 通常同时包含“行空间分量”和“零空间分量”,而 Ax 会得到一个列空间中的向量,这说明行空间中的向量和列空间中的向量有对应关系。
实际上,行空间中的向量和列空间中的向量是一一对应的。(Ax = b 存在无穷多的解时是因为有通解存在,如果通解始终为 0 ,那么 Ax = b 有唯一解,这也从侧面说明这种一一对应的关系)。
证明也很简单,如果 \(Ax = Ay\),那么 \(A(x - y) = 0\),也就是说 \(x - y\) 位于零空间,但是 x 和 y 都是行空间中的向量,因此他俩的线性组合不可能位于零空间,因此,\(Ax \neq Ay\)。
(从这个角度,也能理解为什么奇异值分解是利用 A 把行空间的基向量变换为列空间的基向量了)
A 是一个映射,将行空间映射到列空间,如果反过来,要把列空间中的向量映射回行空间,那么就需要一个逆映射,这个逆映射就是 A 的伪逆,记为 \(A^+\)。
前面提到的左逆和右逆都要求 A 列满秩或者行满秩,但伪逆不需要。
如何求伪逆
利用奇异值分解(SVD)来求伪逆。
\(\Sigma\) 是一个 mxn 的对角矩阵,\(\Sigma^+\) 是一个 nxm 的对角矩阵。
\(\Sigma^+\Sigma\) 是一个 nxn 的对角矩阵,\(\Sigma\Sigma^+\) 是一个 mxm 的对角矩阵,它们对角线前 r 个元素为 1,剩下的元素为 0,结果不是单位矩阵 \(I\),而是一个投影矩阵。