【高等代数】01 - 行列式和矩阵的秩


【本系列目录】

    01 - 行列式和矩阵的秩

    02 - 矩阵的逆和相似矩阵

    03 - 二次型和矩阵的分解

    04 - 多项式环

    05 - 线性变换

    06 - 线性函数

    博客总目录


   高等代数究竟应该包含哪些内容?从名字上看它应当包含代数学中的所有高等内容。但一般来讲,这里的“高等”只是相对中学的“初等”而言的,它包含线性代数、多项式等内容。抽象代数这样的“高级”分支比它更抽象,需要独立分支去讨论。前面我们已经学习过线性代数,请先回顾一下该课程。首先要清楚,线性代数的三大内容:线性空间、线性变换、线性函数(向量的度量)。线性空间的概念之前已经阐述得比较完备了,这里只强调一点:我们说的向量是一种代数结构,而非特指坐标向量,虽然通过映射可以将它们等价起来。

  之前的线性代数课程更偏重概念的阐述和结构的搭建,而忽略了一些具体的例子和方法。这里我想先花一些篇幅,整理一下教材中经常出现的好的问题,以及一些有趣的结论。这些问题将以不同的课题进行组织,其中会穿插不同的知识点。它们不光在现实场景中有着广泛的应用,对这些典型问题的思考,也非常有助于理解基本概念。为了保持概念的连续性,这里还是会重复提出已经熟知的概念,既是回顾也是扩展。

1. 行列式

  线性空间的一个基本问题就是解线性方程组,这其中需要用到一个叫行列式的东西。不要忘记,行列式本质上是一个n重反对称线性函数(设定单位矩阵的值为1),这个定义比古怪的直接定义公式要清晰得多。

  行列式是相对独立的内容,计算时有很多技巧,这里再搜集一些常见的题型。除了定义之外,之前我们还介绍了几种常用方法,比如基本变换法、拉普拉斯定理(按行展开)、加边法、待定系数法、递推方程法、矩阵分解法等。这里再具体看一些例子和方法,来丰富之前行列式的内容。还有更多特殊行列式的计算方法,会在相关的主题中继续讨论。

1.1 一般方法

  首先计算时不能完全忘记最原始的定义,就是所有代表元素的乘积之和。例如对于元素全为±1的行列式(阶数n>1),由于它的每个乘项都是±1,而项数为偶数,故总和|A|必定是偶数。进一步地,通过初等变换可以得到式(1),其中bij只取0,±2cij只取0,±1,从而可以得到:|A|一定是2n1的倍数。

(1)|A|=|±1a12a1n0b22b2n0bn2bnn|=±2n1|c22c2ncn2cnn|

  初等变换一直是行列式计算最重要的方法,而矩阵的分块变换对复杂表达式的行列式更是提供了便捷的途径。最简单就数式(2)左的变换,它用最直观的方法证明了|AB|=|A||B|。还有当A可逆时(B,C不一定是方阵),容易得到式(3)。当A,B,C,D都是方阵、且AC=CA时,则式(3)的行列式才等于|ADCB|。但注意到最终表达式中并没有A1,我们需要讨论A不可逆的情况。

  用A+tI,D+tI代替A,D,设得到的行列式为f(t),它显然是一个2n次多项式。在t足够小的去心领域里,A+tI必定是可逆的,故有f(t)=|(A+tI)(D+tI)CB|,由连续性可知f(0)=|ADCB|。也就是说对任意方阵A,都有式(4)成立,同样如果有AB=BA,也可以得到行列式的值为|DACB|。多项式的连续性在这里发挥了关键作用,它对一些异常情况的处理十分有效,马上我们还会碰到。

(2)[A0InB][0ABIn0]|AB|=|A||B|

(3)|ABCD|=|A||DCA1B|

(4)AC=CA|ABCD|=|ADCB|

  还有,通过式(5)的两种变换,可以得到重要的结论(6)。所以对于具有形式|InAB|、且m很小的行列式,把它转化为|ImBA|会简单得多,你可以尝试一下计算式(7)的行列式。

(5)[InA0ImBA][InABIm][InAB0BIm]

(6)|ImBA|=|InAB|

(7)|02a13a1na1a2a23a2na2a32a32a3na3an2an3an(n1)an|

1.2 其它方法

  递推法是计算行列式的常用方法,比如式(8)左的三对角型Dn。我们不难得到它的递推式Dn=aDn1bcDn2,且有初始值D1=a,D2=a2bc。利用递推式的母函数法,并令x,yx+y=a,xy=bc的两个根,很容易地就求得了式(8)右的结果。

(8)Dn=|abcbca|=xn+1yn+1xy

  矩阵分解法的代表是如式(9)左的循环矩阵Cn,为了在循环中找到不变性,可以用另一个循环来进行固定。具体做法可以是考察列向量[1,ω,,ωn1],其中ωωn=1的任意根,它与Cni行的内积是ωi1j=1nωj1aj,其中的公共项j=1nωj1aj可以提取出来。现在取ω为单位根,并记W为式(9)右,这样就能得到等式(10),从而有|Cn|=i=0n1j=1nωi(j1)aj。这个方法有明显拼凑的迹象,后面我们会用更加深刻的结论再次计算一遍。

(9)Cn=[a1a2anana1an1a2a3a1];W=[11111ωωn111ωn1ω(n1)2]

