MIT 18.06 Gilbert Strang《线性代数》L2. 矩阵消元

这里是 MIT 18.06 Gilbert Strang《线性代数》笔记汇总.

消元法

有三元方程组 { x + 2 y + z = 2 3 x + 8 y + z = 12 4 y + z = 2 \begin{cases}x&+2y&+z&=2\\3x&+8y&+z&=12\\&4y&+z&=2\end{cases} x3x+2y+8y4y+z+z+z=2=12=2,对应的矩阵形式 A x = b Ax=b Ax=b [ 1 2 1 3 8 1 0 4 1 ] [ x y z ] = [ 2 12 2 ] \begin{bmatrix}1&2&1\\3&8&1\\0&4&1\end{bmatrix}\begin{bmatrix}x\\y\\z\end{bmatrix}=\begin{bmatrix}2\\12\\2\end{bmatrix} 130284111xyz=2122

按照我们以前做消元法的思路:

  • 第一步,我们希望在第二个方程中消去 x x x 项,来操作系数矩阵 A = [ 1 ‾ 2 1 3 8 1 0 4 1 ] A=\begin{bmatrix}\underline{1}&2&1\\3&8&1\\0&4&1\end{bmatrix} A=130284111,下划线的元素为第一步的主元(pivot) 即第一行的第一个非零元素 [ 1 ‾ 2 1 3 8 1 0 4 1 ] → r o w 2 − 3 r o w 1 [ 1 ‾ 2 1 0 2 − 2 0 4 1 ] \begin{bmatrix}\underline{1}&2&1\\3&8&1\\0&4&1\end{bmatrix}\xrightarrow{row_2-3row_1}\begin{bmatrix}\underline{1}&2&1\\0&2&-2\\0&4&1\end{bmatrix} 130284111row23row1 100224121

    这里我们先不管 b b b 向量,等做完 A A A 的消元可以再做 b b b 的消元。(这是MATLAB等工具经常使用的算法。)

  • 第二步,我们希望在第三个方程中消去 y y y 项,现在第二行第一个非零元素成为了第二个主元 [ 1 ‾ 2 1 0 2 ‾ − 2 0 4 1 ] → r o w 3 − 2 r o w 2 [ 1 ‾ 2 1 0 2 ‾ − 2 0 0 5 ‾ ] \begin{bmatrix}\underline{1}&2&1\\0&\underline{2}&-2\\0&4&1\end{bmatrix}\xrightarrow{row_3-2row_2}\begin{bmatrix}\underline{1}&2&1\\0&\underline{2}&-2\\0&0&\underline{5}\end{bmatrix} 100224121row32row2 100220125

    注意到第三行消元过后仅剩一个非零元素,所以它就成为第三个主元。做到这里就算消元完成了。

  • 接下来就该回代(back substitution)了,这时我们在 A A A 矩阵后面加上 b b b 向量写成增广矩阵(augmented matrix)的形式: [ A b ] = [ 1 2 1 2 3 8 1 12 0 4 1 2 ] → [ 1 2 1 2 0 2 − 2 6 0 4 1 2 ] → [ 1 2 1 2 0 2 − 2 6 0 0 5 − 10 ] [ A b ] \left[\begin{array}{c|c}A&b\end{array}\right]=\left[\begin{array}{ccc|c}1&2&1&2\\3&8&1&12\\0&4&1&2\end{array}\right]\to\left[\begin{array}{ccc|c}1&2&1&2\\0&2&-2&6\\0&4&1&2\end{array}\right]\to\left[\begin{array}{ccc|c}1&2&1&2\\0&2&-2&6\\0&0&5&-10\end{array}\right][Ab] [Ab]=13028411121221002241212621002201252610[Ab]

    不难看出, z z z 的解已经出现了,此时方程组变为 { x + 2 y + z = 2 2 y − 2 z = 6 5 z = − 10 \begin{cases}x&+2y&+z&=2\\&2y&-2z&=6\\&&5z&=-10\end{cases} x+2y2y+z2z5z=2=6=10,从第三个方程求出 z = − 2 z=-2 z=2,代入第二个方程求出 y = 1 y=1 y=1,再代入第一个方程求出 x = 2 x=2 x=2

讨论一下消元失效的情形:

  1. 首先,主元不能为零;
  2. 其次,如果在消元时遇到主元位置为零,则需要交换行,使主元不为零;
  3. 最后提一下,如果我们把第三个方程 z z z 前的系数改成 − 4 -4 4,会导致第二步消元时 − 4 − 2 ⋅ ( − 2 ) -4-2 \cdot (-2) 42(2) 最后一行全部为零,则第三个主元就不存在了,至此消元不能继续进行了,这就是下一讲中涉及的不可逆情况。

消元矩阵

上面的消元法是从简单的变换角度介绍了消元的具体操作,接下来我们需要用矩阵来表示变换的步骤,这也十分有必要,因为这是一种 “系统地” 变换矩阵的方法。

上一讲学习了矩阵乘以列向量的方法,有三个列向量的矩阵乘以另一个向量,按列的线性组合可以写作 [ v 1   v 2   v 3 ] [ 3 4 5 ] = 3 v 1 + 4 v 2 + 5 v 3 \Bigg[v_1\ v_2\ v_3\Bigg]\begin{bmatrix}3\\4\\5\end{bmatrix}=3v_1+4v_2+5v_3 [v1 v2 v3]345=3v1+4v2+5v3

这不能解决现在的问题,因为消元法中用的是 行变换。那我们考虑这个问题,行向量和矩阵的乘积是什么呢?

[ 1 2 7 ] [ r o w 1 r o w 2 r o w 3 ] = 1 r o w 1 + 2 r o w 2 + 7 r o w 3 \begin{bmatrix}1&2&7\end{bmatrix}\begin{bmatrix}&row_1&\\&row_2&\\&row_3&\end{bmatrix}=1row_1+2row_2+7row_3 [127]row1row2row3=1row1+2row2+7row3。易看出这里是一个行向量从左边乘以矩阵,这个行向量按行操作矩阵的行向量,并将其合成为一个矩阵行向量的线性组合。

为什么变为: 行向量左乘矩阵?

因为假设 矩阵是 3x3 的,此时行向量是 1x3,矩阵乘以行向量,衔接部分是 1 ≠ 3 1 \ne 3 1=3。所以需要交换一下变为左乘。

学会了行向量与矩阵之间的乘法,就可以使用行向量对矩阵的行做操作了。所谓 消元矩阵,就是 将消元过程中的行变换转化为矩阵之间的乘法形式.

首先要知道:单位矩阵与矩阵相乘 不改变矩阵。 消元矩阵就是它的变换形式。栗子: [ 1 0 0 0 1 0 0 0 1 ] [ 1 2 1 3 8 1 0 4 1 ] = [ 1 2 1 3 8 1 0 4 1 ]  本身  \left[\begin{array}{lll} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{array}\right]\left[\begin{array}{lll} 1 & 2 & 1 \\ 3 & 8 & 1 \\ 0 & 4 & 1 \end{array}\right]=\left[\begin{array}{lll} 1 & 2 & 1 \\ 3 & 8 & 1 \\ 0 & 4 & 1 \end{array}\right] \text { 本身 } 100010001130284111=130284111 本身 

消元法过程:

  • 消元法第一步操作为将第二行改成 r o w 2 − 3 r o w 1 row_2-3row_1 row23row1,其余两行不变,则有 [ 1 0 0 − 3 1 0 0 0 1 ] [ 1 2 1 3 8 1 0 4 1 ] = [ 1 2 1 0 2 − 2 0 4 1 ] \begin{bmatrix}1&0&0\\-3&1&0\\0&0&1\end{bmatrix}\begin{bmatrix}1&2&1\\3&8&1\\0&4&1\end{bmatrix}=\begin{bmatrix}1&2&1\\0&2&-2\\0&4&1\end{bmatrix} 130010001130284111=100224121。这个消元矩阵我们记作 E 21 E_{21} E21,即将第二行第一个元素变为零。

  • 接下来第二步就是求 E 32 E_{32} E32 消元矩阵了,即将第三行第二个元素变为零,操作为将第二行改成 r o w 3 − 2 r o w 2 row_3-2row_2 row32row2,,则 [ 1 0 0 0 1 0 0 − 2 1 ] [ 1 2 1 0 2 − 2 0 4 1 ] = [ 1 2 1 0 2 − 2 0 0 5 ] \begin{bmatrix}1&0&0\\0&1&0\\0&-2&1\end{bmatrix}\begin{bmatrix}1&2&1\\0&2&-2\\0&4&1\end{bmatrix}=\begin{bmatrix}1&2&1\\0&2&-2\\0&0&5\end{bmatrix} 100012001100224121=100220125。这就是消元所用的两个初等矩阵(elementary matrix)。

  • 最后,我们将这两步综合起来,即 E 32 ( E 21 A ) = U E_{32}(E_{21}A)=U E32(E21A)=U,也就是说如果我们想从 A A A 矩阵直接得到 U U U 矩阵的话,只需要 ( E 32 E 21 ) A (E_{32}E_{21})A (E32E21)A 即可。注意,矩阵乘法虽然不能随意变动相乘次序,但是可以变动括号位置,也就是满足结合律(associative law),而结合律在矩阵运算中非常重要,很多定理的证明都需要巧妙的使用结合律.

既然提到了消元用的初等矩阵,那我们再介绍一种用于置换两行的矩阵:置换矩阵(permutation matrix),例如 [ 0 1 1 0 ] [ a b c d ] = [ c d a b ] \begin{bmatrix}0&1\\1&0\end{bmatrix}\begin{bmatrix}a&b\\c&d\end{bmatrix}=\begin{bmatrix}c&d\\a&b\end{bmatrix} [0110][acbd]=[cadb],置换矩阵将原矩阵的两行做了互换。如果我们希望交换两列,则有 [ a b c d ] [ 0 1 1 0 ] = [ b a d c ] \begin{bmatrix}a&b\\c&d\end{bmatrix}\begin{bmatrix}0&1\\1&0\end{bmatrix}=\begin{bmatrix}b&a\\d&c\end{bmatrix} [acbd][0110]=[bdac]。即:左乘置换矩阵等同于行交换,右乘置换矩阵等同于列交换。

我们现在能够将 A A A 通过行变换写成 U U U,那么如何从 U U U 再变回 A A A,也就是求消元的逆运算。对某些“坏”矩阵,并没有逆,而本讲的例子都是“好”矩阵。


现在,我们以 E 21 E_{21} E21 为例, [ ? ] [ 1 0 0 − 3 1 0 0 0 1 ] = [ 1 0 0 0 1 0 0 0 1 ] \Bigg[\quad ?\quad \Bigg]\begin{bmatrix}1&0&0\\-3&1&0\\0&0&1\end{bmatrix}=\begin{bmatrix}1&0&0\\0&1&0\\0&0&1\end{bmatrix} [?]130010001=100010001,什么矩阵可以取消这次行变换?这次变换是从第二行中减去三倍的第一行,那么其逆变换就是给第二行加上三倍的第一行,所以逆矩阵就是 [ 1 0 0 3 1 0 0 0 1 ] \begin{bmatrix}1&0&0\\3&1&0\\0&0&1\end{bmatrix} 130010001

我们把矩阵 E E E 的逆记作 E − 1 E^{-1} E1,所以有 E − 1 E^{-1} E1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值