线性代数--矩阵消元
日期: 2018-03-25 分类: 个人收藏 358次阅读
消元(elimination)
示例:
{
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}
⎩⎪⎨⎪⎧x+2y+z=23x+8y+z=124y+z=2
A
x
=
b
Ax=b
Ax=b
对应矩阵:
∣
[
1
]
2
1
3
[
8
]
1
0
4
[
1
]
∣
\begin{vmatrix} [1] & 2 &1 \\ 3 & [8] & 1 \\ 0 & 4 & [1] \end{vmatrix}
∣∣∣∣∣∣[1]302[8]411[1]∣∣∣∣∣∣
- 首先消除第二行主元[1]
∣ [ 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{vmatrix} [1] & 2 &1 \\ 3 & [8] & 1 \\ 0 & 4 & [1] \end{vmatrix} \underrightarrow{row2 - 3 * row 1} \begin{vmatrix} [1] & 2 &1 \\ 0 & [2] & -2 \\ 0 & 4 & [1] \end{vmatrix} ∣∣∣∣∣∣[1]302[8]411[1]∣∣∣∣∣∣row2−3∗row1∣∣∣∣∣∣[1]002[2]41−2[1]∣∣∣∣∣∣- 第三行主元[1]已被消除,无需消元
- 接下来,消除第三行主元[2]
∣ [ 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{vmatrix} [1] & 2 &1 \\ 0 & [2] & -2 \\ 0 & 4 & [1] \end{vmatrix} \underrightarrow{row3- 2 * row 2} \begin{vmatrix} [1] & 2 &1 \\ 0 & [2] & -2 \\ 0 & 0 & [5] \end{vmatrix} ∣∣∣∣∣∣[1]002[2]41−2[1]∣∣∣∣∣∣row3−2∗row2∣∣∣∣∣∣[1]002[2]01−2[5]∣∣∣∣∣∣
- 引入向量b(增广矩阵)进行消元,步骤与上面一致:
∣ 2 12 2 ∣ r o w 2 − 3 ∗ r o w 1 → ∣ 2 6 2 ∣ r o w 3 − 2 ∗ r o w 2 → ∣ 2 6 − 10 ∣ \begin{vmatrix} 2\\ 12\\ 2 \end{vmatrix} \underrightarrow{row2- 3 * row 1} \begin{vmatrix} 2\\ 6\\ 2 \end{vmatrix} \underrightarrow{row3- 2 * row 2} \begin{vmatrix} 2\\ 6\\ -10 \end{vmatrix} ∣∣∣∣∣∣2122∣∣∣∣∣∣row2−3∗row1∣∣∣∣∣∣262∣∣∣∣∣∣row3−2∗row2∣∣∣∣∣∣26−10∣∣∣∣∣∣
最终消元结果为:
∣ [ 1 ] 2 1 0 [ 2 ] − 2 0 0 [ 5 ] ∣ ∗ x = ∣ 2 6 − 10 ∣ \begin{vmatrix} [1] & 2 &1 \\ 0 & [2] & -2 \\ 0 & 0 & [5] \end{vmatrix} *x= \begin{vmatrix} 2\\ 6\\ -10 \end{vmatrix} ∣∣∣∣∣∣[1]002[2]01−2[5]∣∣∣∣∣∣∗x=∣∣∣∣∣∣26−10∣∣∣∣∣∣
U x = c Ux=c Ux=c
注:主元必须不为零,但如果0占据了主元位置,则需要交换行使主元不为0,前提需要主元所在下行位置不能为0。如果主元为0,且无法与下行交换使之不为0,则矩阵不可逆,即消元失效。
此处主元分别为 [1] [8] [1],如果主元为[1] [8] [-4],则消元最终结果为:
∣ [ 1 ] 2 1 0 [ 2 ] − 2 0 0 [ 0 ] ∣ \begin{vmatrix} [1] & 2 &1 \\ 0 & [2] & -2 \\ 0 & 0 & [0] \end{vmatrix} ∣∣∣∣∣∣[1]002[2]01−2[0]∣∣∣∣∣∣
回代(back substitution)
将以上消元的结果代入方程组:
{
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+2y+z=22y−2z=65z=−10
得到
{
x
=
2
y
=
1
z
=
−
2
\begin{cases} x=2\\ y=1\\ z=-2 \end{cases}
⎩⎪⎨⎪⎧x=2y=1z=−2
消元矩阵
回顾上一节末尾提到矩阵运算(列运算):
[
c
o
l
1
c
o
l
2
c
o
l
3
⋯
⋯
⋯
⋯
⋯
⋯
]
∗
[
a
b
c
]
=
[
a
∗
c
o
l
1
+
b
∗
c
o
l
2
+
c
∗
c
o
l
3
⋯
⋯
]
(1)
\begin{bmatrix} col1&col2&col3 \\ \cdots&\cdots&\cdots\\ \cdots&\cdots&\cdots \end{bmatrix} * \begin{bmatrix} a \\ b \\ c \end{bmatrix}= \begin{bmatrix} a *col1+b*col2+c*col3\\ \cdots\\ \cdots \end{bmatrix} \tag{1}
⎣⎡col1⋯⋯col2⋯⋯col3⋯⋯⎦⎤∗⎣⎡abc⎦⎤=⎣⎡a∗col1+b∗col2+c∗col3⋯⋯⎦⎤(1)
以行的形式进行矩阵消元:
[
a
b
c
]
∗
[
r
o
w
1
⋯
⋯
r
o
w
2
⋯
⋯
r
o
w
3
⋯
⋯
]
=
[
a
∗
r
o
w
1
+
b
∗
r
o
w
2
+
c
∗
r
o
w
3
⋯
⋯
]
(2)
\begin{bmatrix} a&b&c \end{bmatrix} * \begin{bmatrix} row1&\cdots&\cdots\\ row2&\cdots&\cdots\\ row3&\cdots&\cdots \end{bmatrix}= \begin{bmatrix} a*row1+b*row2+c*row3&\cdots&\cdots \end{bmatrix} \tag{2}
[abc]∗⎣⎡row1row2row3⋯⋯⋯⋯⋯⋯⎦⎤=[a∗row1+b∗row2+c∗row3⋯⋯](2)
核心:
矩阵乘以一列,结果为一列(示例1),行向量乘以矩阵,结果为一行(示例2)。
回到文章开始提到的矩阵试图消除主元:
[
E
21
]
∗
[
1
2
1
3
⏟
消
除
8
1
0
4
1
]
=
[
1
2
1
0
2
−
2
0
4
1
]
\begin{bmatrix} &&\\ &E_{21}&\\ && \end{bmatrix} * \begin{bmatrix} 1 & 2 &1 \\ \underbrace{3}_{消除} & 8 & 1 \\ 0 & 4 & 1 \end{bmatrix}= \begin{bmatrix} 1 & 2 &1 \\ 0 & 2 & -2 \\ 0 & 4 & 1 \end{bmatrix}
⎣⎡E21⎦⎤∗⎣⎢⎡1消除
30284111⎦⎥⎤=⎣⎡1002241−21⎦⎤
下面以行的形式拆分求解:
[
1
0
0
]
∗
[
1
2
1
3
8
1
0
4
1
]
=
[
1
2
1
]
(1)
\begin{bmatrix} 1&0&0 \end{bmatrix} * \begin{bmatrix} 1 & 2 &1 \\ 3 & 8 & 1 \\ 0 & 4 & 1 \end{bmatrix}= \begin{bmatrix} 1 & 2 &1 \end{bmatrix} \tag{1}
[100]∗⎣⎡130284111⎦⎤=[121](1)
[
−
3
1
0
]
∗
[
1
2
1
3
8
1
0
4
1
]
=
[
0
2
−
2
]
(2)
\begin{bmatrix} -3&1&0 \end{bmatrix} * \begin{bmatrix} 1 & 2 &1 \\ 3 & 8 & 1 \\ 0 & 4 & 1 \end{bmatrix}= \begin{bmatrix} 0 & 2 &-2 \end{bmatrix} \tag{2}
[−310]∗⎣⎡130284111⎦⎤=[02−2](2)
[
0
0
1
]
∗
[
1
2
1
3
8
1
0
4
1
]
=
[
0
4
1
]
(3)
\begin{bmatrix} 0&0&1 \end{bmatrix} * \begin{bmatrix} 1 & 2 &1 \\ 3 & 8 & 1 \\ 0 & 4 & 1 \end{bmatrix}= \begin{bmatrix} 0 & 4 &1 \end{bmatrix} \tag{3}
[001]∗⎣⎡130284111⎦⎤=[041](3)
综合以上:
[
1
0
0
−
3
1
0
0
0
1
]
⏟
E
21
∗
[
1
2
1
3
8
1
0
4
1
]
=
[
1
2
1
0
2
−
2
0
4
⏟
消
除
1
]
(4)
\underbrace{ \begin{bmatrix} 1&0&0\\ -3&1&0\\ 0&0&1 \end{bmatrix} }_{E_{21}} * \begin{bmatrix} 1 & 2 &1 \\ 3 & 8 & 1 \\ 0 & 4 & 1 \end{bmatrix}= \begin{bmatrix} 1 & 2 &1 \\ 0 & 2 & -2 \\ 0 & \underbrace{4}_{消除} & 1 \end{bmatrix} \tag{4}
E21
⎣⎡1−30010001⎦⎤∗⎣⎡130284111⎦⎤=⎣⎢⎡10022消除
41−21⎦⎥⎤(4)
最后需要消除式(4)中右侧矩阵主元:
[
1
0
0
0
1
0
0
−
2
1
]
⏟
E
32
∗
[
1
2
1
0
2
−
2
0
4
1
]
=
[
1
2
1
0
2
−
2
0
0
5
]
⏟
U
\underbrace{ \begin{bmatrix} 1&0&0\\ 0&1&0\\ 0&-2&1 \end{bmatrix} }_{E_{32}} * \begin{bmatrix} 1 & 2 &1 \\ 0 & 2 & -2 \\ 0 & 4 & 1 \end{bmatrix}= \underbrace{ \begin{bmatrix} 1& 2 &1 \\ 0 & 2& -2 \\ 0 & 0 & 5 \end{bmatrix} }_{U}
E32
⎣⎡10001−2001⎦⎤∗⎣⎡1002241−21⎦⎤=U
⎣⎡1002201−25⎦⎤
整个矩阵运算:
E
32
∗
(
E
21
∗
A
)
=
U
E_{32}*(E_{21}*A)=U
E32∗(E21∗A)=U
重要性质:
矩阵相乘同样适用结合律,但不适用交换律
( E 32 ∗ E 21 ) ∗ A = U (E_{32}*E_{21})*A=U (E32∗E21)∗A=U
即[ 1 0 0 0 1 0 0 − 2 1 ] ⏟ E 32 ∗ [ 1 0 0 − 3 1 0 0 0 1 ] ⏟ E 21 = [ 1 0 0 − 3 1 0 − 6 − 2 1 ] ⏟ E \underbrace{ \begin{bmatrix} 1&0&0\\ 0&1&0\\ 0&-2&1 \end{bmatrix} }_{E_{32}} * \underbrace{ \begin{bmatrix} 1&0&0\\ -3&1&0\\ 0&0&1 \end{bmatrix} }_{E_{21}}= \underbrace{ \begin{bmatrix} 1&0&0\\ -3&1&0\\ -6&-2&1 \end{bmatrix} }_{E} E32 ⎣⎡10001−2001⎦⎤∗E21 ⎣⎡1−30010001⎦⎤=E ⎣⎡1−3−601−2001⎦⎤
[ 1 0 0 − 3 1 0 − 6 − 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\\ -3&1&0\\ -6&-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} ⎣⎡1−3−601−2001⎦⎤∗⎣⎡1002241−21⎦⎤=⎣⎡1002201−25⎦⎤
E ∗ A = U E*A=U E∗A=U
置换矩阵(permutation matrix)
行交换(消元中需要用到):
[
0
1
1
0
]
⏟
置
换
矩
阵
∗
[
a
b
c
d
]
=
[
c
d
a
b
]
\underbrace{ \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} * \underbrace{ \begin{bmatrix} 0&1\\ 1&0\\ \end{bmatrix} }_{置换矩阵}= \begin{bmatrix} b & a \\ d &c \end{bmatrix}
[acbd]∗置换矩阵
[0110]=[bdac]
注意到,行变换利用左乘,列变换用到右乘
可逆矩阵(inverses matrix)
[ 1 0 0 3 1 0 0 0 1 ] ⏟ E − 1 ∗ [ 1 0 0 − 3 1 0 0 0 1 ] ⏟ E = [ 1 0 0 0 1 0 0 0 1 ] ⏟ I \underbrace{ \begin{bmatrix} 1&0&0\\ 3&1&0\\ 0&0&1 \end{bmatrix} }_{E^{-1}} * \underbrace{ \begin{bmatrix} 1&0&0\\ -3&1&0\\ 0&0&1 \end{bmatrix} }_{E}= \underbrace{ \begin{bmatrix} 1&0&0\\ 0&1&0\\ 0&0&1 \end{bmatrix} }_{I} E−1 ⎣⎡130010001⎦⎤∗E ⎣⎡1−30010001⎦⎤=I ⎣⎡100010001⎦⎤
上式中E矩阵行二减去三倍行一,逆步骤为E矩阵行二加上三倍行一
下节详述可逆矩阵
除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog
标签:# 线性代数
精华推荐