【线性代数】 04 - 矩阵

1. 矩阵和秩

1.1 矩阵的定义

  前面我们在不定义的情况下,一直在使用着矩阵,那些场合中矩阵仅仅是一些数的纵横排列,它只有符号的意义,而没有代数的性质。在继续讨论之前,先严格定义一下n×m阶矩阵(matrix):它由nm个环元素排成nm列(式(1)),并用方括号括起来,一般用大写字母表示,n×n阶矩阵又称n阶方阵。矩阵元素的取值空间可以为一般环,也可以是域,这里默认是在域中讨论,环矩阵以后专门介绍。

(1)An×m=[a11a12a1ma21a22a2man1an2anm]

  矩阵既可以看成是一个纵横排列的结构,也可以把它当成是由nm个孤立的元素组成。这时矩阵就是一个nm维的向量,按如下方法定义加法和数乘运算,显然所有n×m阶矩阵组成一个nm维的线性空间,一般记作Mn×m(R),方阵也可记作Mn(R)

(2)[a11a1man1anm]+[b11b1mbn1bnm]=[a11+b11a1m+b1man1+bn1anm+bnm]

(3)k[a11a1man1anm]=[ka11ka1mkan1kanm]

  方阵中aii称为主对角元,仅主对角元非零的矩阵称为对角矩阵,记作diag{d1,d2,,dn},其中diag{1,1,,1}也叫单位矩阵,记作In。主对角线下(上)方全为0的矩阵称为上(下)三角矩阵,单位矩阵经过一次初等变换后称为初等矩阵(式子(4))。元素全为1的矩阵一般记作J,容易有等式J2=nJ,这个式子变形中非常有用。

(4)P(i(k))=[k],P(i,j)=[0110],P(j,i(k))=[1k1]

  矩阵中一个常用操作就是将aijaji交换,得到的新矩阵叫A转置,一般记做ATA。显然有等式(3)成立,这个等式一定程度说明了矩阵中行和列的对等性。A=A的矩阵称为对称矩阵A=A的矩阵称为反对称矩阵,显然反对称矩阵的对角元皆为0

(3)|A|=|A|

   求n阶对角矩阵、三角矩阵、对称矩阵、反对称矩阵的维度;

   求证:奇数阶反对称矩阵的行列式为0

1.2 矩阵的秩

  解线性方程组时,系数矩阵可以看成是n个列向量,这个向量组有它的相关性和秩。这使得我们好奇:矩阵行向量的相关性和秩是怎样的?它与列向量有什么关系?

  不管是在线性方程组还是行列式中,我们看到用初等变换将矩阵阶梯化可以简化问题。容易证明,初等变换并不改变向量组所生成的线性空间,故它们的秩是不变的。所以矩阵的行(列)向量在阶梯化后秩保持不变,而显然阶梯矩阵的秩就是非零行(列)的个数,这就是求秩的一般方法。在按行阶梯化矩阵后,可以很轻松地继续按列阶梯化(公式(4)),最终每行每列最多只有一个非零元素。这样的话,矩阵行向量和列向量的秩都等于非零元素的个数,它们是相等的。我们把这个共同的秩也称为矩阵的,同样记作rankA,秩是矩阵的一个基本属性。

(4)[ai1j100000ai2j2000000airjr0]

  在秩为r的向量组中,我们可以选出r个无关向量作为它的代表,那么在秩为r的矩阵中是否有r×r的“子矩阵”呢?为此先定义矩阵任意m行、n列的交点元素组成的矩阵为其子矩阵,这是除行、列外考察矩阵的另一个视角。由于线性相关向量组的子向量组或截断向量组也线性相关,故子矩阵的秩必定不大于r。另一方面,可以先选出r行无关的行向量,它们组成的矩阵的秩还是r,所以一定有r列是线性无关的,这就找到了原矩阵秩为rr×r子矩阵。特别地,满足r=min(n,m)的矩阵称为满秩矩阵,对应分别有行满秩列满秩的概念。

  我们现在有三个视角看待一个矩阵:行或列的向量空间、矩阵的秩、方阵的行列式,这里稍作总结。首先矩阵的秩也是向量空间的维数,所以线性方程组有解的充要条件是:系数矩阵的秩等于增广矩阵的秩,有唯一解时还要求系数矩阵是列满秩的。特别地,齐次方程有非零解的充要条件是:系数矩阵不是列满秩的,且解空间W满足公式(5)。对于方阵而言,它满秩的充要条件是:矩阵的行列式非零。

