1.2 行化简和阶梯形矩阵(线性代数及其应用-第5版-系列笔记)
内容概述本节首先讲解了矩阵变换的两种形式:阶梯形和简化阶梯形,并讲述了这两种变换之间的关系(最重要的关系是二者的主元位置和主元列是相同的)。之所以引入这两种变换,是为了给解线性方程组和研究线性方程组解的性质提供方便。接下来,讲解了利用简化阶梯形求解线性方程组解的方法,最后讨论了利用阶梯形矩阵判断方程组解的存在性和唯一性的方法,并得出了解线性方程组的一般步骤。术语约定非零行:矩阵中至少包含一...
内容概述
本节首先讲解了矩阵变换的两种形式:阶梯形和简化阶梯形,并讲述了这两种变换之间的关系(最重要的关系是二者的主元位置和主元列是相同的)。之所以引入这两种变换,是为了给解线性方程组和研究线性方程组解的性质提供方便。接下来,讲解了利用简化阶梯形求解线性方程组解的方法,最后讨论了利用阶梯形矩阵判断方程组解的存在性和唯一性的方法,并得出了解线性方程组的一般步骤。
术语约定
非零行:
矩阵中至少包含一个非零元素的行
非零列:
矩阵中至少包含一个非零元素的列
先导元素:
非零行中最左边的非零元素
阶梯形矩阵的定义
一个矩阵称为阶梯形(或行阶梯形),若它有以下三个性质:
- 每一非零行都在每一零行之上
- 某一行的先导元素所在的列位于前一行先导元素的右边
- 某一先导元素所在列下方元素都是零
若一个阶梯形矩阵还满足以下性质,则称它为简化阶梯形(或简化行阶梯形):
- 每一非零行的先导元素是1
- 每一先导元素1是该元素所在列的唯一非零元素
下面是阶梯形矩阵的例子,先导元素用
△
\triangle
△表示,
∗
*
∗表示任意元素。
[
△
∗
∗
∗
0
△
∗
∗
0
0
0
0
0
0
0
0
]
\begin{bmatrix} \triangle & * & * & * \\ 0 & \triangle & * & * \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \end{bmatrix}
⎣⎢⎢⎡△000∗△00∗∗00∗∗00⎦⎥⎥⎤
[ 0 △ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ 0 0 0 △ ∗ ∗ ∗ ∗ ∗ ∗ 0 0 0 0 △ ∗ ∗ ∗ ∗ ∗ 0 0 0 0 0 △ ∗ ∗ ∗ ∗ 0 0 0 0 0 0 0 0 △ ∗ ] \begin{bmatrix} 0 & \triangle & * & * & * & * & * & * & * & * \\ 0 & 0 & 0 & \triangle & * & * & * & * & * & * \\ 0 & 0 & 0 & 0 & \triangle & * & * & * & * & * \\ 0 & 0 & 0 & 0 & 0 & \triangle & * & * & * & * \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & \triangle & * \end{bmatrix} ⎣⎢⎢⎢⎢⎡00000△0000∗0000∗△000∗∗△00∗∗∗△0∗∗∗∗0∗∗∗∗0∗∗∗∗△∗∗∗∗∗⎦⎥⎥⎥⎥⎤
下面是一个简化阶梯形矩阵的例子:
[
1
0
∗
∗
0
1
∗
∗
0
0
0
0
0
0
0
0
]
\begin{bmatrix} 1 & 0 & * & * \\ 0 & 1 & * & * \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \end{bmatrix}
⎣⎢⎢⎡10000100∗∗00∗∗00⎦⎥⎥⎤
[ 0 1 ∗ 0 0 0 ∗ ∗ 0 ∗ 0 0 0 1 0 0 ∗ ∗ 0 ∗ 0 0 0 0 1 0 ∗ ∗ 0 ∗ 0 0 0 0 0 1 ∗ ∗ 0 ∗ 0 0 0 0 0 0 0 0 1 ∗ ] \begin{bmatrix} 0 & 1 & * & 0 & 0 & 0 & * & * & 0 & * \\ 0 & 0 & 0 & 1 & 0 & 0 & * & * & 0 & * \\ 0 & 0 & 0 & 0 & 1 & 0 & * & * & 0 & * \\ 0 & 0 & 0 & 0 & 0 & 1 & * & * & 0 & * \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & * \end{bmatrix} ⎣⎢⎢⎢⎢⎡0000010000∗0000010000010000010∗∗∗∗0∗∗∗∗000001∗∗∗∗∗⎦⎥⎥⎥⎥⎤
任何非零矩阵都可以行化简(即用初等行变换)为阶梯形矩阵。若矩阵 A A A行等价于阶梯形矩阵 U U U,则称 U U U为 A A A的阶梯形;若 U U U是简化阶梯形,则称 U U U为 A A A的简化阶梯形。
主元位置
需要注意:阶梯形矩阵化简为简化阶梯形时,先导元素的位置并不改变。因简化阶梯形是唯一的,故当给定矩阵化为任何一个阶梯形时,先导元素总是在相同的位置上。
定义:
矩阵中的主元位置是
A
A
A中对应于它的简化阶梯形中先导元素1的位置。主元列是
A
A
A的含有主元位置的列。
下面的例子说明了可以通过把一个矩阵变换为阶梯形矩阵来求取主元位置:
有如下矩阵:
[
0
−
3
−
6
4
9
−
1
−
2
−
1
3
1
−
2
−
3
0
3
−
1
1
4
5
−
9
−
7
]
\begin{bmatrix} 0 & -3 & -6 & 4 & 9 \\ -1 & -2 & -1 & 3 & 1 \\ -2 & -3 & 0 & 3 & -1 \\ 1 & 4 & 5 & -9 & -7 \\ \end{bmatrix}
⎣⎢⎢⎡0−1−21−3−2−34−6−105433−991−1−7⎦⎥⎥⎤
经过行化简后,可以变换为如下形式:
[
1
4
5
−
9
7
0
2
4
−
6
−
6
0
0
0
−
5
0
0
0
0
0
0
]
\begin{bmatrix} 1 & 4 & 5 & -9 & 7 \\ 0 & 2 & 4 & -6 & -6 \\ 0 & 0 & 0 & -5 & 0 \\ 0 & 0 & 0 & 0 & 0 \\ \end{bmatrix}
⎣⎢⎢⎡100042005400−9−6−507−600⎦⎥⎥⎤
这个矩阵符合如下一般形式:
[
△
∗
∗
∗
∗
0
△
∗
∗
∗
0
0
0
△
∗
0
0
0
0
0
]
\begin{bmatrix} \triangle & * & * & * & * \\ 0 & \triangle & * & * & * \\ 0 & 0 & 0 & \triangle & * \\ 0 & 0 & 0 & 0 & 0 \\ \end{bmatrix}
⎣⎢⎢⎡△000∗△00∗∗00∗∗△0∗∗∗0⎦⎥⎥⎤
由上述对主元位置和主元列的定义,可知,该矩阵的主元分别是
1
1
1,
2
2
2,
−
5
-5
−5,主元列分别是第一、二、四列。
下面的例子说明了求取简化阶梯形的两个步骤,第一个步骤先将矩阵变换为阶梯形矩阵,第二个步骤再将阶梯形矩阵化简为简化阶梯形矩阵:
有如下矩阵:
[
1
3
−
6
6
4
−
5
3
−
7
8
−
5
8
9
3
−
9
12
−
9
6
15
]
\begin{bmatrix} 1 & 3 & -6 & 6 & 4 & -5 \\ 3 & -7 & 8 & -5 & 8 & 9 \\ 3 & -9 & 12 & -9 & 6 & 15 \end{bmatrix}
⎣⎡1333−7−9−68126−5−9486−5915⎦⎤
通过一系列的初等行变换(这一步骤称为行化简算法的向前步骤),可以得到其阶梯形矩阵:
[
3
−
9
12
−
9
6
15
0
2
−
4
4
2
−
6
0
0
0
0
1
4
]
\begin{bmatrix} 3 & -9 & 12 & -9 & 6 & 15 \\ 0 & 2 & -4 & 4 & 2 & -6 \\ 0 & 0 & 0 & 0 & 1 & 4 \end{bmatrix}
⎣⎡300−92012−40−94062115−64⎦⎤
接下来,为了得到简化阶梯形,需要将主元通过变换变为1,并且,通过将这一行乘以适当的倍数,加到其余的行,来使得该主元列其他的元素都变为0。这一步骤称为行化简的向后步骤。
经过这一步骤后,可以得到该矩阵的简化阶梯形:
[
1
0
−
2
3
0
−
24
0
1
−
2
2
0
−
7
0
0
0
0
1
4
]
\begin{bmatrix} 1 & 0 & -2 & 3 & 0 & -24 \\ 0 & 1 & -2 & 2 & 0 & -7 \\ 0 & 0 & 0 & 0 & 1 & 4 \end{bmatrix}
⎣⎡100010−2−20320001−24−74⎦⎤
本节讲述的阶梯形、简化阶梯形可以为下一节所述的解线性方程组提供方便。
线性方程组的解
行化简算法应用于方程组的增广矩阵时,可以得出线性方程组解集的一种显式表示法。
例如,设某个线性方程组的增广矩阵已经化为等价的简化阶梯形:
[
1
0
−
5
1
0
1
1
4
0
0
0
0
]
\begin{bmatrix} 1 & 0 & -5 & 1 \\ 0 & 1 & 1 & 4 \\ 0 & 0 & 0 & 0 \end{bmatrix}
⎣⎡100010−510140⎦⎤
对应的线性方程组为:
x
1
−
5
x
3
=
1
x
2
+
x
3
=
4
0
=
0
\begin{aligned} x_1 \quad - 5x_3 = 1 \\ x_2 + x_3 = 4 \\ 0 = 0 \end{aligned}
x1−5x3=1x2+x3=40=0
对应于主元列的变量
x
1
x_1
x1和
x
2
x_2
x2称为基本变量,其他变量称为自由变量。
由于简化阶梯形使每个基本变量仅包含在一个方程中(由于每一先导元素1是该元素所在列的唯一非零元素,所以除了该先导元素所在的行,其他行对应列的位置的元素都是零了),因此可以在每一个方程中用自由变量表示基本变量,便可以得到方程组的解。
上述方程组的通解为:
{
x
1
=
1
+
5
x
3
x
2
=
4
−
x
3
\begin{cases} x_1 = 1 + 5x_3 \\ x_2 = 4 - x_3\\ \end{cases}
{x1=1+5x3x2=4−x3
另外
x
3
x_3
x3是自由变量。所谓的自由变量,是指它可取任意的值。
x
3
x_3
x3的不同选择确定了方程组的不同的解,方程组的每个解由
x
3
x_3
x3的值的选择来确定。
解集的参数表示
形如上述方程组的表示式称为解集的参数表示,其中自由变量作为参数。解方程组就是要求出解集的这种参数表示或确定它无解。
需要注意,在上述方程组中,把
x
3
x_3
x3作为自由变量只是一种约定,其实它们之间中的任何一个都可以作为所谓的自由变量,来表示两外两个未知数。
存在性与唯一性问题
确定下列方程组的解是否存在且唯一:
3
x
2
−
6
x
3
+
6
x
4
+
4
x
5
=
−
5
3
x
1
−
7
x
2
+
8
x
3
−
5
x
4
+
8
x
5
=
9
3
x
1
−
9
x
2
+
12
x
3
−
9
x
4
+
6
x
5
=
15
\begin{aligned} 3x_2 - 6x_3 + 6x_4 + 4x_5 = -5 \\ 3x_1 - 7x_2 + 8x_3 - 5x_4 + 8x_5 = 9 \\ 3x_1 - 9x_2 + 12x_3 -9x_4 + 6x_5 = 15 \end{aligned}
3x2−6x3+6x4+4x5=−53x1−7x2+8x3−5x4+8x5=93x1−9x2+12x3−9x4+6x5=15
由上述阶梯形与简化阶梯形之间的关系(阶梯形矩阵化简为简化阶梯形时,先导元素的位置并不改变。),判断线性方程组解的存在性与唯一性问题,只需要将矩阵变换为阶梯形就可以了。
例如,将上述方程组化简为如下阶梯形:
[
3
−
9
12
−
9
6
15
0
2
−
4
4
2
−
6
0
0
0
0
1
4
]
\begin{bmatrix} 3 & -9 & 12 & -9 & 6 & 15 \\ 0 & 2 & -4 & 4 & 2 & -6 \\ 0 & 0 & 0 & 0 & 1 & 4 \end{bmatrix}
⎣⎡300−92012−40−94062115−64⎦⎤
可以判断出,基本变量是
x
1
x_1
x1,
x
2
x_2
x2,
x
5
x_5
x5,自由变量是
x
3
x_3
x3,
x
4
x_4
x4。这里没有类似
0
=
1
0=1
0=1等明显不成立的方程,所以该方程是有解的。同时,解不是唯一的,因为有自由变量的存在。
由此引出了下面的定理:
线性方程组相容的充要条件是增广矩阵的最右列不是主元列。也就是说,增广矩阵的阶梯形没有形如 [ 0 ⋯ , 0 , b ] , b ≠ 0 [0 \cdots, 0, b], b\neq0 [0⋯,0,b],b=0的行。若线性方程组相容,则它的解集可能有两种情形:1. 当没有自由变量时,有唯一解; 2. 若至少有一个自由变量,则有无穷多解。
利用行化简法解线性方程组的一般步骤
通过上面的讨论,也可以总结出解线性方程组的一般步骤:
- 写出方程组的增广矩阵
- 应用行化简算法把增广矩阵化为阶梯形,确定方程组是否相容。如果没有解则停止;否则进行下一步。
- 继续行化简算法得到它的简化阶梯形。
- 写出由第3步所得矩阵对应的方程组。
- 把第4步所得的每个非零方程改写为用任意自由变量表示其基本变量的形式。
例题:假设一个方程组的 4 × 7 4 \times 7 4×7系数矩阵有4个主元,这个方程组是相容的吗?如果它是相容的,有多少解?
解:由于系数矩阵有4个主元,因此系数矩阵的每行有一个主元。这意味着系数矩阵是行简化的,它没有0行,因此相应的行简化增广矩阵没有形如 [ 0 ⋯ , 0 , b ] [0 \cdots, 0, b] [0⋯,0,b]的行,其中 b b b是一个非零数。由本文所述定理知,方程组是相容的。此外,因为系数矩阵有7列且仅有4个主元列,所以将有3个自由变量构成无穷多解。
思考
由于任何一个线性方程组的系数矩阵都可以等价于一个简化阶梯型的矩阵,又由于简化阶梯形形态简单、易于理解、性质便于观察和研究;那么考虑矩阵相关的问题,都可以转化为考虑这个简化阶梯形相关的问题。在后面涉及的各种概念中,都可以这样思考问题。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)