ML 之 线性代数 (2) 矩阵消元

消元法

消元法解多元一次方程组最先是由高斯提出的,但我们在线性代数中会用矩阵的方式来运算。

以下面一个 3 元一次方程组来说明:

 x + 2y + z = 2
3x + 8y + z = 12
4y + z = 2

$$
\left[\begin{matrix} 1 & 2 & 1 \\ 3 & 8 & 1 \\ 0 & 4 & 1 \end{matrix}\right] \tag{A}
$$
我们要把矩阵 A 转换为 U 的形式

$$
\left[\begin{matrix} m & n & n \\ 0 & m & n \\ 0 & 0 & m \end{matrix}\right] \tag{U}
$$
这样的矩阵 U 称之为 上三角矩阵,m 的位置称为 主元,且不能为 0(如果主元为 0,则通过交换行来移走它,如果无论怎么变换都无法得到上三角矩阵,则无解)。这个矩阵的代数意义是,第三行只有 z 变量,故可以求出 z 的值;第二行必须有 y,有无 z 没关系,因为 z 已经求出了;第一行必须有 x ,同理肯定可以求出 x 的值。

变换过程如下:
$$
\left[\begin{matrix} 1 & 2 & 1 \\ 3 & 8 & 1 \\ 0 & 4 & 1 \end{matrix}\right] \stackrel{E_{2,1}}{\longrightarrow} \left[\begin{matrix} 1 & 2 & 1 \\ 0 & 2 & -2 \\ 0 & 4 & 1 \end{matrix}\right]\\
\stackrel{E_{3,2}}{\longrightarrow} \left[\begin{matrix} 1 & 2 & 1 \\ 0 & 2 & -2 \\ 0 & 0 & 5 \end{matrix}\right]
$$

E 代表将该位置变成 0;$E_{2,1}$ 的过程是 Row2 - 3Row1;$E_{3,2}$ 的过程是 Row3-2Row2,这样就得到了上三角矩阵 U,实际上 还有一个 $E_{3,1}$ 的过程,只不过这里已经是 0 了,但是计算机不会省略这一步。

为了解决方程组,我们会把向量 b 添加到矩阵后面一起运算,新的矩阵叫做 增广矩阵, 过程如下
$$
\left[\begin{matrix} 1 & 2 & 1 & | & 2 \\ 3 & 8 & 1 & | & 12 \\ 0 & 4 & 1 & | & 2 \end{matrix}\right]\\
\stackrel{E_{2,1}}{\longrightarrow} \left[\begin{matrix} 1 & 2 & 1 & | & 2 \\ 0 & 2 & -2 & | & 6 \\ 0 & 4 & 1 & | & 2 \end{matrix}\right]\\
\stackrel{E_{3,2}}{\longrightarrow} \left[\begin{matrix} 1 & 2 & 1 & | & 2 \\ 0 & 2 & -2 & | & 6 \\ 0 & 0 & 5 & | & -10 \end{matrix}\right]
$$
我们可以得到新的列向量 c,回代 x,y,z

x + 2y +  z = 2
2y - 2z = 6
5z = -10

所以消元法实际上就是 由 A->U,b->c,然后回代 Ux=c,求出解的过程

实际上 MatLab 也是先算 A->U, 然后把计算过程应用到 b 上

消元矩阵

我们先要求出上面的 $E_{2,1}$ , $E_{3,2}$

如下所示:
$$
\left[\begin{matrix} 1 & 0 & 0 \\ -3 & 1 & 0 \\ 0 & 0 & 1 \end{matrix}\right] * \left[\begin{matrix} 1 & 2 & 1 \\ 3 & 8 & 1 \\ 0 & 4 & 1 \end{matrix}\right]\\
\stackrel{E_{2,1}}{\longrightarrow} \left[\begin{matrix} 1 & 2 & 1 \\ 0 & 2 & -2 \\ 0 & 4 & 1 \end{matrix}\right]
$$

$$
\left[\begin{matrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & -2 & 1 \end{matrix}\right] * \left[\begin{matrix} 1 & 2 & 1 \\ 0 & 2 & -2 \\ 0 & 4 & 1 \end{matrix}\right]\\
\stackrel{E_{3,2}}{\longrightarrow} \left[\begin{matrix} 1 & 2 & 1 \\ 0 & 2 & -2 \\ 0 & 0 & 5 \end{matrix}\right]
$$

整个过程记作:$E_{2,1}E_{3,2}A=U$

对于矩阵乘法,结合律有效,交换律无效;另外矩阵 * 列向量,相当于矩阵的列向量组合,所得结果也是列向量;行向量 * 矩阵,相当于矩阵的行向量组合,所得结果是行向量

置换矩阵

行交换
$$
\left[\begin{matrix} 0 & 1 \\ 1 & 0 \end{matrix}\right] * \left[\begin{matrix} a & b \\ c & d \end{matrix}\right] = \left[\begin{matrix} c & d \\ a & b \end{matrix}\right]
$$
列交换
$$
\left[\begin{matrix} a & b \\ c & d \end{matrix}\right] * \left[\begin{matrix} 0 & 1 \\ 1 & 0 \end{matrix}\right] = \left[\begin{matrix} b & a \\ d & c \end{matrix}\right]
$$
逆矩阵
如果 $E^{-1}E=I$, $I$ 是单位矩阵,则 $E^{-1}$ 是 $E$ 的逆矩阵


- - - - - - - - End Thank For Your Reading - - - - - - - -