线性代数

第1章 线性方程

第1.1节 域

我们假定读者熟悉实数和复数的初等代数. 对于本书的很大一部分, 数字的代数性质可从以下所列加法和乘法的性质简单推导出来. 我们令F代表实数集或复数集.

  1. 加法是交换的, x+y = y+x 对于所有F中的xy成立.
  2. 加法是结合的, x+ ( y+z ) = ( x+y ) +z 对于所有F中的x, yz成立.
  3. F中存在唯一的元素0 (零) 满足x+0=x对于每个F中的x成立.
  4. 对于每个F中的x存在唯一的F中的元素(x)满足x+(x)=0与之对应.
  5. 乘法是交换的, xy = yx 对于所有F中的xy成立.
  6. 乘法是结合的, x ( yz ) = ( xy ) z 对于所有F中的x, yz成立.
  7. F中存在唯一的非零元素1 (幺) 满足x1=x对于每个F中的x成立.
  8. 对于每个F中非零的x存在唯一的F中的元素x1 (或1/x) 满足xx1=1与之对应.
  9. 乘法对于加法分配, 即x(y+z)=xy+xz对于所有F中的x, yz成立.

假定我们拥有一个包含对象x,y,z,的集合F和如下两种F上的运算. 第一种运算, 被称为加法, 联系每对F中的xyF中的元素(x+y). 第二种运算, 被称为乘法, 联系每对F中的xyF中的元素xy. 若是这两种运算满足如上从1到9的条件, 那么集合F以及此两种运算被合称为一个域. 粗略说来, 一个域就是一个集合带有某些运算, 这些运算表现得就像通常的数字加减乘除一样, 在满足如上九条代数法则的意义下. 带有通常的加法和乘法运算, 复数集是一个域, 实数集也是一个域.

对于本书的大部分内容而言, 我们使用的"数字"可以来源于任意的域. 为了允许这种一般性, 我们将使用术语"标量"而不是"数字". 如果读者总是认为标量域是一个复数域的子域, 他也不会损失太多. 域的一个子域是一个复数的集合F, 其在通常的加法和乘法下自身就是一个域. 这意味着01F之中, 并且如果xyF的元素, 那么(x+y), x, xyx1 (如果x0) 也是F的元素. [译注: 实际上这给出了子域的判则.] 这样的子域的一个例子是实数域, 因为如果我们把实数当作是虚部为0的复数, 复数域的01是实数, 并且如果xy是实数, 那么(x+y), x, xyx1 (如果x0) 也是实数. 我们讨论子域的要义如下, 若是我们处理来源于某个特定子域的标量, 那么施行加减乘除不会将我们带出给定的子域.

例子1. 正整数1,2,3,的集合不是一个的子域, 出于各种原因. 例如, 0不是正整数, 没有正整数n的加法逆元n是正整数. 除了1之外, 没有正整数n的乘法逆元1/n是正整数.
例子2. 整数,2,1,0,1,2,的集合不是的子域, 因为除了01, 没有整数的乘法逆元是一个整数. 整数集在通常的加法和乘法下除了条件8其余都满足.
例子3. 有理数集是复数域的子域. 整数集里并不可能的除法, 在有理数集里是可能的. 有兴趣的读者应该验证一下每个复数域的子域都必须包含所有的有理数.
例子4. 所有具有x+y2形式的数字构成的集合, 其中xy是有理数, 是一个的子域. 我们将其留给读者进行验证.

在本书的例子和练习中, 读者应该将其中的域当成是复数域的某个子域, 除非另有说明这个域更加一般. 我们不想对于该点多加讨论. 然而, 我们应该指出我们为什么采用这样的约定. 如果F是一个域, 有限多个单位元1加起来有可能得到0 (见第1.2节练习5): 1+1++1 =0 复数域并不会发生这样的事情 (或者在任何复数域的子域). 如果在域F中的确发生了这样的事情, 那么使得有限个1加起来等于0所用的1的最少数目被称为域F的特征. 若是没有这样的事情, (出于某种奇怪的原因) 我们就称域F的特征为零. 经常的情况是, 我们假定F的子域是希望保证F的特征为零. 不过, 在初次接触线性代数的时候, 通常最好还是别太担心关于域的特征的事情.

第1.2节 线性方程组