(5)dimW+rankA=n

2. 矩阵的乘法

2.1 定义和基本性质

  线性空间的浅层结构我们已经基本了解了,按照抽象代数的经验,现在需要借助同态映射研究其深层结构。但在此之前,我们需要需要一点准备工作,而把同态映射放到下一篇中介绍。其实前面的线性方程组就是同态映射的一个具体例子,现在就以此为切入点介绍矩阵的乘法。

  回顾上一篇的线性方程组(11),如果把未知数也看作是一个向量x¯=[x1xm],系数矩阵An×m可以看成是将x¯映射成了β。映射是可以复合的,但要继续映射β,矩阵的列数必须是n,设为Bl×n。设Bβ又映射成γ=[z1zl],可以算得zi=cijxj,其中cij=bikakj。复合映射的结果任然可以看成是一个矩阵Cx¯上的映射,为此我们定义这种映射的复合为矩阵的乘法,记作C=BA,其中C的元素满足下式。

(8)C=BA,cij=bi1a1j+bi2a2j++binanj=k=1nbikakj

  对矩阵As×t,Bt×m,Cm×n,可以证明有式子(9)成立,所以矩阵的乘法满足结合律。但不是所有矩阵之间都可以做乘法,所以全体矩阵并不构成半群。要使乘法处处成立,必须是阶相同的方阵组成的集合,但即使是方阵的乘法也不一定满足交换律。另外容易验证,乘法和加法的分配率成立(式子(10)),数乘运算满足公式(11),转置运算满足公式(12)。

(9)(AB)C=A(BC)=D,dij=k=1tl=1maikbklclj

(10)A(B+C)=AB+AC,(B+C)A=BA+CA

(11)k(AB)=(kA)B=A(kB)

(12)(AB)=BA

  如果集合中任意两个矩阵都可以做乘法,这个集合必定是由阶相同的方阵组成的。特别地,Mn(R)是一个幺半群,其中单位元就是单位矩阵In(公式(13))。Mn(R)中的元素可以按照式子(14)定义幂次Am,容易证明幂次的一般性质对它都成立。另外要注意,由于交换律不一定成立,故(AB)m=AmBm一般也不成立。

(13)ImAm×n=Am×n,Am×nIn=Am×n

(14)A0=In,Am=AAm1(m>0)

   求证:n阶对角矩阵、上(下)三角矩阵分别都是幺半群,并且乘积的对角元就是对角元的乘积。

2.2 乘法的向量意义

  如果把线性方程组的未知数写成m×1的矩阵X=[x1x2xm],显然方程组其实就是矩阵乘法AX=β。另外又因为线性方程组的本质是线性表示αixi=β,这就将矩阵乘法和线性表示建立起了联系。这个结论一方面给予了矩阵乘法的另一个现实意义,另一方面可以把变换统一到矩阵乘法中去,下面分别加以阐述。

  如果把矩阵Al×n,Bn×m分别表示成列向量组[α1α2αn]和行向量组[β1β2βn],则AB可以看成是αiβj的一组线性表示(公式(15)(16)),其中[γ1γ2γm]AB的列向量组表示,而[δ1δ2δl]AB的行向量组表示。

(15)AB=[α1α2αn]B=[γ1γ2γm],γj=k=1nαkbkj