(10)CnW=i=0n1j=1n(ωi(j1)aj)W

  我还看到过行列式的一个有趣应用,就是利用行列式的初等变换来进行因式分解。比如很容易知道式(11)左可以写成式中的行列式,简单的初等变换就能得到因子x+y+z。当然这种方法的弊端就是要先找到合适的行列式,在有些场合下也许是比较容易的。

(11)x3+y3+z33xyz=|xyzzxyyzx|=(x+y+z)|1yz1xy1zx|

2. 矩阵的秩

2.1 一般方法

  解线性方程组衍生出的另一个问题就是矩阵和它的秩,但这里矩阵的作用也仅仅是一种记法,可以讨论的也只有行向量和列向量。这里最重要的结论当然就是:矩阵的行秩和列秩相同,它们统称为矩阵的秩。现在设矩阵A的秩为r,则可以找到它的极大无关行向量组{α1,,αr}和极大无关列向量组{β1,,βr},现在来考虑由它们的交点组成的子矩阵B。首先由于{α1,,αr}组成的子矩阵C的秩为r,故C的列向量的秩也是r。另外由于{β1,,βr}可以线性表示其它列,故B的列向量可以线性表示C的其它列,这就是说B的列向量是C的列向量的极大线性无关组,从而B的秩也是r。这个结论还是比较有用的,比如因为奇数阶反对称矩阵的行列式为0(各行提取1),可知反对称矩阵的秩只能为偶数(反对称矩阵的标准型可直接得到该结论)。

  线性相关性是秩的根本意义,这个简单的认知却是很多结论的关键,由此得到的式(12)(13)以后会经常用到。另外假设Am×n秩为r,则可以选出列向量的极大无关组{α1,,αr},组成矩阵B。这时A的每一列可以线性表示为c1jα1++crjαr,则矩阵C={cij}满足A=BC。由式(13)可知C的秩也为r。总结就是任何秩为r的矩阵Am×n都能分解为两个满秩矩阵Bm×r,Cr×n的乘积。

(12)rank(A+B)rank(A)+rank(B)

(13)rank(AB)min{rank(A),rank(B)}

   求证:rank(IAB)rank(IA)+rank(IB)

  和行列式一样,初等变换是判断矩阵秩的基本方法,其中分块初等变换同样能带来惊喜的结论。比如由(2)的变换,容易得到式(14)的Sylvester秩不等式。类似地由变换[B00ABC][BABBC0],也容易证明式(15)的Frobenius秩不等式

(14)rank(AB)rank(A)+rank(B)n

(15)rank(ABC)rank(AB)+rank(BC)rank(B)

2.2 其它方法

  我们知道,矩阵的乘法其实就是多组线性表示,也许乘法的秩和线性方程组能建立起联系。首先把AB的列向量看成是A的列向量的线性表示ibijαi,如果rank(AB)=rank(A),则AB,A的列向量组是等价的(考虑生成线性空间),从而矩阵方程ABX=A有解(式(16))。再来把AB的行向量看成是B的行向量的线性表示jaijβj,如果rank(AB)=rank(B),则AB,B的行向量组是等价的,从而线性方程ABX=0,BX=0同解(式(17))。

(16)rank(AB)=rank(A)X(ABX=A)

(17)rank(AB)=rank(B)X(ABX=0BX=0)

  等价的方程组形式并不是什么特殊的结论,但对于描述论证更加方便。比如如果AB,B的秩相同,则ABX=0,BX=0同解,则显然ABCX=0,BCX=0也同解,故ABC,BC的秩也相同。用相关性也能证得同样的结论,但描述略显繁琐。式(18)的结论是非常有用的,比如考察矩阵列A,A2,A3,,它们的秩是不升的,故必然存在rank(Ak+1)=rank(Ak)。根据式(18)便知,存在k,使得mk时恒有rank(Am)=rank(Ak)(这个与线性变换中的结论一致)。

(18)rank(AB)=rank(B)rank(ABC)=rank(BC)

  利用线性方程讨论矩阵的秩,还有一个非常特殊的例子。先看实系数方程AAX=0AX=0,后者的解空间显然包含前者,但由0=XAAX=|AX|2也能得到AX=0。故它们是同解的,从而有式(19)成立。同样在复数域,也容易有式(20)成立,它们都是非常重要的结论。

(19)ARnrank(AA)=rank(AA)=rank(A)

(20)ACnrank(A¯A)=rank(AA¯)=rank(A)

  最后来考察对角占优矩阵A|aii|>jiaij),可以用反证法证明它是满秩的(|A|0)。否则列向量是线性相关的,即有k1α1++knαn=0,其中ki不全为0。设|ki|是最大的系数,则容易在第i行导出矛盾。更特别地,如果aii>jiaij,还可以证明|A|>0。这时考察如下矩阵B(t),由于|B(t)|是一个多项式,它必然是连续函数。而已知|B(0)|>0,且在t[0,1]上恒有|B(t)|0,从而必然有|A|=|B(1)|>0。多项式的连续性在这里再次发挥威力。

(21)B(t)=[a11a12ta1nta21ta22a2ntan1tan2tann]


【前序学科】 线性代数,微积分,抽象代数

【参考资料】

[1] 《高等代数(上、下)》,丘维声,2010

  这部上下分册的高等代数可谓国内最经典的教材之一,上册基本涵盖了线性代数的内容,下册则引入了更多抽象和理论的东西。通篇题材广泛,例题和习题都十分丰富和具有启发性。


 

posted on   卞爱华  阅读(3213)  评论(1编辑  收藏  举报

导航

点击右上角即可分享
微信分享提示