F是一个域. 我们考虑找出满足下列条件的n个标量 (即F的元素) x1,,xn的问题. { A 1,1 x1 + A 1,2 x2 + + A 1,n xn = y1 A 2,1 x1 + A 2,2 x2 + + A 2,n xn = y2 A m,1 x1 + A m,2 x2 + + A m,n xn = ym 其中y1,,ymAi,j,1im,1jn是给定的F的元素. 我们称其为具m个方程n个未知元的线性方程组. 任何满足每个方程的由F的元素构成的n元组(x1,,xn)都被称为方程组的一个解. 如果y1==ym=0, 我们称该方程组是齐次的, 或者说每个方程是齐次的.

或许寻找线性方程组的解的最根本的技术就是消元法. 我们可以对于以下齐次方程组刻画这种方法. { 2 x1 x2 + x3 = 0 x1 + 3 x2 + 4 x3 = 0 如果我们加(2)倍的第二个方程到第一个方程上去, 就得到了 7 x2 7 x3 = 0 x2=x3. 如果加3倍的第一个方程到第二个方程上去, 就得到了 7 x1 + 7 x3 = 0 x1=x3. 因此, 我们总结道, 如果(x1,x2,x3)是一个解, 那么x1=x2=x3. 反过来, 我们可以验证每个这样的三元组都是一个解, 于是解集就由所有的三元组(a,a,a)构成.

我们通过"消去未知元"找到了方程组的解, 也就是通过给方程乘上标量再加起来的方式产生有些xj不存在的方程. 我们希望形式化这个过程一点, 以理解为什么这种方法有效, 并按照秩序井然的方式来施行解方程组所必要的计算.

对于这样的一般性方程组, 假定我们挑选m个标量c1,,cm, 将第j个方程乘上cj并将它们加起来, 我们就得到了方程 ( c1 A 1,1 + + cm A m,1 ) x1 + + ( c1 A 1,n + + cm A m,n ) xn = c1 y1 + + cm ym 这样的方程被我们称为该线性方程组的线性组合. 显然, 每个方程组的解也是这个新的方程的解. 这就是消元过程的根本想法. 如果我们有了另外一个线性方程组 { B 1,1 x1 + B 1,2 x2 + + B 1,n xn = z1 B 2,1 x1 + B 2,2 x2 + + B 2,n xn = z2 B k,1 x1 + B k,2 x2 + + B k,n xn = zk 其每个方程都是原本的线性方程组的方程的线性组合, 那么每个原本的线性方程组的解也是这个新的线性方程组的解. 当然, 新的方程组的解不一定是原本方程组的解. 但要是原本方程组的每个方程都是新的线性方程组的方程的线性组合的话, 这种事情就不会发生. 我们称两个线性方程组是等价的, 如果它们的每个方程都能表示为另一个线性方程组的方程的线性组合.

定理1. 等价的线性方程组拥有相同的解.

欲使消元过程在线性方程组求解中发挥效用, 人们就必须找出产生更容易求解的等价线性方程组的手段. 接下来的一节, 我们将讨论其中一种方法.

练习1. 验证例子4的集合是的子域.
练习2. F是复数域. 下面两个线性方程组等价吗? 如果是, 就互相表示成线性组合. { x1 x2 = 0 2 x1 + x2 = 0 { 3 x1 + x2 = 0 x1 + x2 = 0
练习3. 像练习2一样测试以下的线性方程组. { x1 + x2 + 4 x3 = 0 x1 + 3 x2 + 8 x3 = 0 12 x1 + x2 + 52 x3 = 0 { x1 x3 = 0 x2 + 3 x3 = 0
练习4. 像练习2一样测试以下的线性方程组. { 2 x1 + ( 1 +i ) x2 + x4 = 0 3 x2 2i x3 + 5 x4 = 0 { ( 1+ i2 ) x1 + 8 x2 i x3 x4 = 0 23 x1 12 x2 + x3 + 7 x4 = 0
练习5. F是恰包含两个元素01的集合. 由以下表格定义加法和乘法: + 0 1 0 0 1 1 1 0 0 1 0 0 0 1 0 1 验证集合F带有这两种运算是一个域.
练习6. 证明若两个具二未知元的线性方程组具有相同的解, 那么它们等价.
练习7. 证明每个的子域都包含所有的有理数.
练习8. 证明每个特征为零的域都包含一个有理数域的复制.

第1.3节 矩阵和初等行变换

读者不可能没注意到, 在构造线性方程的线性组合时, 未知元x1,,xn是没有必要写下来的, 因为你实际上只是根据系数Ai,j和常元yi进行计算. 现在我们将线性方程组简写成 AX =Y 其中 A= [ A 1,1 A 1,n A m,1 A m,n ] , X= [ x1 xn ] , Y= [ y1 ym ] 我们将A称为系数矩阵. 严格说来, 上面显示的矩形阵列不是矩阵, 而是矩阵的表示. 一个域F上的m×n矩阵是一个从序对(i,j),1im,1jn的集合到域F的函数. [译注: 或许读者会对于这句话感到迷惑, 这是因为中文将matrix翻译成矩阵.] 矩阵A的元素即标量A(i,j)=Ai,j, 并且往往描述矩阵的最简单方式是将其元素写成如上mn列的矩形阵列的形式. 因此, 上面的X是 (或者说定义了) 一个n×1的矩阵, 而Y是一个m×1的矩阵. 暂时, AX=Y只是一种简记法. 之后, 我们将定义矩阵乘法, 那么它的意思就是YAX之积.

我们现在希望考虑与构造线性方程的线性组合有关的矩阵A的行上的操作. 我们将我们的注意力限制在域F上的m×n矩阵A的三种初等行变换上:

  1. 给矩阵A的一行乘上一个非零的标量c;
  2. A的第r行替换以第r行加上c乘上第s行, 其中c是任意的标量, 并且rs;
  3. 交换A的第r行和第s行.
因此, 一个初等行变换是一个特别的函数e联系每个m×n矩阵A以一个m×n的矩阵e(A). 我们可以精确地将三种e刻画如下:
  1. e(A)i,j=Ai,j如果ir, e(A)r,j=cAr,j.
  2. e(A)i,j=Ai,j如果ir, e(A)r,j=Ar,j+cAs,j.
  3. e(A)i,j=Ai,j如果i异于rs, e(A)r,j=As,j, e(A)s,j=Ar,j.
在定义e(A)时, A的列数并不重要, 但A的行数是关键的. 例如, 我们不得不担心能否交换一个5×5矩阵的第5行和第6行. 为了避免这种复杂性, 我们约定一个初等行变换e定义在由所有域Fm×n矩阵构成的类之上, 其中m是固定的而n是任意的. 换句话说, 一个特定的e定义在由所有域F上的m行矩阵构成的类之上.

之所以我们将我们自己限制于这三种简单的行变换上, 是因为既已施行这样的eA之上后, 我们能够通过在e(A)上施行一个类似的操作来恢复A.

定理2. 对于每个初等行变换e, 存在一个与之对应的具有相同类型的初等行变换e1满足e1(e(A))=e(e1(A))=A. 换言之, 初等行变换的逆变换存在, 并与之具有相同的类型. [译注: 显然不仅存在, 也是唯一的.]
证明.
  1. e是给第r行乘上非零标量c的变换, 令e1为给第r行乘上c1的变换.
  2. e是将第r行替换以第r行加上c乘上第s行的变换, 其中rs, 令e1为将第r行替换以第r行加上(c)乘上第s行的变换.
  3. e是交换第r行和第s行的变换, 令e1=e.
每种情形之下, 显然有e1(e(A))=e(e1(A))=A对于每个A成立.
定义. 如果AB是域F上的m×n矩阵, 我们称B行等价于A, 如果B可由A通过 (有限的) 一系列初等行变换得到. [译注: 原则上包含0步, 尽管包不包含均不影响结果, 因为本身初等行变换就包含恒等变换.]

使用定理2, 容易验证以下事实. 每个矩阵都行等价于自身. 如果B行等价于A, 那么A行等价于B. 如果B行等价于AC行等价于B, 那么C行等价于A. 换句话说, 行等价是等价关系 (见附录).

定理3. 如果AB是域F上行等价的m×n矩阵, 那么齐次线性方程组AX=0BX=0拥有相同的解.
证明. 设经过一系列变换我们从A得到了B: A= A0 A1 Ak =B . 只需要证明线性方程组AjX=0Aj+1X=0拥有相同的解就够了, 即一次初等行变换不改变解集.
因此, 设B是由A通过一次初等行变换得到的, 不论它是三种变换的哪一种, 线性方程组BX=0的每个方程都是线性方程组AX=0的方程的线性组合. 鉴于初等行变换的逆也是初等行变换, 每个线性方程组AX=0的方程也是线性方程组BX=0的方程的线性组合. 于是, 两个线性方程组是等价的. 根据定理1, 它们拥有相同的解.
例子5. F是有理数域, 并且 A= [ 2 1 3 2 1 4 0 1 2 6 1 5 ] . 我们将施行一系列初等行变换于A, 并在箭头上标示出变换的类型. [ 2 1 3 2 1 4 0 1 2 6 1 5 ] 2 [ 0 9 3 4 1 4 0 1 2 6 1 5 ] 2 [ 0 9 3 4 1 4 0 1 0 2 1 7 ] 1 [ 0 9 3 4 1 4 0 1 0 1 12 72 ] 2 [ 0 9 3 4 1 0 2 13 0 1 12 72 ] 2 [ 0 0 152 552 1 0 2 13 0 1 12 72 ] 1 [ 0 0 1 113 1 0 2 13 0 1 12 72 ] 2 [ 0 0 1 113 1 0 0 173 0 1 12 72 ] 2 [ 0 0 1 113 1 0 0 173 0 1 0 53 ] 上面的一系列初等行变换告诉我们 { 2 x1 x2 + 3 x3 + 2 x4 = 0 x1 + 4 x2 x4 = 0 2 x1 + 6 x2 x3 + 5 x4 = 0 { x3 113 x4 = 0 x1 + 173 x4 = 0 x2 53 x4 = 0 拥有相同的解. 对于第二个线性方程组, 显然如果我们赋任意的有理数值cx4就得到了一个解(173c,53c,113c,c), 并且每个解都具有这样的形式.
例子6. F是复数域并且 A= [ 1 i i 3 1 2 ] 施行行变换的时候通常把几个类型2的变换组合起来是方便的. 把这点记在心中, [ 1 i i 3 1 2 ] 2 [ 0 2+i 0 3+ 2i 1 2 ] 1 [ 0 1 0 3+ 2i 1 2 ] 2 [ 0 1 0 0 1 0 ] 因此线性方程组 { x1 + i x2 = 0 i x1 + 3 x2 = 0 x1 + 2 x2 = 0 只有平凡解x1=x2=0.

例子5和例子6里我们显然不是在随意施行行变换. 我们对于行变换的选择是由想要像消去未知元解线性方程组一样化简系数矩阵的欲望驱使的. 现在让我们给出一个形式化的定义, 对于我们想要抵达什么类型的矩阵.

定义. 一个m×n矩阵R被称为行简化的, 如果
  1. 每个R的非零行的第一个非零元素是1;
  2. 每个包含首非零元的列, 其余的元素均为0.
例子7. 一个行简化矩阵的例子是n×n的恒等矩阵I. 这是由 I i,j = δ i,j = { 1 ,如果 i=j 0 ,如果 ij 定义的矩阵. 目前是我们第一次使用Kronecker delta, 之后也将经常用到.

例子5和例子6最终呈现的矩阵都是行简化矩阵. 以下是两个不是行简化矩阵的例子: [ 1 0 0 0 0 1 1 0 0 0 1 0 ] [ 0 2 1 1 0 3 0 0 0 ] 第二个矩阵没有满足条件a, 因为第一行的首非零元不是1. 第一个矩阵满足了条件a, 但是第三列没有满足条件b.

现在我们将证明我们可以从任意的矩阵出发, 通过有限数目的初等行变换, 得到一个行简化矩阵. 结合定理3, 这给我们提供了一个解决线性方程组的有效工具.

定理4. 每个域F上的m×n矩阵都行等价于一个行简化矩阵.
证明.A是一个域F上的m×n矩阵. 如果A的第一行的每个元素都是0, 那么只考虑第一行条件a就是成立的. 如果第一行有非零的元素, 令k是满足A1,j0的正整数j中最小的. 给第一行乘上A1,k1, 那么第一行就满足条件a了. 现在对于每个i2, 将第一行乘上(Ai,k)加到第i行. 现在第一行的首非零元出现在第k列, 其值为1, 并且第k列的每个其他元素都是0.
现在考虑上面得到的矩阵. 如果第二行的每个元素都是0, 我们就什么也不做. 如果第二行有异于零的元素, 就给第二行乘上一个标量使其首非零元为1. 在第一行首非零元位于第k列的情况下, 第二行的首非零元不可能出现在第k列, 设其出现在第k列. 通过给第二行乘上合适的标量加到其他行上去, 就能使得第k列除了第二行之外都是0. 重要的是注意到以下这点, 在施行这些操作的时候, 我们不会改变第一行处于第1,,k列的元素, 也不会改变第k列的元素. 当然, 如果第一行全是零, 那么这些操作就不会影响第一行.
以如上方式逐行操作, 显然在有限步内我们能够抵达一个行简化矩阵.
练习1. 找出下列线性方程组的所有解. { ( 1i ) x1 i x2 = 0 2 x1 + ( 1i ) x2 = 0
练习2. 如果 A= [ 3 1 2 2 1 1 1 3 0 ] 通过行简化A以找出AX=0的所有解.
练习3. 如果 A= [ 6 4 0 4 2 0 1 0 3 ] 找出AX=2XAX=3X的解. (符号cX表示一个矩阵, 其每个元素都是c乘上相对应的X的元素.)
练习4. 找出一个与下列矩阵行等价的行简化矩阵. A= [ i ( 1+i ) 0 1 2 1 1 2i 1 ]
练习5. 证明下列两个矩阵不是行等价的. [ 2 0 0 a 1 0 b c 3 ] [ 1 1 2 2 0 1 1 3 5 ]
练习6. A= [ a b c d ] 是一个复数域上的2×2矩阵. 设A是行简化的, 并且a+b+c+d=0. 证明恰存在三个这样的矩阵.
练习7. 证明交换矩阵两行的操作可由其他两种操作达成.
练习8. 考虑线性方程组AX=0, 其中 A= [ a b c d ] 是一个域F上的2×2矩阵. [译注: 意即线性方程组就是域F上的.] 证明以下陈述.
  1. 如果A的每个元素都是0, 那么每个序对(x1,x2)都是AX=0的解.
  2. 如果adbc0, 那么线性方程组AX=0仅有平凡解x1=x2=0.
  3. 如果adbc=0并且某个A的元素异于0, 那么存在一个解(x10,x20)满足, (x1,x2)是一个解当且仅当存在标量y满足x1=yx10,x2=yx20.

第1.4节 行简化阶梯矩阵

到目前为止, 我们对于线性方程组的处理是由找出方程组的解的尝试推动的. 在第1.3节, 我们建立了找出这些解的一种标准化技术. 现在我们希望获得一些稍微理论一点的信息, 出于这样的目的, 走得比行简化矩阵更远一点是方便的.

定义. 一个m×n的矩阵R被称为一个行简化阶梯矩阵, 如果
  1. R是行简化的;
  2. R的每个元素全为0的行在具有非零元素的行的下方;
  3. 如果第1,,r行是R的非零行, 并且如果第i行的首非零元出现在第ki列, i=1,,r, 那么k1<k2<<kr.

人们也可以按照以下方式刻画m×n的行简化阶梯矩阵R. 要么R的每个元素都是0, 要么存在一个正整数r,1rm, 以及r个正整数k1,,kr,1kin满足

  1. 对于i>r, Ri,j=0, 并且Ri,j=0如果j<ki.
  2. Ri,kj=δi,j,1ir,1jr.
  3. k1<<kr.

例子8. 两个行简化阶梯矩阵的例子分别是n×n的恒等矩阵和m×n的零矩阵0m,n, 其每个元素都是零. 当然读者构造出其他例子也没有困难, 不过这里我们给出一个非平凡的例子. [ 0 1 3 0 12 0 0 0 1 2 0 0 0 0 0 ]
定理5. 每个m×n的矩阵A都行等价于一个行简化阶梯矩阵.
证明. 我们知道A行等价于一个行简化矩阵, 所有我们需要做的只是观察到通过有限次的行交换我们可以将行简化矩阵变成行简化阶梯矩阵.

在例子5和例子6中我们看到了在求解齐次线性方程组时行简化矩阵的重要性. 现在让我们来简要讨论方程组RX=0, 其中R是一个行简化阶梯矩阵. 令第1,,r行是R的非零行, 并设第i行的首非零元出现在第ki列. 于是, 方程组RX=0包含r个非平凡方程. 并且, 未知元xki仅会出现在第i行. 如果我们用u1,,unr代表异于xk1,,xkr(nr)个未知元, 那么RX=0r个非平凡方程具有如下的形式. { x k1 + j=1 nr C 1,j uj = 0 x kr + j=1 nr C r,j uj = 0 线性方程组RX=0的所有解都可以由给u1,,unr赋任意的值然后计算相对应的xk1,,xkr的值获得. 例如, 如果R是例子8展示的那个矩阵, 那么r=2,k1=2,k2=4, 并且RX=0的两个非平凡方程是 { x2 3 x3 + 12 x5 = 0 x4 + 2 x5 = 0 或者写成 { x2 = 3 x3 12 x5 x4 = 2 x5 于是我们可以给x1, x3x5赋任意的值, 比如x1=a,x3=b,x5=c, 然后就得到了解(a,3b12c,b,2c,c).

让我们再观察到与线性方程组RX=0有关的另一个事实. 如果R的非零行数r小于n, 那么方程组RX=0具有一个非平凡的解, 即一个解(x1,,xn), 其中不是每个xj都是0. 这是因为, 既然r<n, 我们可以挑选一个xj, 其异于xk1,,xkr, 那么我们可以按照如上方式构造出一个解, 其中令xj=1. 这个观察将我们引导至和齐次线性方程组有关的最根本性的事实之一.

定理6. 如果A是一个m×n的矩阵并且m<n, 那么齐次线性方程组AX=0具有非平凡解.
证明.R是一个行等价于A的行简化阶梯矩阵, 那么根据定理3, 方程组AX=0RX=0具有相同的解. 令rR的非零行数, 那么肯定rm. 既然m<n, 就有r<n. 立刻从我们以上的观察中就得知AX=0具有非平凡解.
定理7. 如果A是一个n×n的矩阵, 那么A行等价于n×n的恒等矩阵当且仅当线性方程组AX=0仅有平凡解.
证明. 如果A行等价于I, 那么AX=0IX=0具有相同的解. 反过来, 设AX=0仅有平凡解X=0. 令R是一个与A行等价的n×n的行简化阶梯矩阵, 并令rR的非零行数. 既然RX=0没有非平凡的解, 那么rn. 又因为R只有n行, 所以当然rn, 于是r=n. 这意味着R的每一行都具有首非零元1, 而且因为它们分布于不同的n列里, R只可能是n×n的恒等矩阵.

现在让我们来探究如何使用初等行变换求解非齐次的线性方程组AX=Y. 首先, 读者应该注意到它与齐次情形的一个基本区别, 即尽管齐次线性方程组总有平凡的解x1==xn=0, 非齐次的情况压根不一定有解.

我们来构造线性方程组AX=Y的增广矩阵A. 这是一个m×(n+1)的矩阵, 其中前n列是A的列, 最后一列是Y. 更精确地, A i,j = A i,j 如果 jn , A i, n+1 = yi . 设我们施行了一系列初等行变换于A, 得到了一个行简化阶梯矩阵R. 如果我们施行相同的初等行变换于A, 就会得到一个矩阵R, 其前n列是R的列, 而最后一列包含特定的标量z1,,zm. 标量zim×1矩阵 Z= [ z1 zm ] 的元素, 它是由施行相同的初等行变换于Y得到的. 显然读者应该认识到, 正如定理3的证明一样, 线性方程组AX=YRX=Z是等价的, 因而拥有相同的解. 很容易确定RX=Z是否有解并在有解的情况下确定所有的解. 这是因为, 如果R具有r个非零行, 并且其第i行的首非零元出现在第ki列, 其中i=1,,r, 那么RX=Z的前r行有效地表达了xk1,,xkr, 基于(nr)个剩余的xj和标量z1,,zr. 最后的(mr)个方程是 0 = z r+1 0 = zm 据此, 方程组拥有解的条件是i>rzi=0. 如果这个条件被满足, 所有线性方程组的解就可以像齐次的情况一样被找到, 即给(nr)xj赋任意的值, 然后根据第i个方程计算xki的值.

例子9. F是有理数域, 并且 A= [ 1 2 1 2 1 1 0 5 1 ] 设我们希望求解线性方程组AX=Y, 对于某些y1, y2y3. 让我们将行规约A的一系列初等行变换施行于A之上: [ 1 2 1 y1 2 1 1 y2 0 5 1 y3 ] 2 [ 1 2 1 y1 0 5 1 ( y2 2 y1 ) 0 5 1 y3 ] 2 [ 1 2 1 y1 0 5 1 ( y2 2 y1 ) 0 0 0 ( y3 y2 + 2 y1 ) ] 1 [ 1 2 1 y1 0 1 15 15 ( y2 2 y1 ) 0 0 0 ( y3 y2 + 2 y1 ) ] 2 [ 1 0 35 15 ( y1 + 2 y2 ) 0 1 15 15 ( y2 2 y1 ) 0 0 0 ( y3 y2 + 2 y1 ) ] 那么线性方程组AX=Y有解的条件就是 2 y1 y2 + y3 =0 并且如果给定的标量yi满足这个条件, 所有的解都可以由以下方式获得, 赋一个值cx3, 然后计算 x1 = 35 c + 15 ( y1 + 2 y2 ) x2 = 15 c + 15 ( y2 2 y1 )

让我们再做关于线性方程组AX=Y的最后一个观察. 设矩阵A的元素和标量y1,,ym恰好落入域F的一个子域F1中. 如果线性方程组AX=Y拥有在域F中的解, 那么它也拥有在域F1中的解, 因为不论对于哪一个域而言, 线性方程组有解的条件都是域F1y1,,ym之间的特定关系成立 (也就是上面的关系zi=0对于i>r成立). 举个例子, 如果AX=Y是一个线性方程组, 其标量ykAi,j都是实数, 若其有复数的解, 那么它也有实数的解.

练习1. 通过行规约系数矩阵来找出下列线性方程组的所有解. { 13 x1 + 2 x2 6 x3 = 0 4 x1 + 5 x3 = 0 3 x1 + 6 x2 13 x3 = 0 73 x1 + 2 x2 83 x3 = 0
练习2. 找出与下列矩阵行等价的一个行简化阶梯矩阵. A= [ 1 i 2 2 i 1+i ] AX=0的解是什么?
练习3. 显式描述所有2×2的行简化阶梯矩阵.
练习4. 考虑以下线性方程组. { x1 x2 + 2 x3 = 1 2 x1 + 2 x3 = 1 x1 3 x2 + 4 x3 = 2 这个方程组有解吗? 如果有的话, 显式描述所有的解.
练习5. 给出一个无解的具有两个方程和两个未知元的线性方程组的例子.
练习6. 证明线性方程组 { x1 2 x2 + x3 + 2 x4 = 1 x1 + x2 x3 + x4 = 2 x1 + 7 x2 5 x3 x4 = 3 没有解.
练习7. 找出下列线性方程组的所有解. { 2 x1 3 x2 7 x3 + 5 x4 + 2 x5 = 2 x1 2 x2 4 x3 + 3 x4 + x5 = 2 2 x1 4 x3 + 2 x4 + x5 = 3 x1 5 x2 7 x3 + 6 x4 + 2 x5 = 7
练习8. A= [ 3 1 2 2 1 1 1 3 0 ] 对于什么样的三元组(y1,y2,y3)线性方程组AX=Y有解?
练习9. A= [ 3 6 2 1 2 4 1 3 0 0 1 1 1 2 1 0 ] 对于什么样的四元组(y1,y2,y3,y4)线性方程组AX=Y有解?
练习10. RR2×3的行简化阶梯矩阵并且线性方程组RX=0RX=0具有相同的解, 证明R=R.

第1.5节 矩阵乘法

显然构造矩阵的行的线性组合的过程是一种根本性的运算. 出于这样的理由, 引入指示何种操作将被施行的系统记号是很有好处的. 更细致地说, 设B是域F上的n×p矩阵, 其行分别为β1,,βn. 从B我们构造出C, 其行分别为γ1,,γm γi = A i,1 β1 + A i,2 β2 + + A i,n βn . C的行是由mn个标量Ai,j决定的, 而它们本身是一个m×n矩阵A的元素. 将γi展开来看, ( C i,1 ,, C i,p ) = r=1 n ( A i,r B r,1 ,, A i,r B r,p ) 我们发现C的元素由 C i,j = r=1 n A i,r B r,j 给出.

定义. A是一个域F上的m×n矩阵, 令B是一个域F上的n×p矩阵. 积AB是一个m×p矩阵C, 其第ij列的元素为 C i,j = r=1 n A i,r B r,j .
例子10. 这里给出一些有理数域上的矩阵之积.
  1. [ 5 1 2 0 7 2 ] = [ 1 0 3 1 ] [ 5 1 2 15 4 8 ] 其中 γ1 = ( 5, 1 ,2 ) = 1 ( 5, 1 ,2 ) + 0 ( 15,4,8 ) γ2 = ( 0,7,2 ) = 3 ( 5, 1 ,2 ) + 1 ( 15,4,8 )
  2. [ 0 6 1 9 12 8 12 62 3 3 8 2 ] = [ 1 0 2 3 5 4 0 1 ] [ 0 6 1 3 8 2 ] 其中 γ2 = ( 9,12, 8 ) = 2 ( 0,6,1 ) + 3 ( 3,8, 2 ) γ3 = ( 12,62, 3 ) = 5 ( 0,6,1 ) + 4 ( 3,8, 2 )
  3. [ 8 29 ] = [ 2 1 5 4 ] [ 1 6 ]
  4. [ 2 4 6 12 ] = [ 1 3 ] [ 2 4 ] 其中 γ2 = ( 6,12 ) = 3 ( 2,4 )
  5. [ 2 4 ] [ 1 3 ] = [ 10 ]
  6. [ 0 1 0 0 0 0 0 0 0 ] [ 1 5 2 2 3 4 9 1 3 ] = [ 2 3 4 0 0 0 0 0 0 ]
  7. [ 1 5 2 2 3 4 9 1 3 ] [ 0 1 0 0 0 0 0 0 0 ] = [ 0 1 0 0 2 0 0 9 0 ]

注意到两个矩阵之积不必有定义是重要的. 积有定义当且仅当第一个矩阵的列数与第二个矩阵的行数相合. 因此, 交换以上a, b, c中因子的顺序是没有意义的. 往往我们写下如AB一样的积时并不显式提及因子的尺寸, 在这种情况下, 应该理解为积是有定义的. 从d, e, f, g中我们发现, 即便ABBA都有定义, 也不一定有AB=BA. 换句话说, 矩阵乘法不是交换的.

例子11.
  1. 如果Im×m的恒等矩阵, 而A是一个m×n的矩阵, 那么IA=A.
  2. 如果In×n的恒等矩阵, 而A是一个m×n的矩阵, 那么AI=A.
  3. 如果0k,mk×m的零矩阵, 那么0k,n=0k,mA. 类似地, A0n,p=0m,p.
例子12. A是域F上的一个m×n矩阵. 我们之前对于线性方程组的简记法AX=Y和我们对于矩阵乘法的定义是一致的, 因为如果 X= [ x1 x2 xn ] 其中xiF中, 那么AXm×1矩阵 Y= [ y1 y2 ym ] 满足yi=Ai,1x1+Ai,2x2++Ai,nxn.

列矩阵的使用提示了一种往往有用的记号. 如果B是一个n×p的矩阵, 那么B的列是n×1矩阵B1,,Bp, 由 Bj = [ B 1,j B n,j ] , 1jp 定义. 矩阵B是由这些列相继构成的: B= [ B1 ,, Bp ] 积矩阵AB的第ij列元素是由A的第i行和B的第j列构造出来的. 读者应该验证AB的第j列就是ABj: AB = [ A B1 ,, A Bp ]

尽管矩阵之积依赖于因子的顺序, 但是它独立于结合的方式, 这正是下一个定理表明的.

定理8. 如果A, B, C是域F上的矩阵, 满足乘积BCA(BC)有定义, 那么乘积AB(AB)C也有定义, 并且 A ( BC ) = ( AB ) C
证明.B是一个n×p矩阵. 既然BC是有定义的, 那么C就是一个有p行的矩阵, 而BCn行. 因为A(BC)是有定义的, 我们可以假定A是一个m×n矩阵. 因此, 积AB存在, 是一个m×p矩阵, 从中又可以知道(AB)C存在. 为了证明A(BC)=(AB)C其实也就是要证明 [ A ( BC ) ] i,j = [ ( AB ) C ] i,j 对于每个ij成立. 根据定义, [ A ( BC ) ] i,j = r A i,r ( BC ) r,j = r A i,r s B r,s C s,j = r s A i,r B r,s C s,j = s r A i,r B r,s C s,j = s ( r A i,r B r,s ) C s,j = s ( AB ) i,s C s,j = [ ( AB ) C ] i,j

A是一个n×n矩阵时, 积AA是有定义的. 我们用A2表示这个矩阵. 根据定理8, (AA)A=A(AA)或者说A2A=AA2, 于是积AAA是良定的. 我们用A3表示这个积. 一般地, 积AAA (k次) 是良定的, 我们将其记作Ak.

注意到A(BC)=(AB)C可以推出C的行的线性组合的线性组合也是C的行的线性组合.

如果B是一个给定的矩阵而C是由B通过一次初等行变换得到的, 那么C的每一行都是B的行的线性组合, 因此存在一个矩阵A满足AB=C. 一般而言, 这样的A不止一个, 而从诸多这样的矩阵中挑选出一个具有许多特别性质的矩阵是可能的也是方便的. 在讨论这个之前我们需要先引入一类矩阵.

定义. 一个m×m矩阵被称为是一个初等矩阵, 如果它是可由m×m的恒等矩阵通过一次初等行变换得到.
例子13. 一个2×2的初等矩阵只可能是以下几种之一: [ 0 1 1 0 ] , [ 1 c 0 1 ] , [ 1 0 c 1 ] [ c 0 0 1 ] , c0 , [ 1 0 0 c ] , c0
定理9. e是一个初等行变换, 令m×m矩阵E=e(I). 那么, 对于每一个m×n矩阵A, e (A) = EA
证明. 证明的要点在于积矩阵EAij列的元素是由E的第i行和A的第j列得到的. 三种初等行变换应该分开看待. 我们将给出对于类型2的变换的详细证明. 其他两种情况更加简单, 留给读者作为练习. 设rse是将第r行替换为第r行加上c乘上第s行的变换, 那么 E i,k = { δ i,k , ir δ r,k + c δ s,k , i=r 因此, ( EA ) i,j = k=1 m E i,k A k,j = { A i,j , ir A r,j + c A s,j , i=r 换句话说, EA=e(A).
推论. AB是域F上的m×n矩阵, 那么B行等价于A当且仅当B=PA, 其中P是一系列m×m的初等矩阵之积.
证明.B=PA, 其中P=EsE2E1Eim×m的初等矩阵, 那么E1A行等价于A, 并且E2(E1A)行等价于E1A, 于是E2E1A行等价于A. 如法炮制我们可以看到(EsE1)A行等价于A.
现在设B行等价于A. 令E1,E2,,Es为与将A变为B的一系列初等行变换相对应的初等矩阵, 那么B=(EsE1)A.
练习1. A= [ 2 1 1 1 2 1 ] , B= [ 3 1 1 ] , C= [ 1 1 ] 计算ABCCAB.
练习2. A= [ 1 1 1 2 0 1 3 0 1 ] , B= [ 2 2 1 3 4 4 ] 验证A(AB)=A2B.
练习3. 找出两个不同的2×2矩阵A满足A2=0但是A0.
练习4. 对于练习2的矩阵A, 找出初等矩阵E1,E2,,Ek满足 Ek E2 E1 A =I
练习5. A= [ 1 1 2 2 1 0 ] , B= [ 3 1 4 4 ] 存在矩阵C满足CA=B吗?
练习6. A是一个m×n矩阵而B是一个n×k矩阵. 证明C=AB的列是A的列的线性组合, 并且如果α1,,αnA的列, 而γ1,,γkC的列, 那么 γj = r=1 n B r,j αr
练习7. AB2×2的矩阵满足AB=I, 证明BA=I.
练习8. C= [ C 1,1 C 1,2 C 2,1 C 2,2 ] 是一个2×2的矩阵. 我们想问什么情况下有可能找到两个2×2的矩阵AB满足C=ABBA. 证明这样的矩阵可以被找到当且仅当C1,1+C2,2=0.

第1.6节 可逆矩阵

m×m矩阵P是初等矩阵之积. 对于每个m×n矩阵A, 矩阵B=PA行等价于A, 因此A行等价于B, 存在一个初等矩阵之积Q满足A=QB. 特别地, 当Am×m的恒等矩阵时亦成立. 换言之, 存在一个m×m矩阵Q, 其自身是初等矩阵之积, 满足QP=I. 正如我们将看到的, 存在Q满足QP=I等价于P是初等矩阵之积.

定义. A是域F上的一个n×n矩阵. 一个n×n矩阵B若是满足BA=I, 则被称为A的一个左逆. 一个n×n矩阵B若是满足AB=I, 则被称为A的一个右逆. 如果AB=BA=I, 则B被称为A的双端逆, 而A被称为可逆的.
引理. 如果A有一个左逆B和一个右逆C, 那么B=C.
证明.BA=IAC=I, 那么 B= BI = B ( AC ) = ( BA ) C = IC =C

因此, 如果A有一个左逆和一个右逆, A就是可逆的, 并且拥有一个唯一的双端逆, 我们将其表示为A1并简单地称其为A的逆.

定理10. AB是域F上的n×n矩阵.
  1. 如果A可逆, 那么A1也可逆, 并且(A1)1=A.
  2. 如果AB都可逆, 那么AB也可逆, 并且(AB)1=B1A1.
证明. 第一条陈述从定义的对称性来看是显然的. 第二条陈述由验证以下关系自然得到. ( AB ) ( B 1 A 1 ) = ( B 1 A 1 ) ( AB ) =I
推论. 一系列可逆矩阵之积是可逆的.
定理11. 初等矩阵是可逆的. [译注: 并且逆也是初等矩阵.]
证明.E是与初等行变换e相对应的初等矩阵. 如果e1e的逆变换 (见定理2) 而E1=e1(I), 那么有 E E1 = e ( E1 ) = e ( e1 (I) ) =I E1 E = e1 (E) = e1 ( e (I) ) =I 于是E是可逆的且E1=E1.
例子14.
  1. [ 0 1 1 0 ] 1 = [ 0 1 1 0 ]
  2. [ 1 c 0 1 ] 1 = [ 1 c 0 1 ]
  3. [ 1 0 c 1 ] 1 = [ 1 0 c 1 ]
  4. c0, [ c 0 0 1 ] 1 = [ c 1 0 0 1 ] [ 1 0 0 c ] 1 = [ 1 0 0 c 1 ]
定理12. 如果A是一个n×n的矩阵, 那么以下命题等价.
  1. A可逆.
  2. A行等价于n×n的恒等矩阵.
  3. A是一系列初等矩阵之积.
证明.R是行等价于A的一个行简化阶梯矩阵. 根据定理9 (或其推论), R= Ek E2 E1 A 其中E1,,Ek是初等矩阵. 每个Ej都是可逆的, 于是 A= E1 1 Ek 1 R 既然可逆矩阵之积是可逆的, 我们看到A可逆当且仅当R可逆. 因为R是一个 (方的) 行简化阶梯矩阵, R可逆当且仅当R的每一行都包含非零元, 即当且仅当R=I. 现在我们已经证明了A可逆当且仅当R=I, 并且如果R=I, 那么A=E11Ek1. 现在i, ii, iii是关于A的等价陈述应该是显然的了.
推论. 如果A是一个n×n的可逆矩阵, 并且一系列初等行变换将A规约为I, 那么相同的初等行变换应用于I就得到A1.
推论. ABm×n的矩阵, 那么B行等价于A当且仅当B=PA, 其中P是一个m×m的可逆矩阵.
定理13. 对于n×n矩阵A, 以下命题等价.
  1. A可逆.
  2. 齐次线性方程组AX=0仅有平凡解.
  3. 线性方程组AX=Y对于每个n×1Y都有一个解X.
证明. 根据定理7, 条件ii等价于A行等价于恒等矩阵. 根据定理12, i和ii因此是等价的. 如果A可逆, AX=Y的解是X=A1Y. 反过来, 设AX=Y对于每个给定的Y都有一个解. 令R是行等价于A的一个行简化阶梯矩阵. 我们想要证明R=I. 这只需要证明R的最后一行不都是零即可. 令 E= [ 0 0 0 1 ] RX=E有解, 那么R的最后一行就不可能都是零. 我们知道R=PA, 其中P可逆, 因而RX=EAX=P1E拥有相同的解. 根据条件iii, 后一个线性方程组有解, 故A可逆.
推论. 一个有左逆或右逆的方阵是可逆的.
证明.A是一个n×n矩阵. 设A有一个左逆, 即一个矩阵B满足BA=I, 那么AX=0仅有平凡解, 因为X=IX=B(AX), 故A可逆. 另一方面, 设A有一个右逆, 即一个矩阵C满足AC=I, 那么C有一个左逆, 故是可逆的, 于是就有A=C1, 那么A可逆, 其逆为C.
推论. A=A1A2Ak, 其中A1,,Akn×n的方阵, 那么A可逆当且仅当每个Aj可逆.
证明. 我们已经证明了两个可逆矩阵之积是可逆的, 从中读者可以简单地看出来若是每个Aj可逆, 则A可逆. [译注: 实际上之前有一个推论陈述了这个事实.]
现在设A可逆. 我们先来证明Ak是可逆的. 设X是一个n×1的矩阵并且AkX=0, 那么AX=(A1Ak1)AkX=0. 既然A是可逆的, 那么X就必须是0. 因此, AkX=0没有非平凡的解, 于是Ak可逆. 现在, A1Ak1=AAk1也是可逆的了. 施行前述论证, 可知Ak1是可逆的. 续行此法, 可得每个Aj都是可逆的.

我们想要作出关于求解线性方程组的最后一个注记. 设A是一个m×n的矩阵, 并且我们想要求解线性方程组AX=Y. 如果R是行等价于A的一个行简化阶梯矩阵, 那么R=PA, 其中P是一个m×m的可逆矩阵. 方程组AX=Y的解恰好就和RX=PY(=Z)相同. 在实践中, 找到矩阵P并不比行规约AR困难. 这是因为, 设我们构造了方程组AX=Y的增广矩阵A, 其最后一行是任意的标量y1,,ym, 然后我们施行将A变为R的初等行变换于A, 那么矩阵P是什么就很清楚了. (读者应该参考例子9, 那里我们基本上执行了这套过程.) [译注: 这段话并不十分清楚, 但实际上它的意思就是将y1,,ym当作符号带入计算.] 特别地, 如果A是一个方阵, 那么这个过程将会表明A是否可逆, 以及若可逆, 逆P是什么. 既然我们已经给出这样的计算的一个例子的核心了, 那么现在我们举一个2×2的例子就心满意足了.

例子15. F是有理数域, 而 A= [ 2 1 1 3 ] 那么 [ 2 1 y1 1 3 y2 ] 3 [ 1 3 y2 2 1 y1 ] 2 [ 1 3 y2 0 7 y1 2 y2 ] 1 [ 1 3 y2 0 1 17 ( 2 y2 y1 ) ] 2 [ 1 0 17 ( y2 + 3 y1 ) 0 1 17 ( 2 y2 y1 ) ] 从中可以清楚地看出来A可逆, 并且 A 1 = [ 37 17 17 27 ]

或许看上去一直把任意的标量y1,y2,写下来太过繁琐. 有的人觉得同时操作两列矩阵不那么尴尬一点, 一列描述了从A到恒等矩阵的规约过程, 另一列记录了相同的操作对于恒等矩阵的影响. 读者或许应该自行决定哪一种对于他而言是更加利落的簿记格式.

例子16. 让我们找出 A= [ 1 12 13 12 13 14 13 14 15 ] 的逆. [ 1 12 13 12 13 14 13 14 15 ] [ 1 0 0 0 1 0 0 0 1 ] [ 1 12 13 0 112 112 0 112 445 ] [ 1 0 0 12 1 0 13 0 1 ] [ 1 12 13 0 112 112 0 0 1180 ] [ 1 0 0 12 1 0 16 1 1 ] [ 1 12 13 0 1 1 0 0 1 ] [ 1 0 0 6 12 0 30 180 180 ] [ 1 12 0 0 1 0 0 0 1 ] [ 9 60 60 36 192 180 30 180 180 ] [ 1 0 0 0 1 0 0 0 1 ] [ 9 36 30 36 192 180 30 180 180 ]

读者肯定想过我们详细地讨论了矩阵的行但很少涉及列. 我们专注于行是因为从线性方程的角度来看这似乎更加自然. 既然行没有什么神圣的地方, 后几节的讨论当然本可用列来展开而不是行. 如果有人仿照初等行变换和行等价定义了初等列变换和列等价, 那么显然每个m×n的矩阵都列等价于一个"列简化阶梯"矩阵. 另外, 每个初等列变换将拥有AAE的形式, 其中E是一个n×n的初等矩阵. 诸如此类, 留给读者自行思考.

练习1. A= [ 1 2 1 0 1 0 3 5 1 2 1 1 ] 找出一个行等价于A的行简化阶梯矩阵R以及一个可逆的3×3矩阵P满足R=PA.
练习2. 做练习1, 但是 A= [ 2 0 i 1 3 i i 1 1 ]
练习3. 对于以下两个矩阵的每一个 [ 2 5 1 4 1 2 6 4 1 ] , [ 1 1 2 3 2 4 0 1 2 ] 使用初等行变换来判断其是否可逆, 并且在可逆的情况下找出其逆.
练习4. A= [ 5 0 0 1 5 0 0 1 5 ] 对于什么样的X存在标量c满足AX=cX?
练习5. 判断 A= [ 1 2 3 4 0 2 3 4 0 0 3 4 0 0 0 4 ] 是否可逆, 并且在A1存在的情况下找到它.
练习6. A是一个2×1矩阵而B是一个1×2矩阵, 证明C=AB不可逆.
练习7. A是一个n×n的方阵. 证明以下两个陈述:
  1. 如果A可逆而对于某个n×n的矩阵BAB=0, 那么B=0.
  2. 如果A不可逆, 那么存在一个n×n的矩阵B满足AB=0但是B0.
练习8. A= [ a b c d ] 使用初等行变换证明, A可逆当且仅当(adbc)0.
练习9. 一个n×n矩阵A被称为是上三角的, 如果i>jAi,j=0, 即主对角线以下的元素均为零. 证明一个上三角矩阵可逆当且仅当其每个主对角线上的元素均不为零.
练习10. 证明以下练习6的一般化版本. 若A是一个m×n矩阵而B是一个n×m矩阵, 并且n<m, 那么AB不可逆.
练习11. A是一个m×n矩阵. 证明通过一系列初等行变换和初等列变换可以从A得到一个矩阵R, 其既是行简化阶梯矩阵, 也是列简化阶梯矩阵. 也就是说, 如果ij, 那么Ri,j=0; 如果1ir, 那么Ri,i=1; 如果i>r, 那么Ri,i=0. 证明R=PAQ, 其中P是一个m×m的可逆矩阵, 而Q是一个n×n的可逆矩阵.
练习12. 例子16的结果暗示或许矩阵 A= [ 1 12 1n 12 13 1 n+1 1n 1 n+1 1 2n 1 ] 可逆并且A1的元素都是整数. 你能证明吗?