L2-矩阵消元
(高斯)消元法 Gaussian elimination 是很多软件用于求解方程组的方法,结合回代替换 backward substitution,最终可以求出方程组各个未知数的值。
参考
使用矩阵「语言」来描述消元的过程,其核心步骤是矩阵变换 matrix operation 和矩阵乘法 matrix multiple
对于方程组
以矩阵 形式来表示,其中系数矩阵 ,结果向量 ,变量向量是
其对应的增广矩阵是
- 首先如果要将矩阵中坐标为 (即第一行第一列)的元素作为第一个主元 pivot,就要对矩阵进行变换以消除 元素和 元素(该元素已经是 了,因此这一步可以省略),需要执行以下步骤
- 增广矩阵第一行乘一个系数 (即相当于方程组第一个等式两边乘以一个系数 )
- 增广矩阵第二行加上第一行(即相当于方程组第二个等式和第一个等式相加,获得一个新等式),获得的结果作为第二行,实现 元素的消除
- 然后重复以上两步,直到将系数矩阵从 变换为上三角矩阵
说明
这节课先假设求解的方程组的系数矩阵 是可逆的,即可以通过矩阵的初等变换或/和置换成功得到
- 最后就可以通过回代替换的方法求解所有未知数
以上步骤 1 和 2 就是初等矩阵/消元矩阵 的作用:初等矩阵与增广矩阵相乘(从行向量与矩阵相乘的角度考虑)实现增广矩阵行的基本变换(加减)
提示
在变换过程中,可能会遇到矩阵上方的某些行的元素先被消除,则需要使用置换矩阵 进行行替换/交换
置换矩阵与增广矩阵相乘(从行向量与矩阵相乘的角度考虑)实现行交换,以便最终得到上三角矩阵
首先消除增广矩阵的 元素
说明
初等矩阵记作 其下标的数字表示它的作用是消除增广矩阵的 元素(从行向量x矩阵的角度考虑),其核心是中间一行:
然后由于 元素已经是 ,因此 是单位矩阵(可以省略这一步)
最后是消除 元素
最后实现将系数矩阵 变换为上三角矩阵
提示
三角矩阵的行列式是矩阵主元 pivot 的乘积,因此上述示例中的上三角矩阵的行列式是
根据 可以得到
因此方程组的解为
矩阵消元的核心是将系数矩阵 变换为上三角矩阵 ,对于示例矩阵这个过程可以表示为 ,其中 为单位矩阵。
可以将多次初等变换整合到一步(利用矩阵乘法结合律,将初等矩阵先相乘起来),整合为一个矩阵,即
消元也可能会失败,这样的系数矩阵称为不可逆矩阵。
由于方程组中可能存在部分等式并不「独立」,因此在消元过程中出现一个消元步骤同时消去多个元的情况,相应地系数矩阵无法变换为上三角矩阵,无法得到应有数量的主元。
再从主元 pivot 的角度考虑,如果出现上述的情况,为了保证主元不能为 ;否则需要进行行置换(即如果该行的主元为 时,而同时下方某行的相应列的元素存在非零,可以使用置换矩阵实现行置换);如果该行以下的各行的相应列的元素都为 (无法进行置换),则原系数矩阵 就不可逆的,相应的方程组 也无法求得唯一解。
提示
类似地,对于方程组 而言也是一样,如果 是不可逆矩阵,则该方程组也是无法求得唯一解(即会有多个解);如果 是可逆矩阵时,则方程组只有一个唯一解,为零向量(即矩阵 的零空间中只有零向量)
因为对于方程组 从矩阵与列向量相乘的角度来考虑,列向量 是使矩阵 各列进行线性组合的系数,当矩阵是可逆的则表示矩阵的各列都是独立,为了使得线性组合得到零向量,只能 本身就是 ;而如果 是不可逆矩阵,则可能存在非零的系数,使得矩阵 各列的线性组合为零向量
在例子中,初等矩阵 的作用是将系数矩阵 的第二行减去第一行的三倍,结果作为新的第二行,因此消去 元素, 相乘得到的新矩阵为
将 「作用相反」的初等矩阵 记为 ,即它的作用是将矩阵 的第二行与第一行的三倍相加,结果作为新的第二行, 相乘可以 「恢复」得到 A
即 ,根据矩阵的乘法分配律得 , 因此矩阵与逆矩阵的乘积为单位矩阵