《线性代数(第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} = (AB)(B^{-1}A^{-1}) = A(BB^{-1})A^{-1} = AIA^{-1} = AA^{-1} = I\)。
矩阵的逆与转置(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)
假如矩阵 A 通过一次行变换 \(E_{21}\) 消元,变成了上三角矩阵 U,即 \(E_{21}A = U\),那么我们可以得到 A = LU,L 是 \(E_{21}\) 的逆矩阵。(U 是个上三角矩阵,L 是个下三角矩阵)