在本节中,我们将研究一种特殊的线性变换:行列式 (Determinant).简单来说,行列式是一个变换det:Mn⟶R.
需要注意的是行列式不是线性变换, 而是一个关于矩阵列向量的交替多线性函数. 也就是说, 当固定其他列时,它对某一列是线性的;但把整个矩阵作为一个向量来看时,行列式通常不是线性的.
在这个变换(即行列式)中, 我们所研究的对象是n×n矩阵,意味着我们将不讨论三行四列矩阵的行列式是什么. 同时根据我们所定义的变换,行列式的取值T(M)为全体实数(在目前阶段我们只研究行列式为实数的情况,行列式为复数的我暂时不做涉及).
行列式为一个多线性映射 (Multi-linear). 我们不妨正式给出多线性映射的定义:
定义 2.12
若定义在矩阵A=(v1v2⋯vn)上的变换P满足
P((v1⋯λvi+μu⋯vn))=λP((v1⋯vi⋯vn))+μP((v1⋯u⋯、vn)),我们称P为一个多线性映射.
我们可以将其简单地理解为矩阵中的每一列都满足线性变换的性质,且不同列之间彼此互不干扰, 即对于每一个固定的i, 当其他列向量保持不变时,P 关于第i个列向量是线性的. 由此我们便可以得出多线性映射里面的一条定理:
定理 2.16
设P为定义在矩阵A上的多线性映射,若A中的某一列元素全部为0,那么P(A)=0.
证明
为了简化运算,且不失一般性,我们不妨设矩阵A=(0v2⋯vn), 即假设矩阵A的第一列全部为零.那么根据多线性映射还有零向量的性质,我们有
P((0v2⋯vn))=P((0+0v2⋯vn))=P((0v2⋯vn))+P((0v2⋯vn)).那么不难发现,我们有P((0v2⋯vn))=2P((0v2⋯vn)), 因此P(A)=0.
∎
定理 2.17
设P为定义在n×n矩阵A上的多线性映射. 则对于任意的常数λ, 有P(λA)=λnP(A).
证明
我们不妨设A=(v1v2⋯vn), 那么根据定义, λA=(λv1λv2⋯λvn), 根据多线性映射的定义,我们有
P((λv1λv2⋯λvn))=λP((v1λv2⋯λvn))=λ⋅λP((v1v2⋯λvn))⋮=λnP((v1v2⋯vn)).即P(λA)=λnP(A).
∎
在所有的多线性映射中,我们再定义一种特殊的多线性映射:交替多线性映射 (Alternating Multi-linear).
定义 2.13
若n×n矩阵A中含有任意两列完全相同的元素时, 多线性映射满足P(A)=0, 我们则称P为交替多线性映射.
根据这个定义,我们还能得出交替多线性映射的一条性质:
定理 2.18
设P为交替多线性映射, A为n×n矩阵. 记矩阵B为交换A中的任意两列后得到的矩阵, 则P(A)=−P(B).
证明
同样地,为了简化运算以及不失一般性,我们假设交换
A的第一,二列.即A=(v1v2⋯vn);B=(v2v1⋯vn). 根据定义, δ=P((v1+v2v1+v2v3⋯vn))=0. 再结合多线性映射的性质,我们有
δ=P[v1,v1,⋯,vn]+P[v1,v2,⋯,vn]+P[v2,v1,⋯,vn]+P[v2,v2,⋯,vn]=0.因此不难发现P(A)=−P(B).
∎
在所有的交替多线性映射中,我们将会重点研究其中一种——行列式 (Determinant),我们先一起看一下行列式的定义:
定义 2.14
假设我们存在一种交替多线性映射det:Mn⟶R, 使得det(In)=1, 我们则称该交替多线性映射det为行列式. 通常用det(A)来表示矩阵A的行列式.
可以证明, 对于n×n矩阵A而言, det(A)存在且唯一. 我们现在已经知道了行列式的定义,那么我们该如何去求解一个具体的矩阵的行列式呢?我们在此之前先引入一些有关排列组合的知识:假设我们现在有n个元素 : 1,2,3,⋯,n构成的集合Tn,我们定义一种作用于这n个元素上面的双射π,使得对任意的m∈Tn,π(m)∈Tn.由于π为双射,所以我们知道当m=n时, π(m)=π(n), 且对于任意的r∈Tn,都存在相应的t∈Tn, 使得π(t)=r.满足这种条件的映射π被我们称作是关于1−n的一个排列 (Permutation).
我们很多时候也用一个2×n矩阵π来表示一个排列,在矩阵的第i列里面, π1i=i;π2i=π(i).下面便是一个当n=5时的例子: (下面的矩阵代表了1→4,2→2,3→3,4→5,5→1的一个排列)
π=(1π(1)2π(2)3π(3)4π(4)5π(5))=(1422334551)
那么对于给定的n而言,我们把所有满足条件的不同排列π所构成的集合称作是关于n的一个排列群 (Permutation Group),通常用Sn表示.
定理 2.19
对于排列群Sn而言, ∣Sn∣=n!.
该定理的证明显而易见. 我们此时需要引入一个至关重要的概念,即排列的符号 (Sign):
定义 2.15
设排列π∈Sn, 令k代表在π中所有满足
{i<jπ(i)>π(j)的有序数对(i,j)的数量. 则排列π的符号为sgn(π)=(−1)k.
我们一起来算一下上文提到的排列π=(1422334551)的符号. 我们知道π(1)=4;π(2)=2;π(3)=3;π(4)=5;π(5)=1. 那么我们先固定i=1, 我们发现:1<2,π(1)>π(2);1<3,π(1)>π(3);1<5,π(1)>π(5). 因此对于元素i=1而言有三组满足条件的数对; 然后再看元素i=2, 我们发现:2<5;π(2)>π(5), 只有一组满足条件的数对; 对于元素i=3: 3<5;π(3)>π(5), 有一对满足条件的数对; 对于元素i=4: 4<5,π(4)>π(5), 有一对满足条件的数对.对于元素i=5而言, 不存在j使得5<j, 所以有0对满足条件的数对.那么综合起来一共有6组满足条件的数对,此时排列π的符号即为sgn(π)=(−1)6=1.
通过排列符号的定义,我们不难发现排列的符号sgn(π)的取值为1或−1.在n×n矩阵中,我们便可以把行列式看作是一种矩阵元素之间的排列.
定义 2.16
设A为n×n矩阵, 记(aij)为A中第i行,第j列位置的元素. 那么矩阵A的行列式为:
det(A)=π∈Sn∑(sgn(π)i=1∏n(aπ(i)i)).
例题 2.20
计算二阶矩阵(a11a21a12a22)的行列式.
解答 2.20
首先根据定义,我们要找出排列群S2里面的全部元素. 此时有且仅有两种排列,即
π1=(1122);π2=(1221).那么,在排列π1中,我们发现满足{i<jπ1(i)>πi(j)的有序数对个数为0, 因此sgn(π1)=(−1)0=1; 同理在π1中我们有且仅有一对满足条件的排列(1<2;π2(1)>π2(2)), 则sgn(π2)=(−1)1=−1. 随后由定理2.20, 我们得到
det(A)=π∈S2∑(sgn(π)i=1∏2(aπ(i)i))=sgn(π1)(aπ1(1)1)(aπ1(2)2)+sgn(π2)(aπ2(1)1)(aπ2(2)2).再根据排列的性质,我们知道π1(1)=1;π1(2)=2;π2(1)=2;π2(2)=1, sgn(π1)=1,sgn(π2)=−1. 我们将这些数值代入, 得到
det(A)=(+1)a11a22+(−1)a21a12=a11a22−a21a12.
因此对于二阶矩阵的行列式而言,我们可以简记为“左上乘右下,减右上乘左下”.那么二阶矩阵的行列式有有什么几何意义呢? 我们设想在平面直角坐标系xOy内有向量v1=(ab)与v2=(cd), 我们假设v1,v2不重合,然后我们考虑以v1,v2为两条邻边所构成的平行四边形.经过割补法等运算,不难求出这个平行四边形的面积为∣ad−bc∣, 也正是∣det(v1,v2)∣.因此二阶行列式的绝对值的几何意义也是在平面直角坐标系内由v1,v2为邻边所围成的平行四边形的面积.
例题 2.21
计算三阶矩阵a11a21a31a12a22a32a13a23a33的行列式.
解答 2.21
我们首先找出S3中的全部元素,它们分别是:
π1=(112233);π2=(112332);π3=(122133);π4=(122331);π5=(132132);π6=(132231).读者不妨尝试自行计算各个排列的符号. 我们最终得到
det(A)=a11a22a33−a11a23a23−a21a12a33+a21a32a13+a31a12a23−a31a22a13.
类似地 ,三阶行列式的绝对值的几何意义是空间直角坐标系中由三组列向量所围成的平行六面体的体积.
当n逐渐增大时,我们所分析的排列数目也会增多,计算也会变得愈发复杂,那么有没有一种可以相对快速地计算行列式的方法呢?当然有,并且答案就在定义2.16中: 我们只需要对其中的公式做一些变形转化,便可以得到一个相对简便的计算公式. 我们下面将进行详细地推理:对于n×n矩阵A而言,首先回顾我们所给出的定义:
det(A)=π∈Sn∑(sgn(π)i=1∏n(aπ(i)i)).
对于一个确定的j, 记Sn,i为Sn中所有满足π(j)=i的排列, 那么显而易见
Sn=Sn,1∪Sn,2∪⋯∪Sn,n,Sn,i∩Sn,j=0,(i=j).
由此我们得出
det(A)=π∈Sn,1∑(sgn(π)i=1∏n(aπ(i)i))+⋯+π∈Sn,n∑(sgn(π)i=1∏n(aπ(i)i)).
根据定义, 在Sn,i中π(j)=i, 因此
π∈Sn,i∑(sgn(π)i=1∏n(aπ(i)i))=π∈Sn,i∑sgn(π)aπ(1)1⋯aπ(j)j⋯aπ(n)n=aij⋅π∈Sn,i∑sgn(π)k=j∏aπ(k)k.
所以当我们取遍所有的i∈{1,2,⋯,n}时, 根据定义我们便有
det(A)=i=1∑naijπ∈Sn,i∑sgn(π)k=j∏aπ(k)k.
此时,我们将重点研究(∑π∈Sn,isgn(π)∏k=jaπ(k)k)一项.为了方便研究,我们定义两个特殊的排列f,g:
(1(122⋯⋯j−1)j−1)(j↓f(j+1j+1j+2⋯⋯n−1nn)j);
(1(122⋯⋯i−1)i−1)(i↓g(i+1i+1i+2⋯⋯n−1nn)i).
我们此时在矩阵A=a11⋮an1⋯⋯a1n⋮ann 中考虑一个小一号的(n−1)×(n−1)矩阵:
Q=ag(1)f(1)⋮⋮ag(n−1)f(1)ag(1)f(2)⋮⋮ag(n−1)f(2)⋯⋯ag(1)f(n−1)⋮⋮ag(n−1)f(n−1).
根据我们对f,g的定义可知,矩阵Q与i,j的取值有关,我们不妨来取一些特定的i,j从而更好地研究Q的性质.
我们首先设i=j=1, 那么根据f,g的定义,我们有
Q=ag(1)f(1)⋮⋮ag(n−1)f(1)ag(1)f(2)⋮⋮ag(n−1)f(2)⋯⋯ag(1)f(n−1)⋮⋮ag(n−1)f(n−1)=a22⋮⋮an2a23⋮⋮an3⋯⋯a2n⋮⋮ann.
我们再看一组取值:设i=n,j=1, 那么同样地,我们有
Q=ag(1)f(1)⋮⋮ag(n−1)f(1)ag(1)f(2)⋮⋮ag(n−1)f(2)⋯⋯ag(1)f(n−1)⋮⋮ag(n−1)f(n−1)=a12⋮⋮a(n−1)2a13⋮⋮a(n−1)3⋯⋯a1n⋮⋮a(n−1)n.
读者此时不妨多取几组i,j的值来寻找规律. 事实上,当我们取特定的1≤i,j≤n时,我们会发现所得到的(n−1)×(n−1)矩阵Q即为原矩阵A中除去第i行与第j列之后的矩阵. 我们把这样的矩阵Q称为辅助因子矩阵.
定义 2.17
在n×n矩阵A中,我们定义Aij为矩阵A去除第i行与第j列之后所得到的(n−1)×(n−1)矩阵.我们称Aij为A在第i行,第j列的辅助因子矩阵 (Cofactor Matrix), 我们同时定义A在第i行,第j列位置的辅助因子 (Cofactor)(也称“代数余子式”)为 Aij=(−1)(i+j)det(Aij).
让我们继续上文的推理:我们此时如果设1≤i,j≤n−1, 设矩阵A=(aij), 那么Aij=(ag(i)f(j)). 定义bij=ag(i)f(j), 结合我们在之前所得到的(∑π∈Sn,isgn(π)∏k=jaπ(k)k) ,则我们有
π∈Sn,i∑sgn(π)k=j∏aπ(k)k=π∈Sn,i∑sgn(π)k=j∏bg−1(π(k))f−1(k)=π∈Sn,i∑sgn(π)t=1∏n−1bg−1(π(f(t)))t.
我们此时定义一个新的排列π′=g−1πf (π(j)=i), 那么不难发现
π′(n)=g−1πf(n)=g−1π(j)=g−1(i)=n,
由此π′(n)=n恒成立, 所以我们实际上只对n−1个剩余元素进行排列. 此外由排列的性质, 我们有
sgn(π′)=sgn(g−1πf)=sgn(g−1)sgn(π)sgn(f),
即
sgn(π)=sgn(g)sgn(π′)sgn(f−1).
通过我们对于f,g的定义, 不难发现sgn(g)=j,sgn(f)=i. 同时由于ff−1=gg−1=e (e为单位元, 即e(i)=i), 所以sgn(f)=sgn(f−1), 由此我们得到sgn(π)=(−1)i+jsgn(π′). 因此综合我们之前所得,我们有
π∈Sn,i∑sgn(π)k=j∏aπ(k)k=(−1)i+jπ′∈Sn−1∑sgn(π′)t=1∏n−1bπ′(t)t.
通过上式我们不难发现∑π′∈Sn−1sgn(π′)∏t=1n−1bπ′(t)t 一项即代表(n−1)×(n−1)矩阵B=(bij)的行列式. 根据定义我们有
B=b11b21⋮b(n−1)1b12b22⋮b(n−1)2⋯⋯⋱⋯b1(n−1)b2(n−1)⋮b(n−1)(n−1):=bij=ag(i)f(j)ag(1)f(1)⋮⋮ag(n−1)f(1)ag(1)f(2)⋮⋮ag(n−1)f(2)⋯⋯ag(1)f(n−1)⋮⋮ag(n−1)f(n−1).
由此不难发现B即为我们之前定义的辅助因子矩阵Q. 那么对于我们算选定的j, 我们便有
π′∈Sn−1∑sgn(π′)t=1∏n−1bπ′(t)t=det(Aij),其中i满足π(j)=i.
于是,我们再结合之前的式子,把最开始的∑aij以及关于i的加和添加到其中来,我们便得到:
det(A)=i=1∑naijπ∈Sn,i∑sgn(π)k=j∏aπ(k)k=i=1∑n(−1)i+jaijdet(Aij).
我们由此提出以下的定理:它使得我们在计算矩阵的行列式的时候可以利用“降维打击”的方法,把一个高阶行列式化简成低阶行列式.
定理 2.20
设A为n×n矩阵, 则对任意的1≤i,j≤n,有⎩⎨⎧det(A)=ai1Ai1+ai2Ai2+⋯+ainAin=j=1∑n(−1)(i+j)aijdet(Aij)<i>(行列式的按行展开法则)</i>det(A)=a1jA1j+a2jA2j+⋯+anjAnj=i=1∑n(−1)(i+j)aijdet(Aij)<i>(行列式的按列展开法则)</i>
例题 2.22
计算1113−1222−1的行列式.
解答 2.22
我们不妨将该矩阵按第一行展开,那么我们有
det(A)=1det(A11)−3det(A12)+2det(A13)=det(−122−1)−3det(112−1)+2det(11−12).我们知道,对于二阶行列式而言,其结果便是“左上乘右下减去右上乘左下”,所以我们很快便能得到
det(A)=1×(−3)−3×(−3)+2×(3)=12.
定义 2.18
在一个n×n矩阵中,若(−1)i+j=1, 我们记该位置的符号为+, 若(−1)i+j=−1, 我们记该位置的符号为−, 那么该矩阵对应的符号矩阵为
+−⋮−++−−+⋯⋯.
我们可以简记为:位于i=j=1位置的符号永远为正,然后任何相邻位置的符号不同. 随后我们会讨论一些求解矩阵行列式的技巧与推论.首先根据定理2.21我们知道,不管我们按照哪一行或者哪一列来展开矩阵,所得的行列式的结果不变,因此在展开矩阵的时候我们要挑选尽量形式简单的行或列,比如有元素0的行或列,这样一来我们就可以减少计算量. 同时行列式也是一个交替多线性映射,那么矩阵的行列式也就满足所有交替多线性映射的性质.
推论 2.2
在n×n矩阵A中,记A的行列式为det(A), 则:
① 若A中含有任意一行或一列的元素全部为零,或者A中含有完全相同的两行或两列,则det(A)=0;
② 交换A中的任意两行或者两列,行列式的符号改变;
③ 对于任意的非零常数λ, 满足det(λA)=λndet(A);
④ 将一行或一列中的元素乘以同一非零常数,然后加到另一行或另一列的对应元素上,det(A)不变.
我们发现, 该定理中的第1,2,3条我们均以在交替多线性映射中证明, 我们在此仅证明第四条结论:
证明
设A=(v1v2⋯vn)为了简化运算同时不失一般性,我们便假设将第二列的元素乘以非零常数λ, 然后加到第一列上,即A′=(v1+λv2v2⋯vn), 根据交替多线性映射的性质我们有
det(A′)=det((v1v2⋯vn))+λdet((v2v2⋯vn)),即
det(A′)=det((v1v2⋯vn))+0=det(A).因此行列式的值不变.
∎
定理 2.21
在n×n矩阵A,B中,记A,B的行列式分别为det(A),det(B), 则:
① det(AB)=det(A)det(B);
② det(A)=0的充要条件是矩阵A中行向量,列向量彼此线性无关;
③ 当det(A)=0时,det(A−1)=det(A)1;
④ det(A)=0的充要条件是矩阵A可逆.
同样地,定理2.21还可以进行扩充,这里由于篇幅原因不再展开,读者不妨停下来仔细思考一下,尝试把行列式和向量之间的线性相关, 线性无关, 还有矩阵的秩, 是否可逆等性质联系在一起.
定义 2.19
在n×n矩阵A中, 定义一个新的矩阵A′: 其中(A′)ij=Aij, 即新矩阵中位置(i,j)的元素为A在位置(i,j)的辅助因子. 那么矩阵(A′)⊤被我们称作是A的伴随矩阵 (Adjugate Matrix), 通常用adj(A)表示. 我们有(adj(A))ij=Aji.
对于伴随矩阵而言,我们再引出一条非常重要的定理:
定理 2.22
对于n×n矩阵A而言,记adj(A)为A的伴随矩阵,则
A(adj(A))=(adj(A))A=(det(A))I特别地,如果A可逆,我们有:
A−1=det(A)1adj(A).
我们最后来看一下该定理在求解线性方程组中的应用: 假设我们需要求解线性方程组Ax=b, 我们设
x=x1x2⋮xn;b=b1b2⋮bn.
我们此时规定A可逆,则x=A−1b, 再由定理2.22, 我们得到
x1x2⋮xn=det(A)1(adj(A))b=det(A)1A11A12⋮A1nA21A22⋮A2n⋯⋯⋯An1An2⋮Annb1b2⋮bn.
由此我们不难得到:
x1x2xn=det(A)1[b1A11+b2A21+⋯+bnAn1]=det(A)1[b1A12+b2A22+⋯+bnAn2]⋮=det(A)1[b1A1n+b2A2n+⋯+bnAnn].
我们不难发现,根据之前所给出的定义, b1A1i+b2A2i+⋯+bnAni便可以是看作把矩阵A中的第i列替换成b之后所得到的新矩阵的行列式. 这样一来我们便发现了一种全新的求解线性方程组的方法,这便是Cramer 法则 (Cramer's Rule).
定理 2.23
设n×n矩阵A可逆,那么在线性方程组Ax=b中, 其解x1,x2,⋯,xn分别为
x1=det(A)det(A1);x2=det(A)det(A2);⋯;xn=det(A)det(An).其中Ak代表将矩阵A的第k列替换成b所得出的新矩阵.
{2.5 练习}
1. 计算下列矩阵的行列式.
A=147258369B=0b0ace0d0C=1bcbc1c1b.
2. 我们在n×n矩阵中,将对角线 : (A)11−(A)22−⋯−(A)nn称作是矩阵A的主对角线.
如果A中所有位于主对角线以下的元素均为0, 我们称A为上三角矩阵 (Upper Triangular Matrix); 类似地如果A中所有位于主对角线以上的元素均为0,
我们定义矩阵A为下三角矩阵 (Lower Triangular Matrix).
① 利用排列的知识,证明:当A为上三角矩阵或下三角矩阵时,其行列式等于主对角线上的元素的乘积;
② 设M可以写成分块矩阵M=(X0AY), 其中X,Y均为方阵.证明:det(M)=det(X)det(Y), 同样的结论对与形如(XB0Y)的矩阵同样适用;
③ 求P=−1201−1113111−10322的行列式det(P).
3. 下列说法中哪些是正确的?哪些是错误的?如果错误,试着举出一个反例或说明原因.
① det(A+B)=det(A)+det(B) ;
② det(A)=det(RREF(A));
③ det(A)=det(A⊤);
④ 若A⊤=−A, 则det(A)=−1;
⑤ det(A⊤A)>0;
⑥ det(I+A)=1+det(A);
⑦ 若A中有一行元素全部为零,则adj(A)中也有一行元素全部为零;
⑧ 若A可逆,则adj(A)可逆;
4. 证明 : 对任意的3×3矩阵A而言, A2+I=0.
5. 证明 : 对任意的n×n矩阵A,B而言, det(A+B⊤)=det(A⊤+B).
6. 若det(acbd)=−2, 求det2c+1d−2−2−1202a2b.
7. 设Q=1+x11122+x22333+x34444+x, 据此求det(Q).
8. 若detx00yyx000yx000yx=det1aa2a3aa2a31a2a31aa31aa2=0, 据此求x,y,a.
9. 若A−1=30302113−1, 求adj(A).
10. 设A为n×n矩阵(n≥2), 证明:
① 对于任意的非零常数λ, 有adj(λA)=λn−1adj(A) ;
② adj(A−1)=(adj(A))−1 ;
③ adj(A⊤)=(adj(A))⊤ ;
④ adj(adj(A))=(det(A))n−2A.