1 概述
本节主要是对消元法的讲解。首先主要介绍了消元法的具体步骤和使用消元法对矩阵A的要求,然后介绍了如何使用矩阵乘法来表示消元操作。
2 消元法求解方程
2.1 消元法介绍
首先通过一个例子来求解
A
x
=
b
Ax=b
Ax=b,这里
A
A
A需要是可逆矩阵,即非奇异矩阵
{
x
+
2
y
+
z
=
2
3
x
+
8
y
+
z
=
12
4
y
+
z
=
2
(1)
\tag{1} \left \{ \begin{aligned} x+2y+z&=2\\ 3x+8y+z&=12\\ 4y+z &=2 \end{aligned} \right.
⎩⎪⎨⎪⎧x+2y+z3x+8y+z4y+z=2=12=2(1)
我们先按行将方程组写成矩阵形式:
[
1
2
1
3
8
1
0
4
1
]
[
x
y
z
]
=
[
2
12
2
]
\begin{array}{cccc} \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} \end{array}
⎣⎡130284111⎦⎤⎣⎡xyz⎦⎤=⎣⎡2122⎦⎤
这里矩阵的消元法和我们在初等数学中求解二元一次方程组的方法本质上是一样的,都是通过对不同行的方程进行四则运算来消去未知元,得到简化后的方程组。在线性代数中,我们把系数抽取出来,组合成矩阵,寻找一种普遍规律。
系数矩阵
A
=
[
1
2
1
3
8
1
0
4
1
]
A=\begin{bmatrix}\textcolor{red}{1}&2&1\\3&8&1\\0&4&1\end{bmatrix}
A=⎣⎡130284111⎦⎤,这里用
A
i
j
A_{ij}
Aij表示系数矩阵中第
i
i
i行,第
j
j
j列的数。其中
A
11
=
1
A_{11}=1
A11=1为主元1,主元是矩阵经过消元操作,变为阶梯形之后,非零行左边第一个非零元素。在消元操作中我们让主元
A
i
j
A_{ij}
Aij保持不变,主元所在列的其它元素
A
k
j
(
k
>
i
)
A_{kj}(k>i)
Akj(k>i)化为0。
通过
r
o
w
2
−
r
o
w
1
∗
3
row2-row1*3
row2−row1∗3的操作我们能够将
A
21
A_{21}
A21消为
0
0
0,得到主元2
A
22
A_{22}
A22,这时矩阵为
[
1
2
1
0
2
−
2
0
4
1
]
\begin{bmatrix}1&2&1\\0&2&-2\\0&4&1\end{bmatrix}
⎣⎡1002241−21⎦⎤。
观察
[
2
−
2
4
1
]
\begin{bmatrix}\textcolor{red}{2}&-2\\4&1\end{bmatrix}
[24−21],同理,我们可以通过
r
o
w
3
−
r
o
w
2
∗
2
row3-row2*2
row3−row2∗2 操作将
A
32
A_{32}
A32消为
0
0
0,得到
U
=
[
1
2
1
0
2
−
2
0
0
5
]
U=\begin{bmatrix}1&2&1\\0&2&-2\\0&0&5\end{bmatrix}
U=⎣⎡1002201−25⎦⎤
- A 11 = 1 A_{11}=1 A11=1 A 22 = 2 A_{22}=2 A22=2 A 33 = 5 A_{33}=5 A33=5为三个主元。
- 消元的目的是从 A ⟹ U ( U 为 上 三 角 阵 ) A \implies U(U为上三角阵) A⟹U(U为上三角阵),找到三个主元。在消元过程中,为了满足主元不能为 0 0 0的要求,可以交换行。
- A A A的行列式=各主元的乘积 = 1 ∗ 2 ∗ 5 = 10 =1*2*5=10 =1∗2∗5=10
- 将 [ 2 12 2 ] ⏟ B \underbrace{\begin{bmatrix}2\\12\\2\end{bmatrix}}_{B} B ⎣⎡2122⎦⎤ 与 A A A进行一样的倍数操作可以得到 [ 2 6 − 10 ] ⏟ C \underbrace{\begin{bmatrix}2\\6\\-10\end{bmatrix}}_{C} C ⎣⎡26−10⎦⎤
2.2 回代
- 将原方程用
U
U
U与
c
c
c代入得:
{ x + 2 y + z = 2 2 y − 2 z = 6 5 z = − 10 (2) \left\{\tag{2} \begin{aligned} x+2y+z&=2\\2y-2z&=6\\5z&=-10 \end{aligned} \right. ⎩⎪⎨⎪⎧x+2y+z2y−2z5z=2=6=−10(2)
- 公式(2)由下往上递归很容易求出: { x = 2 y = 1 z = − 2 \left\{\begin{aligned}x&=2\\y&=1\\z&=-2\end{aligned}\right. ⎩⎪⎨⎪⎧xyz=2=1=−2
3 消元矩阵(矩阵的线性组合)
接下来我们需要用矩阵来表示上文具体的变换步骤,首先介绍下向量与矩阵的乘法。
-
列向量与矩阵的乘法
[ ⋯ ⋯ ⋯ ⋮ ⋱ ⋮ ⋯ ⋯ ⋯ ] [ 3 4 5 ] = [ 3 ∗ c o l 1 4 ∗ c o l 2 5 ∗ c o l 3 ] \begin{bmatrix} \cdots&\cdots&\cdots\\ \vdots&\ddots&\vdots\\ \cdots&\cdots&\cdots \end{bmatrix} \begin{bmatrix}3\\4\\5\end{bmatrix}= \begin{bmatrix}3*col_{1}\\4*col_{2}\\5*col_{3}\end{bmatrix} ⎣⎢⎡⋯⋮⋯⋯⋱⋯⋯⋮⋯⎦⎥⎤⎣⎡345⎦⎤=⎣⎡3∗col14∗col25∗col3⎦⎤ -
行向量与矩阵的乘法
[ 1 2 7 ] [ ⋯ ⋯ ⋯ ⋮ ⋱ ⋮ ⋯ ⋯ ⋯ ] = [ 1 ∗ r o w 1 2 ∗ r o w 2 7 ∗ r o w 3 ] \begin{bmatrix}1&2&7\end{bmatrix} \begin{bmatrix} \cdots&\cdots&\cdots\\ \vdots&\ddots&\vdots\\ \cdots&\cdots&\cdots \end{bmatrix}= \begin{bmatrix}1*row_{1}\\2*row_{2}\\7*row_{3}\end{bmatrix} [127]⎣⎢⎡⋯⋮⋯⋯⋱⋯⋯⋮⋯⎦⎥⎤=⎣⎡1∗row12∗row27∗row3⎦⎤
消元矩阵的实质就是将消元过程中的行变换操作转化为矩阵之间的乘法形式。我们由行向量与矩阵的乘法很容易就可以知道: [ 1 0 ⋯ 0 ] \begin{bmatrix}1&0&\cdots&0\end{bmatrix} [10⋯0]乘以一个矩阵,会得到该矩阵的第一行。 [ 0 1 ⋯ 0 ] \begin{bmatrix}0&1&\cdots&0\end{bmatrix} [01⋯0]到 [ 0 0 ⋯ 1 ] \begin{bmatrix}0&0&\cdots&1\end{bmatrix} [00⋯1]分别可以得到矩阵的其余行。将这些向量组合起来,就可以得到单位矩阵 I I I(对角线上元素为1,其余元素均为0): I = [ 1 ⋯ 0 0 ⋱ 0 0 ⋯ 1 ] I=\begin{bmatrix}1&\cdots&0\\0&\ddots&0\\0&\cdots&1\end{bmatrix} I=⎣⎡100⋯⋱⋯001⎦⎤,单位矩阵乘以任何一个矩阵还是等于该矩阵本身,即 I A = A IA=A IA=A
观察我们之前的消元操作,
r
o
w
2
−
r
o
w
1
∗
3
row2-row1*3
row2−row1∗3。为了让
A
21
=
0
A_{21}=0
A21=0,让矩阵
[
1
2
1
3
8
1
0
4
1
]
\begin{bmatrix}1&2&1\\3&8&1\\0&4&1\end{bmatrix}
⎣⎡130284111⎦⎤的第二行加上第一行的-3倍,结合上文提到的行向量乘法,我们可以将操作
r
o
w
2
−
r
o
w
1
∗
3
row2-row1*3
row2−row1∗3转化为向量
[
−
3
1
0
]
∗
[
1
2
1
3
8
1
0
4
1
]
=
[
0
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}
[−310]∗⎣⎡130284111⎦⎤=[02−2],为了让矩阵的其他行保持不变,我们用消元矩阵
E
21
E_{21}
E21(让矩阵第二行第一列元素变化0)乘上矩阵
A
A
A
[
1
0
0
−
3
1
0
0
0
1
]
⏟
E
21
[
1
2
1
3
8
1
0
4
1
]
⏟
A
=
[
1
2
−
1
0
2
−
2
0
4
1
]
⏟
B
\underbrace{\begin{bmatrix}1&0&0\\-3&1&0\\0&0&1\end{bmatrix}}_{E_{21}} \underbrace{\begin{bmatrix}1&2&1\\3&8&1\\0&4&1\end{bmatrix}}_{A}= \underbrace{\begin{bmatrix}1&2&-1\\0&2&-2\\0&4&1\end{bmatrix}}_{B}
E21
⎣⎡1−30010001⎦⎤A
⎣⎡130284111⎦⎤=B
⎣⎡100224−1−21⎦⎤
同理,我们可以将操作
r
o
w
3
−
r
o
w
2
∗
2
row3-row2*2
row3−row2∗2化为消元矩阵
E
32
∗
B
E_{32}*B
E32∗B
[
1
0
0
0
1
0
0
−
2
1
]
⏟
E
32
[
1
2
−
1
0
2
−
2
0
4
1
]
⏟
B
=
[
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}} \underbrace{\begin{bmatrix}1&2&-1\\0&2&-2\\0&4&1\end{bmatrix}}_{B}= \underbrace{\begin{bmatrix}1&2&1\\0&2&-2\\0&0&5\end{bmatrix}}_{U}
E32
⎣⎡10001−2001⎦⎤B
⎣⎡100224−1−21⎦⎤=U
⎣⎡1002201−25⎦⎤
最终我们得到: E 32 ( E 21 A ) = U E_{32}(E_{21}A)=U E32(E21A)=U,观察 E 21 , E 32 E_{21},E_{32} E21,E32我们可以对单位矩阵 I = [ 1 0 0 0 1 0 0 0 1 ] I=\begin{bmatrix}1&0&0\\0&1&0\\0&0&1\end{bmatrix} I=⎣⎡100010001⎦⎤进行操作 r o w 2 − r o w 1 ∗ 3 row2-row1*3 row2−row1∗3得到 E 21 = [ 1 0 0 − 3 1 0 0 0 1 ] E_{21}=\begin{bmatrix}1&0&0\\-3&1&0\\0&0&1\end{bmatrix} E21=⎣⎡1−30010001⎦⎤,对 I = [ 1 0 0 0 1 0 0 0 1 ] I=\begin{bmatrix}1&0&0\\0&1&0\\0&0&1\end{bmatrix} I=⎣⎡100010001⎦⎤进行操作 r o w 3 − r o w 2 ∗ 2 row3-row2*2 row3−row2∗2得到 [ 1 0 0 0 1 0 0 − 2 1 ] \begin{bmatrix}1&0&0\\0&1&0\\0&-2&1\end{bmatrix} ⎣⎡10001−2001⎦⎤。我们将 E 21 , E 32 E_{21},E_{32} E21,E32称为初等变换。我们可以使用乘法结合律,先计算 E 32 ∗ E 21 E_{32} * E_{21} E32∗E21,记做 E E E, E E E就是整个消元过程的消元矩阵。
求消元矩阵就是把 A A A每次变换的消元步骤操作在 I I I矩阵上,得到相应的 E i j E_{ij} Eij,最后累积得到 E E E。
置换矩阵 P P P
- A n ∗ n A_{n*n} An∗n的置换矩阵 P P P的数量个数为 n 2 n^2 n2,其中包括单位阵 I I I在内
- 置换
A
A
A的两行,置换矩阵
P
P
P在
A
A
A的左侧
[ 0 1 1 0 ] ⏟ P [ a b c d ] ⏟ A = [ c d a b ] \underbrace{\begin{bmatrix}0&1\\1&0\end{bmatrix}}_{P}\underbrace{\begin{bmatrix}a&b\\c&d\end{bmatrix}}_{A}=\begin{bmatrix}c&d\\a&b\end{bmatrix} P [0110]A [acbd]=[cadb] - 置换
A
A
A的两列,置换矩阵
P
P
P在
A
A
A的右侧
[ a b c d ] ⏟ A [ 0 1 1 0 ] ⏟ P = [ b a d c ] \underbrace{\begin{bmatrix}a&b\\c&d\end{bmatrix}}_{A}\underbrace{\begin{bmatrix}0&1\\1&0\end{bmatrix}}_{P}=\begin{bmatrix}b&a\\d&c\end{bmatrix} A [acbd]P [0110]=[bdac]
逆矩阵
从上面我们可以得到:
P
∗
A
=
U
P*A=U
P∗A=U,即用矩阵乘法对一个矩阵进行变化。现在我们考虑一个反过程,怎样把
U
U
U还原成矩阵
A
A
A?
由
r
o
w
2
−
r
o
w
1
∗
3
row2-row1*3
row2−row1∗3,我们得到
E
21
=
[
1
0
0
−
3
1
0
0
0
1
]
E_{21}=\begin{bmatrix}1&0&0\\-3&1&0\\0&0&1\end{bmatrix}
E21=⎣⎡1−30010001⎦⎤;现在我们进行相反操作
r
o
w
2
+
r
o
w
1
∗
3
row2+row1*3
row2+row1∗3,得到
E
21
−
1
=
[
1
0
0
3
1
0
0
0
1
]
E_{21}^{-1}=\begin{bmatrix}1&0&0\\3&1&0\\0&0&1\end{bmatrix}
E21−1=⎣⎡130010001⎦⎤。
E
21
∗
E
21
−
1
=
[
1
0
0
−
3
1
0
0
0
1
]
∗
[
1
0
0
3
1
0
0
0
1
]
=
[
1
0
0
0
1
0
0
0
1
]
=
I
E_{21}*E_{21}^{-1}=\begin{bmatrix}1&0&0\\-3&1&0\\0&0&1\end{bmatrix}*\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}=I
E21∗E21−1=⎣⎡1−30010001⎦⎤∗⎣⎡130010001⎦⎤=⎣⎡100010001⎦⎤=I
我们将
E
21
−
1
E_{21}^{-1}
E21−1称为
E
21
E_{21}
E21的逆矩阵,逆矩阵是唯一的。