行化简与阶梯形矩阵

线性代数中的线性方程组

1.2 行化简与阶梯形矩阵

  行化简算法可用于任意矩阵,不管它是否为某一方程组的增广矩阵.首先需要引入两类重要的矩阵,包含1.1节中的“三角形”矩阵;在以下的定义中,矩阵中非零行或列指矩阵中至少包含一个非零元素的行或列;非零行的先导元素是指该行中最左边的非零元素.

定义 一个矩阵称为阶梯形(或行阶梯形),若它有以下三个性质:

  1. 每一非零行都在每一零行之上.
  2. 某一行的先导元素所在的列位于前一行先导元素的右边.
  3. 某一先导元素所在列下方元素都是零.
    若一个阶梯形矩阵还满足以下性质,则称它为简化阶梯形(或简化行阶梯形
  4. 每一非零行的先导元素是1
  5. 每一先导元素1是该元素所在列的唯一非零元素.

  若一个矩阵具有阶梯形(简化阶梯形),就称它为阶梯形简化阶梯形)矩阵.
例1 下列矩阵都是阶梯形.先导元素用·表示,它们可以取任意的非零值,在*位置的元素可以取任意值,包括零值.
[ ⋅ ∗ ∗ ∗ 0 ⋅ ∗ ∗ 0 0 0 0 0 0 0 0 ] \begin{bmatrix} ·&*&*&* \\ 0&·&*&* \\ 0&0&0&0 \\ 0&0&0&0 \end{bmatrix} 000000000
下列矩阵是简化阶梯形,因先导元素都是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} 100001000000
  任何非零矩阵都可以行化简(即用初等行变换)变为阶梯形矩阵,但用不同的方法可化为不同的阶梯形矩阵.然后,一个矩阵只能化为唯一的简化阶梯形矩阵.

定理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= 01213234610543399117
最左边的非零列的第一个元素就是第一个主元位置.这个位置必须放一个非零元,即主元.最好将第一行与第四行对换,可以避免分数运算.
[ 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} 11204233510693347119
把第一行的倍数加到其它各行,使主元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} 10004253541069615476159 (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} 10004200540096057600 (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} 10004200540096507600
此矩阵已是阶梯形,第一、二、四列是主元列.

行化简算法

例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} 03337968126594865915
对换第一、三两行:
[ 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} 33097312869566841595
把第一行的-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} 30092312469466241565
把第二行的 − 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} 30092012409406211564
已得到阶梯形矩阵.将第三行的适当倍数加到第二行和第一行:
[ 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} 30092012409400019144
第二行乘 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} 3009101220920001974
将第二行的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} 3000106209200017274
将第一行乘 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} 1000102203200012474
得到了原矩阵的简化阶梯形.

线性方程组的解

  行化简算法应用于方程组的增广矩阵时,可以得出线性方程组解集的一种显示表示法.例如,设某个线程方程组的增广矩阵已经化为等价的简化阶梯形
