第二讲的主要内容:
线性方程组的消元法
使用矩阵语言表示消元过程
向量、矩阵乘的理解
置换矩阵的概念
初步逆矩阵的概念
线性方程组的消元法
例子:
{
x
+
2
y
+
z
=
2
3
x
+
8
y
+
z
=
12
4
y
+
z
=
2
\left\{\begin{matrix} x+2y+z=2\\ 3x+8y+z=12\\ 4y+z=2 \end{matrix}\right.
⎩ ⎨ ⎧ x + 2 y + z = 2 3 x + 8 y + z = 1 2 4 y + z = 2 为了方便,将方程组写成系数矩阵的形式:
(
1
2
1
3
8
1
0
4
1
)
\begin{pmatrix} 1 & 2& 1\\ 3 &8 &1 \\ 0& 4 &1 \end{pmatrix}
⎝ ⎛ 1 3 0 2 8 4 1 1 1 ⎠ ⎞ 消元的过程简单来说就像是一个简化的过程,首先,我们保持第一个方程不变,使用这个方程消去后两个方程的
x
x
x :
对于第二个方程,用第二个方程减去3倍的第一个方程
对于第三个方程,
x
x
x 的系数是0,理论上(在许多程序中也是如此)我们也要与第一个方程联立,但是显然,并没有什么改变,因此忽略这个过程
此时的系数矩阵:
(
1
2
1
0
2
−
2
0
4
1
)
\begin{pmatrix} 1 & 2& 1\\ 0 &2 &-2 \\ 0& 4 &1 \end{pmatrix}
⎝ ⎛ 1 0 0 2 2 4 1 − 2 1 ⎠ ⎞ 此时保持第一个方程不变,对后两个方程重复上面的过程,消去第三个方程的
y
y
y ,这时候的系数矩阵:
(
1
2
1
0
2
−
2
0
0
5
)
\begin{pmatrix} 1 & 2& 1\\ 0 &2 &-2 \\ 0& 0&5 \end{pmatrix}
⎝ ⎛ 1 0 0 2 2 0 1 − 2 5 ⎠ ⎞ 这个时候,系数矩阵是很有特点的,它是一个上三角矩阵,这一步得到的矩阵通常使用
U
U
U 表示,在后面我们会知道此时是一种“行阶梯”形式,会对求解行列式等等很有帮助。 其中每一行的第一个不为零的元素,也就是上述矩阵的1,2,5,称为主元 (pivot),主元的个数就是方程的个数,也就是有几行就有几个主元,主元是消元法的关键,我们的整个过程就是求主元的过程。为了能解出方程组,我们要保证主元的位置不为0,那么如果出现了主元位置为0的情况怎么办?很简单,通过行交换 即可。显然,交换方程组中的两个方程的位置并不会改变结果。当然,以后也会遇到某一行没有非零元素的情况,之后还有有讨论,暂且在此处不提。 现在矩阵的形式很简洁,为了求解,我们还有一步工作,那就是回代 (substitution),首先要了解一个概念: 增广矩阵 (augmented matrix),赠广的意思就是在系数矩阵的基础上,再将右侧的方程的结果加进去,也就是对于方程组:
A
x
=
b
Ax=b
A x = b ,对应的增广矩阵是
(
A
,
b
)
(A,b)
( A , b ) 。对于上面的方程组,增广矩阵为:
(
1
2
1
2
3
8
1
12
0
4
1
2
)
\begin{pmatrix} 1 & 2& 1&2\\ 3 &8 &1 &12\\ 0& 4 &1 &2 \end{pmatrix}
⎝ ⎛ 1 3 0 2 8 4 1 1 1 2 1 2 2 ⎠ ⎞ 那么对这个增广矩阵重复我们上面的消元过程,最后得到:
(
1
2
1
2
0
2
−
2
6
0
0
5
−
10
)
\begin{pmatrix} 1 & 2& 1&2\\ 0 &2 &-2 &6\\ 0& 0 &5 &-10 \end{pmatrix}
⎝ ⎛ 1 0 0 2 2 0 1 − 2 5 2 6 − 1 0 ⎠ ⎞ 将上述过程可以简写为:
(
A
,
b
)
⇔
(
U
,
c
)
\begin{pmatrix} A & , & b \end{pmatrix} \Leftrightarrow \begin{pmatrix} U & , & c \end{pmatrix}
( A , b ) ⇔ ( U , c ) 回代就是将上面的结果写回成为方程组的形式:
{
x
+
2
y
+
z
=
2
2
y
−
2
z
=
6
5
z
=
−
10
\left\{\begin{matrix} x+2y+z=2\\ 2y-2z=6\\ 5z=-10 \end{matrix}\right.
⎩ ⎨ ⎧ x + 2 y + z = 2 2 y − 2 z = 6 5 z = − 1 0 现在,我们可以很简单的解决这个方程组了。 总结一下这个过程:
将方程组写成增广矩阵的形式
依次进行行变换,求得矩阵的阶梯形式
回代方程,求解
在这里,还有一个很重要的概念,那就是使用向量的思想理解矩阵乘法,这里举两个不同的列子: 为了清楚,使用三维矩阵为例子: 行向量的线性组合
(
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
\begin{pmatrix} a & b &c \end{pmatrix} \begin{pmatrix} row1\\ row2\\ row3 \end{pmatrix} = arow1+brow2+crow3
( 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 注意row是一个向量,例如以一个3*3的矩阵为例子,上面的过程就是:
(
a
b
c
)
(
1
2
3
2
3
4
4
5
6
)
=
a
(
1
2
3
)
+
b
(
2
3
4
)
+
c
(
4
5
6
)
\begin{pmatrix} a & b &c \end{pmatrix} \begin{pmatrix} 1&2&3\\ 2&3&4\\ 4&5&6 \end{pmatrix} = a\begin{pmatrix} 1 &2 &3 \end{pmatrix} + b\begin{pmatrix} 2 &3 &4 \end{pmatrix} + c\begin{pmatrix} 4 &5 &6 \end{pmatrix}
( a b c ) ⎝ ⎛ 1 2 4 2 3 5 3 4 6 ⎠ ⎞ = a ( 1 2 3 ) + b ( 2 3 4 ) + c ( 4 5 6 )
列向量的线性组合
(
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
\begin{pmatrix} col1& col2 & col3\\ \end{pmatrix} \begin{pmatrix} a\\ b\\ c \end{pmatrix}=acol1+bcol2+ccol3
( 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 这个其实就是我们上面方程组
A
x
=
b
Ax=b
A x = b 的形式,请注意,国内教材一般没有明确的指出这种思想,但是使用这种思想来理解矩阵相乘会很有好处,所以请务必理解好上面的两种形式。
矩阵语言表示消元过程
这个其实就是应用上面向量相乘的思想,将消元的过程表示出来,简单来说,对于一个矩阵
A
A
A , 左乘一个向量相当于对行进行组合,右乘一个向量就是对列进行组合,这个过程举几个例子自己练练手就会发现,那么接下来,就比如消元的第一步,消去第二个方程的
x
x
x ,我们可以使用下面的矩阵相乘来表示:
(
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
0
5
)
\begin{pmatrix} 1 &0 &0 \\ -3& 1&0 \\ 0& 0 &1 \end{pmatrix} \begin{pmatrix} 1 &2 &1 \\ 3& 8&1 \\ 0& 4 &1 \end{pmatrix}= \begin{pmatrix} 1& 2 &1 \\ 0& 2 &-2 \\ 0& 0 &5 \end{pmatrix}
⎝ ⎛ 1 − 3 0 0 1 0 0 0 1 ⎠ ⎞ ⎝ ⎛ 1 3 0 2 8 4 1 1 1 ⎠ ⎞ = ⎝ ⎛ 1 0 0 2 2 0 1 − 2 5 ⎠ ⎞ 对于这个式子怎么来的,首先考虑这个式子:
(
1
0
0
0
1
0
0
0
1
)
(
1
2
1
3
8
1
0
4
1
)
\begin{pmatrix} 1 &0 &0 \\ 0& 1&0 \\ 0& 0 &1 \end{pmatrix} \begin{pmatrix} 1 &2 &1 \\ 3& 8&1 \\ 0& 4 &1 \end{pmatrix}
⎝ ⎛ 1 0 0 0 1 0 0 0 1 ⎠ ⎞ ⎝ ⎛ 1 3 0 2 8 4 1 1 1 ⎠ ⎞ 左边的矩阵很有特点,只有对角线上为1,其余的元素都是0,这样的矩阵叫做单位矩阵 ,它的作用就像我们用1乘以一个数字,结果不变,使用单位乘以一个矩阵(维数应该满足相乘的条件)这个矩阵也不会变,我们用每一行理解一下,取出第一行
(
1
,
0
,
0
)
(1 ,0 ,0)
( 1 , 0 , 0 ) ,就按照上面所说的向量乘的思想,是后面的矩阵的行的线性组合也就是取1倍的
r
o
w
1
row1
r o w 1 (
(
1
,
2
,
1
)
(1,2,1)
( 1 , 2 , 1 ) )与0倍的
r
o
w
2
row2
r o w 2 再加上0倍的
r
o
w
3
row3
r o w 3 这个结果作为结果矩阵的第一行,同理,其余行也是这样处理。所以使用对角阵乘以一个矩阵结果是不会变的。 有了这个思路,我们理解一下一开始的的矩阵相乘,第二行是
(
−
3
,
1
,
0
)
(-3,1,0)
( − 3 , 1 , 0 ) 用这个向量对右侧的矩阵的行向量进行组合的意思就是-3倍的
r
o
w
1
row1
r o w 1 + 1倍的
r
o
w
2
row2
r o w 2 ,结果作为结果矩阵的第二行向量,然后我们就会发现,这个过程其实就对应之前消元过程的用第二个方程减去3倍的第一个方程,其实左侧的矩阵就是由对角矩阵变化而成的,这样的矩阵称为初等矩阵 (elementary matrix),同理,我们可以用另一个初等矩阵表示消元过程的 第三个方程减去二倍的第二个方程。那么也就是说我们消元过程的每一步都可以使用左乘一个初等矩阵表示,这个过程就可以表示为:
E
1
E
2
E
3
.
.
.
E
n
A
=
U
E_{1}E_{2}E_{3}...E_{n}A = U
E 1 E 2 E 3 . . . E n A = U 根据矩阵相乘的结合律,我们可以将所有的初等矩阵先相乘,得到一个矩阵,再右乘
A
A
A 得到一个矩阵
E
E
E ,这个矩阵就称为消元矩阵
置换矩阵
在这一讲的后面,还提到了一个概念置换矩阵 (permutation maxtrix),顾名思义,也就是用来交换矩阵中的行列的,简单来说,对于一个矩阵,左乘对应维数的初等矩阵。就可以完成行变换,反之右乘,就是列变换,左乘换行,右乘换列 ,例如: 行变换:
(
0
1
1
0
)
(
a
b
c
d
)
=
(
c
d
a
b
)
\begin{pmatrix} 0 & 1\\ 1& 0 \end{pmatrix} \begin{pmatrix} a & b\\ c& d \end{pmatrix}= \begin{pmatrix} c & d\\ a& b \end{pmatrix}
( 0 1 1 0 ) ( a c b d ) = ( c a d b ) 列变换:
(
a
b
c
d
)
(
0
1
1
0
)
=
(
b
a
d
c
)
\begin{pmatrix} a & b\\ c& d \end{pmatrix} \begin{pmatrix} 0 & 1\\ 1& 0 \end{pmatrix}= \begin{pmatrix} b & a\\ d& c \end{pmatrix}
( a c b d ) ( 0 1 1 0 ) = ( b d a c ) 其实,使用向量相乘的思想理解矩阵乘法就可以很自然的想到上面的式子
在本讲的是最后,教授提到了逆矩阵 (inverse matrix)的概念,在后面会重点解释,简单来说,就是对一个矩阵进行行(列)变换,我们可以得到一个
E
E
E 消元矩阵,那么如果用另一个矩阵表示这个消元过程的逆操作,比如原来是(3,1,0)也就是第二行加上3倍的第一行,逆操作就是(-3,1,0),就是减去3倍的第一行,按照这个想法得到的矩阵就是上面的
E
E
E 的逆矩阵,两个矩阵的乘积的一个单位矩阵
I
I
I ,关于逆矩阵,之后还会有更具体的学习。
以上~
扫描二维码关注公众号,回复:
3458656 查看本文章