矩阵消元
Elimination with matrices
消元法求解方程
-
消元法介绍
消元法是计算机软件求解线形方程组所用的最常见的方法。任何情况下,只要是矩阵 A 可逆,均可以通过消元法求得 Ax=b 的解。
此处给出的线性方程组为:
**高斯消元法(Gauss elimination)**就是通过对方程组中的某两个方程进行适当的数乘和加(jian)和(fa),以达到将某一未知数系数变为零,从而削减未知数个数的目的。 我们将矩阵左上角的 1 称之为“主元一”(the first pivot),第一步要通过消元将第一列中除了主元之外的数字均变化为 0。操作方法就是用之后的每一行减去第一行的适当倍数,此例中第二行应减去第一行的 3 倍。之后应对第三行做类似操作,
本例中三行第一列数字已经为 0,故不用进行操作。
处在第二行第二列的主元二为 2,因此用第三行减去第二行的两倍进行消元,得到第三个主元为 5。
矩阵 A 为可逆矩阵,消元结束后得到上三角阵 U(Uppertriangular matrix),其左侧下半部分的元素均为 0,而主元 1,2,5 分列在 U 的对角线上。主元之积即行列式的值。
需要说明的是,主元不能为 0,如果恰好消元至某行,0 出现在了主元的位置上,应当通过与下方一行进行“行交换”使得非零数字出现在主元位置上。如果 0 出现在了主元位置上,并且下方没有对等位置为非 0 数字的行,则消元终止,并证明矩阵 A 为不可逆矩阵,且线性方程组没有唯一解。
例如消成这样 -
回代 Back-Substitution
做方程的高斯消元时,需要对等式右侧的 b 做同样的乘法和加减法。手工计算时比较有效率的方法是应用“增广矩阵”(augmented matrix),将 b 插入矩阵 A之后形成最后一列,在消元过程中带着 b 一起操作。(Matlab 是算完系数矩阵再处理 b 的。)
此时我们将原方程 Ax=b 转化为了新的方程 Ux=c,其中 c=
从最后一行得到 z=-2,依次回代可以得到 y=1,和 x=2。
先介绍增广矩阵:
一下子就看出来了,就是把系数矩阵 A 和向量 b 拼接成一个矩阵就行了。
消元矩阵 Elimination Matrices
- 行向量与矩阵的乘法
- 消元矩阵介绍
所谓消元矩阵,就是将消元过程中的行变换转化为矩 阵之间的乘法形式。
我们消元过程是将第一行乘-3 加到第二行,这是对第二行的操作,那么就
从单位阵得到第二行着手:
- 行交换矩阵与逆矩阵
(1)行交换与列变换
(2)逆矩阵初探
即我们把一个消元结束的矩阵 U 如何变为 未经消元的矩阵 A 呢?
答案就是乘上一个逆矩阵。