初等行变换与列变换
初等行变换与初等列变换是线性代数比较基础的内容。学会了这个才能继续学习高斯消元解方程。初等行变换分为三种:
- 交换两行;
- 给某一行乘以一个倍数;
- 把某行的倍数加到另一行。
同理,初等列变换,也是三种:
- 交换两列;
- 给某一列乘以一个倍数;
- 把某列的倍数加到另一列。
但是这与矩阵乘法有什么关系呢?因为上面这六种变换,都与矩阵乘法的效果一样,初等行变换相当于左边乘以了一个矩阵,列变换相当于右边乘以了一个矩阵。而这个用来乘的矩阵就叫做初等矩阵elementary matrix。
行交换乘法
先看看以下两个矩阵的乘法:
(
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
)
(
1
1
1
1
2
2
2
2
3
3
3
3
4
4
4
4
)
=
(
1
1
1
1
3
3
3
3
2
2
2
2
4
4
4
4
)
\begin{pmatrix} 1 & 0 & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 0 & 1 \end{pmatrix}\begin{pmatrix} 1 & 1 & 1 & 1\\ 2 & 2 & 2 & 2\\ 3 & 3 & 3 & 3\\ 4 & 4 & 4 & 4 \end{pmatrix}\\ =\begin{pmatrix} 1 & 1 & 1 & 1\\ 3 & 3 & 3 & 3\\ 2 & 2 & 2 & 2\\ 4 & 4 & 4 & 4 \end{pmatrix}\\
1000001001000001
1234123412341234
=
1324132413241324
可以看到,乘法的左右是将矩阵的两行进行了交换。将一个单位矩阵进行行交换之后,再放在左边乘以某个矩阵,会使得这个矩阵进行行交换。这种把单位阵进行行交换之后的矩阵叫做置换矩阵。
列交换乘法
再看下一个例子:
(
1
2
3
4
1
2
3
4
1
2
3
4
1
2
3
4
)
(
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
)
=
(
1
3
2
4
1
3
2
4
1
3
2
4
1
3
2
4
)
\begin{pmatrix} 1 & 2 & 3 & 4\\ 1 & 2 & 3 & 4\\ 1 & 2 & 3 & 4\\ 1 & 2 & 3 & 4 \end{pmatrix}\begin{pmatrix} 1 & 0 & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 0 & 1 \end{pmatrix}\\ =\begin{pmatrix} 1 & 3 & 2 & 4\\ 1 & 3 & 2 & 4\\ 1 & 3 & 2 & 4\\ 1 & 3 & 2 & 4 \end{pmatrix}\\
1111222233334444
1000001001000001
=
1111333322224444
把置换矩阵放在右边就是列交换了,上面的例子,第二列和第三列就完成了交换。
在初等矩阵中,效果是行交换和列交换的矩阵也叫做置换矩阵permutation matrix。
行倍数乘法
再看这个例子:
(
1
0
0
0
0
3
0
0
0
0
1
0
0
0
0
1
)
(
1
2
3
4
−
1
−
2
−
3
−
4
5
6
7
8
−
5
−
6
−
7
−
8
)
=
(
1
2
3
4
−
3
−
6
−
9
−
12
5
6
7
8
−
5
−
6
−
7
−
8
)
\begin{pmatrix} 1 & 0 & 0 & 0\\ 0 & 3 & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 1 \end{pmatrix} \begin{pmatrix} 1 & 2 & 3 & 4\\ -1 & -2 & -3 & -4\\ 5 & 6 & 7 & 8\\ -5 & -6 & -7 & -8 \end{pmatrix}\\ =\begin{pmatrix} 1 & 2 & 3 & 4\\ -3 & -6 & -9 & -12\\ 5 & 6 & 7 & 8\\ -5 & -6 & -7 & -8 \end{pmatrix}\\
1000030000100001
1−15−52−26−63−37−74−48−8
=
1−35−52−66−63−97−74−128−8
可以看到不过是把第二行放大了三倍。这种很简单,就不必说了。
列倍数乘法
再看看下一个例子:
(
1
2
3
4
−
1
−
2
−
3
−
4
5
6
7
8
−
5
−
6
−
7
−
8
)
(
1
0
0
0
0
2
0
0
0
0
1
0
0
0
0
1
)
=
(
1
4
3
4
−
1
−
4
−
3
−
4
5
12
7
8
−
5
−
12
−
7
−
8
)
\begin{pmatrix} 1 & 2 & 3 & 4\\ -1 & -2 & -3 & -4\\ 5 & 6 & 7 & 8\\ -5 & -6 & -7 & -8 \end{pmatrix} \begin{pmatrix} 1 & 0 & 0 & 0\\ 0 & 2 & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 1 \end{pmatrix}\\= \begin{pmatrix} 1 & 4 & 3 & 4\\ -1 & -4 & -3 & -4\\ 5 & 12 & 7 & 8\\ -5 & -12 & -7 & -8 \end{pmatrix}\\
1−15−52−26−63−37−74−48−8
1000020000100001
=
1−15−54−412−123−37−74−48−8
我们可以找到规律了,放在右边做乘法是做列变换。这次是把第二列变成了两倍。
行倍加乘法
大胆猜测,把单位阵做行倍加,再左乘一个矩阵,是不是也就对这个矩阵实现了行倍加呢?答案是对的:
(
1
0
0
0
3
1
0
0
0
0
1
0
0
0
0
1
)
(
9
8
1
5
9
2
7
3
3
6
7
2
5
1
10
2
)
=
(
9
8
1
5
36
26
10
18
3
6
7
2
5
1
10
2
)
\begin{pmatrix} 1 & 0 & 0 & 0\\ 3 & 1 & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 1 \end{pmatrix} \begin{pmatrix} 9 & 8 & 1 & 5\\ 9 & 2 & 7 & 3\\ 3 & 6 & 7 & 2\\ 5 & 1 & 10 & 2 \end{pmatrix}\\= \begin{pmatrix} 9 & 8 & 1 & 5\\ 36 & 26 & 10 & 18\\ 3 & 6 & 7 & 2\\ 5 & 1 & 10 & 2 \end{pmatrix}\\
1300010000100001
99358261177105322
=
936358266111071051822
从例子可以看出确实是第一行乘以三倍加到了第二行了。
列倍加乘法
列倍加不过是左边换到右边而已,我是不厌其烦地举例子啊:
(
9
7
5
9
4
3
1
6
1
10
5
4
3
10
9
4
)
(
1
0
2
0
0
1
0
0
0
0
1
0
0
0
0
1
)
=
(
9
7
23
9
4
3
9
6
1
10
7
4
3
10
15
4
)
\begin{pmatrix} 9 & 7 & 5 & 9\\ 4 & 3 & 1 & 6\\ 1 & 10 & 5 & 4\\ 3 & 10 & 9 & 4 \end{pmatrix} \begin{pmatrix} 1 & 0 & 2 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 1 \end{pmatrix}\\= \begin{pmatrix} 9 & 7 & 23 & 9\\ 4 & 3 & 9 & 6\\ 1 & 10 & 7 & 4\\ 3 & 10 & 15 & 4 \end{pmatrix}\\
941373101051599644
1000010020100001
=
94137310102397159644
实验了一下,我们的猜测是对的啊,就是把第一列乘以两倍加到了第三列上。
线性变换思想
其实这些用线性变换的思想很容易理解。一个线性变换可以用矩阵表示,这个线性变换把一组自然基变成什么样子,就会把自然基下的矩阵变成什么样子。这么说起来,比较难理解,一组自然基,其实就是单位阵,也就是说一个矩阵是通过什么步骤从单位阵变过来的,它去乘别的矩阵,也会按照同样的步骤去变换别的矩阵,这就是线性变换。
初等矩阵与初等行变换、初等列变换是高斯消元的基础,我接下来的文章就是介绍高斯消元。