(16)AB=A[β1β2βn]=[δ1δ2δl],δi=k=1nβkaik

  这种视角在一些论证中非常有用,比如因为γkα1,α2,,αn的线性表示,故AB的列秩不大于的A的列秩,同样可证AB的行秩不大于的B的行秩。结合前面行列秩相等的结论,可有以下AB秩的估算式。

(17)rankABmin(rankA,rankB)

   A为实数域上的矩阵,求证:方程组AAX=0AX=0的解空间相同,从而rankAA=rankA

   若Al×nBn×m=0,求证:rankA+rankBn

   设A的秩为r,求证:存在列数为r的列满矩阵B和行数为r的行满矩阵C,使得A=BC

  其实不光线性方程组可以表示成矩阵的乘积,矩阵上的其它操作也可以转化为乘积,比如数乘运算kA其实就是对角矩阵diag{k,k,,k}A的乘积。另外容易证明,初等矩阵P(i(k))左(右)乘A就是将A的第i行(列)乘以kP(i,j)左(右)乘A就是将A的第i,j行(列)交换。P(j,i(k))左乘A就是将A的第i行的k倍加到第j行上,P(j,i(k))右乘A就是将A的第j列的k倍加到第i行上。

2.3 矩阵的逆

  Mn(R)是幺半群,并不是所有矩阵都有逆元,这里就来讨论一下矩阵存在逆元的条件,以及逆元的计算。首先如果式(18)成立,B就称为A逆矩阵(inverse matrix),也记作A1。在抽象代数中我们已经知道,逆元是唯一的,且逆元的逆元还是逆元,故A1唯一且(A1)1=A,还有公式(19)成立。

(18)AB=BA=IB=A1

(19)(AB)1=B1A1

  由公式(17)知A必须是满秩的,反之对任意满足|A|0的矩阵,是否都有逆呢?逆矩阵是可以构造出来的,回顾行列式中的代数余子式的概念,以及行列式按一行(列)展开的结论,我们构造如下矩阵A(注意行列的下标),它被称为A伴随矩阵(companion matrix)。

(20)A=[A11A21An1A12A22An2A1nA2nAnn]

  现在来计算AA,它的第i行、j列的元素为k=1naikAjk,它正是将|A|的第j行替换成第i行后的值。显然i=j时值为|A|ij时值为0,故AA=|A|I,这样就构造了A的如下逆矩阵。同时还说明了,矩阵有逆的充要条件是:|A|0

(21)A1=1|A|A

  对于线性方程组AX=β,它有唯一解的充要条件是|A|0,且这个解就是X=A1β。再根据公式(21),可以得到解的如下公式,其中yi是将|A|的第i列换成β后的值。这个式子用系数和常数项表达了方程组的解,该结论就是线性方程组的克莱姆法则(Cramer)。

(22)X=1|A|Aβ=1|A|[y1y2yn]

  用公式(21)求逆计算量较大,现在用另一个方法来计算它。首先直接由逆的定义容易证明,初等矩阵都是可逆矩阵,而且它们的逆还是初等矩阵(公式(23))。试想对可逆矩阵A进行初等变换,最终一定可以变换成I,将这些初等变换表示成矩阵P1,,Ps,则有PsP2P1A=I,所以A可以表示成初等矩阵的乘积(公式(24))。由于初等变换不改变矩阵的秩,所以与A相乘也不改变矩阵的秩(25),这是对公式(17)的一个补充。

(23)P(i,j)1=P(i,j),P(i(k))1=P(i(1k)),P(j,i(k))1=P(j,i(k))

(24)PsP2P1A=IA=P11P21Ps1

(25)rankAB=rankB,(|A|0)

  公式(24)的左式说明PsP2P1正好就是A1,所以我们可以对矩阵[AI]的行做初等变换,直至将A变成I,这时原来的I自然已经变成了A1。这样求矩阵逆的方法也叫初等变换法。根据行列式的初等变换可知,初等矩阵对行列式的影响如公式(26),结合公式(24)知可逆矩阵的行列式仅由其初等矩阵决定,从而有可逆矩阵乘积的行列式等同于行列式的乘积(公式(27))。A,B若有非满秩矩阵,公式(27)显然也成立(两边为0),故公式(27)对任意方阵恒成立,它就是比奈-柯西定理(Binet-Cauchy)。

