Lec02 - 矩阵消元
第 2 课 矩阵消元
第 2 课的主要内容是消元法的介绍。前半部分主要介绍了消元法的具体操作以及消元法成功条件(对矩阵 $A$ 有一定要求)。后半部分主要讲述使用矩阵乘法的观点来表示消元操作,顺带提及了用于矩阵行置换的置换矩阵和逆矩阵。
消元法不总是奏效的,其是否奏效取决于矩阵是否是一个好矩阵。不好的矩阵在消元时会出现主元的位置被零占据且通过行置换也无法解决该问题的情况。
换句话说,消元失效指的是不能得到 n(矩阵行数)个主元,于是矩阵也因此变得不可逆。
右侧向量 $b$ 是不是在消元过程中也要考虑(也即形成增广矩阵一起参与矩阵消元的行变换过程)
平时计算当然可以形成增广矩阵一起考虑。
但就
MATLAB
而言,MATLAB
一般在消元过程中不考虑右侧向量 $b$,而是在消元过程完成后(也即矩阵从 $A$ 变为 $U$ 后),再对右侧向量进行处理(使用消元矩阵进行左乘,消元矩阵本身能够表示消元过程中的所有消元操作)。之所以这样做是有道理的,这样的做法能够在某种场景下大量简化计算量:对于矩阵 $A$,给出大量不同的右侧向量 $b$ 进行 $x$ 的求解,此时只要我们算出了消元矩阵,那么只需要对不同的 $b$ 直接进行左乘处理,而不是一个个都与 $A$ 形成增广矩阵进行处理,后者不仅浪费时间还浪费空间。
列的线性组合与行的线性组合
给定如上矩阵 $A$,那么对其进行列的线性组合是右乘一个列向量:
对其进行行的线性组合是左乘一个行向量:
以上其实已经涉及到了线性代数的核心概念了:分别使用行(左)和列(右)进行矩阵操作。
了解了行的线性组合以后,理解消元矩阵就非常简单了:一个指定位置的消元不过是一次行的线性组合
此外,我们还可以从行的线性组合的角度来理解置换矩阵和逆矩阵:
置换矩阵
行置换
置换后的第一行为 0 个初始第一行 + 1 个初始第二行,置换后的第二行为 1 个初始第一行 + 0 个初始第二行。行置换属于行操作,故左乘。
列置换
置换后的第一列为 0 个初始第一列 + 1 个初始第二列,置换后的第二列为 1 个初始第一列 + 0 个初始第二列。列置换属于列操作,故右乘。
从矩阵变换的角度理解逆矩阵:比如消元过程中的行变换,我们如何撤回一个行变换呢?
对于一个 $3\times3$ 的 矩阵 $A$,当我们左乘一个 $E$ 矩阵
就表示对 $A$ 进行一次行变换,具体变换操作是将 $-3$ 倍的第一行和第二行相加得到新的第二行,其中第一行和第三行保持不变。我们如何撤销这次行变换呢?
已知 $IA = A$,所以如果存在矩阵 $C$ 使得 $CE = I$,那么 $CEA=IA=A$, 也即这次行变换就被撤销了,这样的 $C$ 矩阵我们称为逆矩阵,一般记为 $E^{-1}$。对于上面给出的 $E$,有 $E^{-1}$ 使得
综上,就矩阵变换而言,一个用于行变换的矩阵其逆矩阵可用于撤销这次行变换。