线性代数中的线性方程组
1.2 行化简与阶梯形矩阵
行化简算法可用于任意矩阵,不管它是否为某一方程组的增广矩阵.首先需要引入两类重要的矩阵,包含1.1节中的“三角形”矩阵;在以下的定义中,矩阵中非零行或列指矩阵中至少包含一个非零元素的行或列;非零行的先导元素是指该行中最左边的非零元素.
定义 一个矩阵称为阶梯形(或行阶梯形),若它有以下三个性质:
- 每一非零行都在每一零行之上.
- 某一行的先导元素所在的列位于前一行先导元素的右边.
- 某一先导元素所在列下方元素都是零.
若一个阶梯形矩阵还满足以下性质,则称它为简化阶梯形(或简化行阶梯形)- 每一非零行的先导元素是1
- 每一先导元素1是该元素所在列的唯一非零元素.
若一个矩阵具有阶梯形(简化阶梯形),就称它为阶梯形(简化阶梯形)矩阵.
例1 下列矩阵都是阶梯形.先导元素用·表示,它们可以取任意的非零值,在*位置的元素可以取任意值,包括零值.
[
⋅
∗
∗
∗
0
⋅
∗
∗
0
0
0
0
0
0
0
0
]
\begin{bmatrix} ·&*&*&* \\ 0&·&*&* \\ 0&0&0&0 \\ 0&0&0&0 \end{bmatrix}
⋅000∗⋅00∗∗00∗∗00
下列矩阵是简化阶梯形,因先导元素都是1,且在每个先导元素1的上、下各元素都是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
任何非零矩阵都可以行化简(即用初等行变换)变为阶梯形矩阵,但用不同的方法可化为不同的阶梯形矩阵.然后,一个矩阵只能化为唯一的简化阶梯形矩阵.
定理1 (简化阶梯形矩阵的唯一性)
每个矩阵行等价于唯一的简化阶梯形矩阵.
若矩阵A行等价于阶梯形矩阵U,则称U为A的阶梯形(或行阶梯形);若U是简化阶梯形,则称U为A的简化阶梯形.大部分矩阵程序用RREF作为简化(行)阶梯形的缩写,有些用REF作为(行)阶梯形的缩写.
主元位置
当矩阵经行变换为阶梯形后,经过一步的行变换将矩阵化为简化阶梯形时,先导元素的位置并不改变.因简化阶梯形是唯一的,故当给定矩阵化为任何一个阶梯形时,先导元素总是在相同的位置上.这些先导元素对应简化阶梯形中的先导元素1.
定义 矩阵中的主元位置是A中对应于它的阶梯形中先导元素1的位置.主元列是A的含有主元位置的列.
例2 把下列矩阵A用行变换化为阶梯形,并确定主元列.
A
=
[
0
−
3
−
6
4
9
−
1
−
2
−
1
3
1
−
2
−
3
0
3
−
1
1
4
5
−
9
−
7
]
A=\begin{bmatrix} 0&-3&-6&4&9 \\ -1&-2&-1&3&1 \\ -2&-3&0&3&-1 \\ 1&4&5&-9&-7 \end{bmatrix}
A=
0−1−21−3−2−34−6−105433−991−1−7
最左边的非零列的第一个元素就是第一个主元位置.这个位置必须放一个非零元,即主元.最好将第一行与第四行对换,可以避免分数运算.
[
1
4
5
−
9
−
7
−
1
−
2
−
1
3
1
−
2
−
3
0
3
−
1
0
−
3
−
6
4
9
]
\begin{bmatrix} 1&4&5&-9&-7 \\ -1&-2&-1&3&1 \\ -2&-3&0&3&-1 \\ 0&-3&-6&4&9 \end{bmatrix}
1−1−204−2−3−35−10−6−9334−71−19
把第一行的倍数加到其它各行,使主元1下面的各元素变成0.第二行的主元位置必须尽量靠左,即在第二列.这里选择2作为第二个主元.
[
1
4
5
−
9
−
7
0
2
4
−
6
−
6
0
5
10
−
15
−
15
0
−
3
−
6
4
9
]
(1)
\begin{bmatrix} 1&4&5&-9&-7 \\ 0&2&4&-6&-6 \\ \tag{1} 0&5&10&-15&-15 \\ 0&-3&-6&4&9 \end{bmatrix}
1000425−35410−6−9−6−154−7−6−159
(1)
把第二行的
−
5
2
-\frac{5}{2}
−25倍加到第三行,
3
2
\frac{3}{2}
23倍加到第四列.
[
1
4
5
−
9
−
7
0
2
4
−
6
−
6
0
0
0
0
0
0
0
0
−
5
0
]
(2)
\begin{bmatrix} 1&4&5&-9&-7 \\ 0&2&4&-6&-6 \\ \tag{2} 0&0&0&0&0 \\ 0&0&0&-5&0 \end{bmatrix}
100042005400−9−60−5−7−600
(2)
(2)中的矩阵与1.1节遇到的不同,此处在第三列没有找到先导元素!然而对换第三行和第四行,则可在第四列产生先导元素.
[
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−50−7−600
此矩阵已是阶梯形,第一、二、四列是主元列.
行化简算法
例3 用初等行变换把下列矩阵先化为阶梯形,再化为简化阶梯形.
[
0
3
−
6
6
4
−
5
3
−
7
8
−
5
8
9
3
−
9
12
−
9
6
15
]
\begin{bmatrix} 0&3&-6&6&4&-5 \\ 3&-7&8&-5&8&9 \\ 3&-9&12&-9&6&15 \end{bmatrix}
0333−7−9−68126−5−9486−5915
对换第一、三两行:
[
3
−
9
12
−
9
6
15
3
−
7
8
−
5
8
9
0
3
−
6
6
4
−
5
]
\begin{bmatrix} 3&-9&12&-9&6&15 \\ 3&-7&8&-5&8&9 \\ 0&3&-6&6&4&-5 \end{bmatrix}
330−9−73128−6−9−56684159−5
把第一行的-1倍加到第二行:
[
3
−
9
12
−
9
6
15
0
2
−
4
4
2
−
6
0
3
−
6
6
4
−
5
]
\begin{bmatrix} 3&-9&12&-9&6&15 \\ 0&2&-4&4&2&-6 \\ 0&3&-6&6&4&-5 \end{bmatrix}
300−92312−4−6−94662415−6−5
把第二行的
−
3
2
-\frac{3}{2}
−23倍加到第三行:
[
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
已得到阶梯形矩阵.将第三行的适当倍数加到第二行和第一行:
[
3
−
9
12
−
9
0
−
9
0
2
−
4
4
0
−
14
0
0
0
0
1
4
]
\begin{bmatrix} 3&-9&12&-9&0&-9 \\ 0&2&-4&4&0&-14 \\ 0&0&0&0&1&4 \end{bmatrix}
300−92012−40−940001−9−144
第二行乘
1
2
\frac{1}{2}
21:
[
3
−
9
12
−
9
0
−
9
0
1
−
2
2
0
−
7
0
0
0
0
1
4
]
\begin{bmatrix} 3&-9&12&-9&0&-9 \\ 0&1&-2&2&0&-7 \\ 0&0&0&0&1&4 \end{bmatrix}
300−91012−20−920001−9−74
将第二行的9倍加到第一行:
[
3
0
−
6
−
9
0
−
72
0
1
−
2
2
0
−
7
0
0
0
0
1
4
]
\begin{bmatrix} 3&0&-6&-9&0&-72 \\ 0&1&-2&2&0&-7 \\ 0&0&0&0&1&4 \end{bmatrix}
300010−6−20−920001−72−74
将第一行乘
1
3
\frac{1}{3}
31:
[
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−20−320001−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
因为增广矩阵有4列,所以有3个变量,对应的线性方程组是
{
x
1
−
5
x
3
=
1
x
2
+
x
3
=
4
0
=
0
(3)
\left \{ \begin{array}{c} x_1-5x_3=1 \\ x_2+x_3=4 \\ \tag{3} 0=0 \end{array} \right.
⎩
⎨
⎧x1−5x3=1x2+x3=40=0(3)
对应于主元列的变量
x
1
x_1
x1和
x
2
x_2
x2称为基本变量.其它变量(
x
3
x_3
x3)称为自由变量.
只要一个线性方程组是相容的,如方程组(3),其解集就可以显示表示,只需要把方程的简化形式解出来再用自由变量表示基本变量即可.由于简化阶梯形使每个基本变量仅包含在一个方程组中,因此这是很容易的.在方程组(3)中,可以由第1个方程解出
x
1
x_1
x1,由第2个方程解出
x
2
x_2
x2(第3个方程对未知数没有任何限制,可以不管它).
{
x
1
=
1
+
5
x
3
x
2
=
4
−
x
3
x
3
是自由变量
(4)
\left \{ \begin{array}{c} x_1=1+5x_3 \\ x_2=4-x_3 \\ \tag{4} x_3是自由变量 \end{array} \right.
⎩
⎨
⎧x1=1+5x3x2=4−x3x3是自由变量(4)
x
3
x_3
x3是自由变量,是指它可以取任意的值.当
x
3
x_3
x3的值选定后,由(4)中的前两个方程就可以确定
x
1
x_1
x1和
x
2
x_2
x2的值.例如,当
x
3
=
0
x_3=0
x3=0,得出解
(
1
,
4
,
0
)
(1,4,0)
(1,4,0);当
x
3
=
1
x_3=1
x3=1,得出解
(
6
,
3
,
1
)
(6,3,1)
(6,3,1).
x
3
x_3
x3的不同选择确定了方程组的不同的解,方程组的每个解由
x
3
x_3
x3的值的选择来确定.
(4)式给出的解为方程组的通解,因为它给出了所有解的显示表示.
例4 求线性方程组的通解,该方程组的增广矩阵已经化为
[
1
6
2
−
5
−
2
−
4
0
0
2
−
8
−
1
3
0
0
0
0
1
7
]
\begin{bmatrix} 1&6&2&-5&-2&-4 \\ 0&0&2&-8&-1&3\\ 0&0&0&0&1&7 \end{bmatrix}
100600220−5−80−2−11−437
该矩阵已经是阶梯形矩阵,但仍需把它化为简化阶梯形
[
1
6
0
3
0
0
0
0
1
−
4
0
5
0
0
0
0
1
7
]
\begin{bmatrix} 1&6&0&3&0&0 \\ 0&0&1&-4&0&5\\ 0&0&0&0&1&7 \end{bmatrix}
1006000103−40001057
增广矩阵有6列,所以原方程组有5个变量,对应的方程组为:
{
x
1
+
6
x
2
+
3
x
4
=
0
x
3
−
4
x
4
=
5
x
5
=
7
(5)
\left \{ \begin{array}{c} x_1+6x_2+3x_4=0 \\ x_3-4x_4=5 \\ \tag{5} x_5=7 \end{array} \right.
⎩
⎨
⎧x1+6x2+3x4=0x3−4x4=5x5=7(5)
矩阵的主元列是第1、3、5列,所以基本变量为
x
1
,
x
3
,
x
5
x_1,x_3,x_5
x1,x3,x5,剩下的变量
x
2
,
x
4
x_2,x_4
x2,x4为自由变量.解出基本变量,可以得到通解为:
{
x
1
=
−
6
x
2
−
3
x
4
x
2
为自由变量
x
3
=
5
+
4
x
4
x
4
为自由变量
x
5
=
7
(6)
\left \{ \begin{array}{c} x_1=-6x_2-3x_4 \\ x_2为自由变量 \\ x_3=5+4x_4 \\ \tag{6} x_4为自由变量 \\ x_5=7 \end{array} \right.
⎩
⎨
⎧x1=−6x2−3x4x2为自由变量x3=5+4x4x4为自由变量x5=7(6)
注意,由方程组(5)的第3个方程,
x
5
x_5
x5的值是确定的.
解集的参数表示
解集的表达式(4)和(6)称为解集的参数表示,其中自由变量作为参数.解方程组就是要求解出解集的这种参数表示或确定它无解.
当一个方程组是相容的且具有自由变量时,它的解具有多种参数表示.例如,在方程组(3)中,可以把方程2的5倍加到方程1,得等价方程组
{
x
1
+
5
x
2
=
21
x
2
+
x
3
=
4
\left \{ \begin{array}{c} x_1+5x_2=21 \\ x_2+x_3=4 \end{array} \right.
{x1+5x2=21x2+x3=4
这时可以把
x
2
x_2
x2看作参数,用
x
2
x_2
x2表示
x
1
,
x
3
x_1,x_3
x1,x3,得到解集的第一种表示法.不过,总是约定使用自由变量作为参数来表示解集.
当方程组不相容时,解集是空集,而无论方程组是否有自由变量.此时,解集无参数表示.
回代
考虑下列方程组,它的增广矩阵已是阶梯形,但还不是简化阶梯形:
{
x
1
−
7
x
2
+
2
x
3
−
5
x
4
+
8
x
5
=
10
x
2
−
3
x
3
+
3
x
4
+
x
5
=
−
5
x
4
−
x
5
=
4
\left \{ \begin{array}{c} x_1-7x_2+2x_3-5x_4+8x_5=10 \\ x_2-3x_3+3x_4+x_5=-5 \\ x_4-x_5=4 \end{array} \right.
⎩
⎨
⎧x1−7x2+2x3−5x4+8x5=10x2−3x3+3x4+x5=−5x4−x5=4
计算机程序通常使用回代法解此方程组,而不是求它的简化阶梯形.程序先解第三个方程,用
x
5
x_5
x5表示
x
4
x_4
x4,并把此表达式代入第2个方程,从中解出
x
2
x_2
x2,最后把
x
2
x_2
x2和
x
4
x_4
x4的表达式代入第1个方程解出
x
1
x_1
x1.
使用简化阶梯形与回代法所需的算术运算次数相同.
存在与唯一性问题
虽然非简化的阶梯形并不适合于解线性方程组,但这种形式对于回答1.1节中提出的两个基本问题已经足够了.
例5 确定下列线性方程组的解是否存在且唯一.
{
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
=
4
\left \{ \begin{array}{c} 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=4 \end{array} \right.
⎩
⎨
⎧3x2−6x3+6x4+4x5=−53x1−7x2+8x3−5x4+8x5=93x1−9x2+12x3−9x4+6x5=4
该方程组的增广矩阵在例3中化简为:
[
3
−
9
12
−
9
6
15
0
2
−
4
4
2
−
6
0
0
0
0
1
4
]
(7)
\begin{bmatrix} 3&-9&12&-9&6&15 \\ 0&2&-4&4&2&-6 \\ \tag{7} 0&0&0&0&1&4 \end{bmatrix}
300−92012−40−94062115−64
(7)
基本变量是
x
1
,
x
2
x_1,x_2
x1,x2和
x
5
x_5
x5,自由变量是
x
3
x_3
x3和
x
4
x_4
x4.这里没有类似0=1的造成不相容方程组的方程,所以可以用回代法求解.但解的存在性在方程(7)中已经清楚了.同时,解不是唯一的,因为有自由变量存在.
x
3
x_3
x3和
x
4
x_4
x4的每一种选择都确定一组解,所以此方程组有无穷多组解.
当一个方程组化为阶梯形且不包含形如
0
=
b
0=b
0=b(其中
b
≠
0
b\neq 0
b=0)的方程时,每个非零方程包含一个基本变量,它的系数非零.或者这些基本变量已经完全确定(此时无自由变量),或者至少有一个基本变量可用一个或多个自由变量表示.对前一种情形,有唯一解;对后一种情形,有无穷多个解(对应于自由变量的每一个选择都有一个解).
定理2 (存在与唯一性定理)
线性方程组相容的充要条件是增广矩阵的最右列不是主元列.也就是说,增广矩阵的阶梯形没有形如
[ 0 ⋯ 0 b ] , b ≠ 0 [0\cdots 0 \quad b],b\neq 0 [0⋯0b],b=0
的行.若线性方程组相容,则它的解集可能有两种情形:(i)当没有自由变量时,有唯一解;(ii)若至少有一个自由变量,则有无穷多解.
以下是求解线性方程组的步骤.
应用行化简算法解线性方程组
- 写出方程组的增广矩阵.
- 应用行化简算法把增广矩阵化为阶梯形.确定方程组是否相容.如果没有解则停止;否则进行下一步.
- 继续行化简算法得到它的简化阶梯形.
- 写出由第3步所得矩阵对应的方程组.
- 把第4步所得的每个非零方程改写为用任意自由变量表示其基本变量的形式.