(26)|P(i,j)A|=|A|,|P(i(k))A|=k|A|,|P(j,i(k))A|=|A|

(27)|AB|=|A||B|

  对于很多特殊形式的矩阵,有时候直接用逆的定义反而更容易,这当然还需要一些技巧。比如对于常用的矩阵J+λI,由于J2=nJ,可以猜想它的逆有形式xJ+yI,解方程(J+λI)(xJ+yI)=I便可得到结果。

   已知Ak=0,求(IA)1

   若InAB可逆,求证:ImBA也可逆。(提示:构造)

2.4 矩阵的分块

  把矩阵的n行、m列连续地分割成n1,,ns行、m1,,mt列,形成一个s×t分块矩阵,之前将矩阵作为行列向量看待其实就是一种分块方法。分块矩阵其实是扩展了矩阵的元素,但矩阵的很多性质在分块矩阵上同样成立,由此它还成为了矩阵研究的一个有力工具(将矩阵嵌入到分块矩阵中)。

  这里先罗列一些分块矩阵的常规性质,首先比较容易得到分块矩阵的转置、乘法的形式结果,也容易定义分块对角矩阵分块上(下)三角矩阵,这里就不赘述了。同样可以对分块矩阵进行初等变换,行变换对应的初等矩阵如公式(28)所示(交换较复杂),初等变换都是满秩的(|Pni|0),它们不改变分块矩阵的秩。

(28)P(i(K))=[Kni],P(j,i(K))=[IniKnj×niInj]

  分块矩阵的初等变换能方便地找到矩阵间的关系,当要讨论矩阵性质时,可以先把它们嵌入到分块矩阵中,通过初等变换得到一些表达式。比如刚才的习题中,要研究InABImBA,可以先把对应矩阵放到公式(29)左边的分块矩阵的行列式中,分别作P(2,1(A))P(1,2(B))两种行变换,由行列式不变得到右边的结论。

(29)|ImBAIn|=|ImB0InAB|=|ImBA0AIn||InAB|=|ImBA|

  再比如考察Al×nBn×m,将它嵌入到公式(30)左边的分块矩阵,依次使用行变换P(2,1(A))、列变换P(1,2(B)),P(2(1)),得到右边的分块矩阵。这样就有n+rankABrankA+rankB,故得到公式(31),这个结论叫Sylvester秩不等式,它和公式(17)一起组成了AB秩的估算式。

(30)[In00AB][In0AAB][InBA0][InBA0]

(31)rankABrankA+rankBn

   求证:A2=A的充要条件是:rankA+rank(IA)=n

   使用分块矩阵证明公式(27);

   A,D都是方阵,A可逆,求证:|ABCD|=|A|·|DCA1B|

  最后,我们使用分块矩阵讨论一下矩阵An×m的“逆矩阵”。我们知道,若方程组AX=β有解,解的表达式为X=Bm×nβ(注意B可能不唯一)。这个BA的“逆矩阵”的理想定义,记之为A,但我们需要用单纯的矩阵语言描述它。首先有AAβ=β,另外A,A固定时,这个式子成立的充要条件是:βA的列向量的线性组合。所以该等式等价于等式(32),我们也就把所有满足式子(32)的A称为A广义逆矩阵

(32)AAA=A

  剩下的问题是如何表达广义逆,首先容易知道,秩为r矩阵A在经过一系列行和列的初等变换后,总能得到形式L=[Ir000],故存在可逆矩阵P,Q使得公式(33)左成立。带入公式(32)有PLQAPLQ=PLQ,即LQAPL=L,所以QAP=[IrXYZ],其中X,Y,Z任意,这样就得到了广义逆的表达式(33)右。

(33)A=P[Ir000]QA=Q1[IrXYZ]P1

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

编辑推荐:
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥

导航

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