[ 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} 100010510140
因为增广矩阵有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. x15x3=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=4x3x3是自由变量(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} 100600220580211437
该矩阵已经是阶梯形矩阵,但仍需把它化为简化阶梯形
[ 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} 100600010340001057
增广矩阵有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=0x34x4=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=6x23x4x2为自由变量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. x17x2+2x35x4+8x5=10x23x3+3x4+x5=5x4x5=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. 3x26x3+6x4+4x5=53x17x2+8x35x4+8x5=93x19x2+12x39x4+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} 30092012409406211564 (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 [00b],b=0
的行.若线性方程组相容,则它的解集可能有两种情形:(i)当没有自由变量时,有唯一解;(ii)若至少有一个自由变量,则有无穷多解.

  以下是求解线性方程组的步骤.

应用行化简算法解线性方程组

  1. 写出方程组的增广矩阵.
  2. 应用行化简算法把增广矩阵化为阶梯形.确定方程组是否相容.如果没有解则停止;否则进行下一步.
  3. 继续行化简算法得到它的简化阶梯形.
  4. 写出由第3步所得矩阵对应的方程组.
  5. 把第4步所得的每个非零方程改写为用任意自由变量表示其基本变量的形式.
### 如何使用阶梯法化简增广矩阵 #### 增广矩阵的概念 增广矩阵是指在线性方程组中,将系数矩阵和常数项组合在一起形成的矩阵。通过初等变换,可以将增广矩阵转化为更简单的形式来求解线性方程组。 #### 阶梯形矩阵的特点 阶梯形矩阵具有以下特点: - 如果某一全为零,则该位于最底部。 - 非零的第一个非零元素(即主元)所在的列号随着号增加而严格增大。 - 主元下方的元素均为零[^1]。 #### 初等变换的方法 为了将增广矩阵化简阶梯形矩阵,可以通过三种基本的初等变换操作实现: - 将任意两互换位置; - 将某一乘以一个非零常数; - 将某一加上另一的倍数[^2]。 #### 实际案例演示 假设有一个如下所示的线性方程组: \[ \begin{cases} x_1 + 2x_2 - x_3 &= 8 \\ -x_1 + 3x_2 + 4x_3 &= 7 \\ 2x_1 - x_2 + 3x_3 &= 9 \end{cases} \] 其对应的增广矩阵表示为: \[ A=\left[\begin{array}{ccc|c} 1 & 2 & -1 & 8\\ -1& 3 & 4 & 7\\ 2 & -1 & 3 & 9 \end{array}\right] \] 现在对该增广矩阵一系列初等变换使其成为阶梯形矩阵: 第一步:保持第1为不变;交换第2第3的位置以便于后续计算方便: \[ E_{(R2,R3)} \cdot A = \left[\begin{array}{ccc|c} 1 & 2 & -1 & 3 & 9\\ -1& 3 & 4 & 7 \end{array}\right] \] 第二步:利用新得到的第一去消除其他各中的$x_1$变量, 即做$r_i=r_i-a_ir_1$,其中$a_i$代表当前第一个元素值. 对于新的第二来说就是$r'_2 = r_2 - 2r_1$ \[ E_{(-2R1+R2)} \cdot E_{(R2,R3)} \cdot A= \left[\begin{array}{ccc|c} 1 & 2 & -1 & 8\\ 0 & -5 & 5 & -7\\ -1& 3 & 4 & 7 \end{array}\right] \] 同样地处理第三,$r''_3 = r_3+r_1$ \[ E_{(R1+R3)} \cdot E_{(-2R1+R2)} \cdot E_{(R2,R3)} \cdot A= \left[\begin{array}{ccc|c} 1 & 2 & -1 & 8\\ 0 & -5 & 5 & -7\\ 0& 5 & 3 & 15 \end{array}\right] \] 此时已经完成了一次完整的消元过程,继续下一步骤直到形成最终所需的阶梯形矩阵。 最后一步:再次调整使得每一级台阶上的首个非零数值变为1,并清除上方可能存在的相同未知量的影响。 先让第二个主元变成1:$r'''_2=-\frac{1}{5}r''_2$ 再用这个更新过的第二去除掉第一里的对应部分影响.$r^{iv}_1=r'''_1+\frac{2}{5}r'''_2$ 接着重复上述动作给最后一也施加同样的变化... 经过这些转换之后我们就能获得标准的阶梯形矩阵了。 ```python import numpy as np # 定义原始增广矩阵 augmented_matrix = np.array([[1., 2., -1., 8.], [-1., 3., 4., 7.], [2., -1., 3., 9.]]) print("Original Augmented Matrix:") print(augmented_matrix) # 执初等变换... row_operations = [ lambda m: (m[[0, 2, 1], :]), # R2 <-> R3 lambda m: (-2*m[0]+m[1])[:, None]*np.eye(m.shape[0])[1:], # R2 <- R2 - 2*R1 lambda m: (m[0]+m[2])[:, None]*np.eye(m.shape[0])[2:] # R3 <- R3 + R1 ] for op in row_operations: augmented_matrix += op(augmented_matrix).astype(int) reduced_row_echelon_form = augmented_matrix.copy() print("\nReduced Row Echelon Form of the Augmented Matrix after some steps:") print(reduced_row_echelon_form) ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值