趙姣珍,許道云
(1.貴陽人文科技學院 大數據與信息工程學院,貴州 貴陽 550025;2.貴州大學 計算機科學與技術學院,貴州 貴陽 550025)
矩陣的行列式值是矩陣的一個不變量,它是代數中一個重要的基礎概念,對矩陣各種性質研究以及矩陣在其他領域中的應用,幾乎都與行列式相關。本文考慮的矩陣均指n階方陣,給定一個n階矩陣,可用列向量表示為
通常,矩陣的行列式定義以如下公式給出[1]:
(1)
其中,π是集合{1,2,…,n}上的一個置換。置換π可以被分解為對換的乘積,π的奇偶性由它被分解為最少對換個數的奇偶性決定,此與序列(π(1),π(2),…,π(n))的逆序數(記為τ(π))的奇偶性一致。式(1)中的求和則是取遍{1,2,…,n}上的所有置換。
從式(1)可以找到二階和三階行列式的計算規(guī)律,并用于計算。但對于四階以上的n階行列式,利用式(1)作為計算公式是不現實的。實際計算時,主要是基于行列式的性質不斷地降階,或化為特殊矩陣,或按性質進行計算。
一般,有關行列式的性質是由式(1)推導,部分性質推導較為復雜?;诠砘x的行列式,從公理形式出發(fā)進行推導,在邏輯思路、推導過程、簡潔性等方面都有其優(yōu)點。
文獻[2]中以矩陣的列向量(A1,A2,…,An)作為變量,引入行列式函數,以公理形式給出了行列式定義。
本文基于公理本身,討論了公理的等價性和獨立性,從公理化定義行列式出發(fā),直接導出行列式常見的基本性質和普通定義計算式(1),并給出相關重要性質的推導。
定義[2]設矩陣A=(A1,A2,…,An),考慮一個實數函數det(A1,A2,…,An),如果函數滿足如下公理條件,則稱det(A1,A2,…,An)為矩陣A的行列式。
公理1對于任意固定的(1≤k≤n),以Ak為變量,其余列不變的情況下誘導出的函數detk(Ak)具有齊次線性性質。即,對于任意常數a,b,detk(aAk+bBk)=adetk(Ak)+bdetk(Bk)。
公理2若存在相鄰兩列相等,其值為0。即,如果存在某個1≤k 公理3對于單位矩陣U=(U1,U2,…,Un),det(U1,U2,…,Un)=1。其中Uk為第k個單位向量。 首先,可由公理條件直接推出如下基本性質: 性質1如果矩陣中有一列全為0,則行列式為0。 事實上,如果矩陣A的第k列全為0,由公理1中的齊次性,有detk(0)=detk(0·0)=0·detk(0)=0。 性質2將矩陣中一列的c倍加到相鄰一列后,則行列式不變。 假設由矩陣中的第k+1列的c倍加到第k列,則新矩陣的第k列為Ak+cAk+1。由公理2,detk(Ak+1)=0。再由公理1,有detk(Ak+cAk+1)=detk(Ak)+c·detk(Ak+1)=detk(Ak)。 性質3將矩陣中相鄰兩列互換后,行列式改變符號。 證明設A=(A1,…,Ak,Ak+1,…,An),兩列互換后得到矩陣A′=(A1,…,Ak+1,Ak,…,An)。 將矩陣A中第k列加到第k+1列,得到B=(A1,…,Ak,Ak+Ak+1,…,An);將矩陣B中第k+1列的(-1)倍加到第k列,得到C=(A1,…,(-1)Ak+1,Ak+Ak+1,…,An);將矩陣C中第k列加到第k+1列,得到D=(A1,…,(-1)Ak+1,Ak,…,An)。 由性質2以及公理1中的齊次性質,有 det(A1,…,Ak,Ak+1,…,An) =det(A1,…,Ak,Ak+Ak+1,…,An) =det(A1,…,(-1)Ak+1,Ak+Ak+1,…,An) =det(A1,…,(-1)Ak+1,Ak,…,An) =(-1)·det(A1,A2,…,Ak+1,Ak,…,An) 性質1~3完全由公理本身得到。很顯然:①性質1和性質2可以導出公理2;②性質1和性質3也可以導出公理2。換言之,分別以性質1和性質2取代公理2,以性質1和性質3取代公理2,可以得到行列式函數的另外兩個等價公理定義。 請注意:公理定義中公理1和公理3是本質的。 下面的性質表明:公理2、性質2和性質3中的“相鄰”條件可以去掉。 性質4將矩陣中不同兩列互換后,行列式改變符號。 證明指定兩個不同列號i,j(i 因此,一共作了奇數次相鄰列互換。由性質3,det(A)=(-1)det(C)。即:矩陣中不同兩列互換后,則行列式改變符號。 類似證明: 性質5如果矩陣中有兩列相等,則行列式為0。 性質6將矩陣中任一列的c倍加到另一列后,行列式不變。 證明任意指定兩個不同列號i,j(i 由性質4,det(A)=(-1)det(B); 由性質2,det(B)=det(C)。再由性質4,det(C)=(-1)·det(D)。所以,det(A)=det(D)。即:矩陣中任一列的c倍加到另一列后,行列式不變。 (4,6,5,7)(9),其輪換的長度分別為:3,1,4,1。通常,略去單點輪換后簡單地表示為π=(1,2,8)(4,6,5,7),未出現的元素表示自己映射到自己。長度為2的輪換稱為對換。 可以驗證:一個長度為k的輪換可以表示成k-1個對換的復合,且為最小對換個數: (2) 假定將一個置換π分解為輪換積形式時,其輪換的長度序列為l1,l2,…,lm,則一個置換π可以表示為(l1-1)+(l2-1)+…+(lm-1)個對換的復合。記 τ#(π)=(l1-1)+(l2-1)+…+(lm-1) 它記錄了置換π表示為對換的個數。 可以證明: 1)τ#(π)是置換π表示為對換時的最小對換個數。因此,這個數是唯一的,以其奇偶性定義置換π的奇偶性。 2)τ#(π)的奇偶性與整數序列(π(1),π(2),…,π(n))的逆序數τ(π)的奇偶性一致。 事實上,單位置換對應的逆序數為0。相鄰元素作對換后,逆序數的改變相差1。一般對換使用后,逆序數的改變相差一個奇數。 有了上面的討論,由性質4,我們有: 性質7給定A=(A1,A2,…,An),以及列號集{1,2,…,n}上的一個置換π,有如下關系: det(Aπ(1),Aπ(2),…,Aπ(n))=(-1)τ(π)det(A) (3) 特別,由公理3,對于單位矩陣U=(U1,U2,…,Un),我們有 det(Uπ(1),Uπ(2),…,Uπ(n))=(-1)τ(π) (4) 其中,τ(π)為整數序列(π(1),π(2),…,π(n))的逆序數。 矩陣行列式有一條重要性質:矩陣A的行列式與其轉置AT的行列式相等。我們現在來看一下這條性質如何從公理出發(fā)得到。 首先,我們注意到:對于單位矩陣U,U=UT。從而,det(UT)=det(U)=1。 (5) 將公理1應用到式(5)中,從第1個列向量開始,依次展開: (6) 由性質5,矩陣中有兩列相等時,行列式為0。因此,式(6)完全展開后得到 其中,求和是取遍{1,2,…,n}上所有置換。 為了看清楚這一點,讀者可以n=3推導式(7)。 由式(4),我們有 (8) 同樣,對于 A=(A1,A2,…,An) 行列式展開后得到 我們知道:{1,2,…,n}的所有置換π,在復合運算下構成對稱群Sn,對于任一個置換π,逆元π-1與π一一對應,并且τ#(π-1)=τ#(π)。從而,(-1)τ(π-1)=(-1)τ#(π-1)=(-1)τ#(π)=(-1)τ(π)。 改寫式(9)中系數項中的乘積順序。行、列下標自然順序調整有如下關系: aπ(1),1aπ(2),2…aπ(n),ndet(Uπ(1),Uπ(2),…,Uπ(n)) =a1,π-1(1)a2,π-1(2)…an,π-1(n)det(Uπ-1(1),Uπ-1(2),…, Uπ-1(n)) (10) 因為 aπ(1),1aπ(2),2…aπ(n),ndet(Uπ(1),Uπ(2),…,Uπ(n)) =(-1)τ(π)a1,π-1(1)a2,π-1(2)…an,π-1(n)det(U1,U2,…,Un) =(-1)τ(π)+τ(π-1)a1,π-1(1)a2,π-1(2)…an,π-1(n)· det(Uπ-1(1),Uπ-1(2),…,Uπ-1(n)) =a1,π-1(1)a2,π-1(2)…an,π-1(n)det(Uπ-1(1),Uπ-1(2),…,Uπ-1(n)) 因此,我們有 det(Uπ(1),Uπ(2),…,Uπ(n)) det(Uπ-1(1),Uπ-1(2),…,Uπ-1(n)) (11) 當求和取遍所有置換時,有如下關系: Uπ-1(2),…,Uπ-1(n)) Uπ(2),…,Uπ(n)) Uπ(2),…,Uπ(n)) =det(AT) (12) 由此,有如下性質: 性質8矩陣A的行列式與其轉置AT的行列式相等。即,det(AT)=det(A)。 有了性質8,行列式公理定義中,由“列向量”改為“行向量”作變量定義行列式函數同樣有上述平行性質。因此,有關“列”的性質,對“行”同樣成立。 同時,由式(11)及公理3,我們可以得到通常行列式的定義公式: det(Uπ(1),Uπ(2),…,Uπ(n)) det(U1,U2,…,Un) (13) 其中,求和是取遍{1,2,…,n}的所有置換π,一共有n!項。 由于是對全體置換求和,我們有 (14) 在上述推導過程中,我們得到如下2個有用公式: (15) (16) 注意:式(15)中,等式左端矩陣部分是取A的轉置AT,右端求和系數項中的乘積是以行標為自然順序;而在式(16)中,等式左端矩陣部分是取A,右端求和系數項中的乘積是以列標為自然順序。 用公理方法,可以自然地推出著名的Laplace定理:矩陣乘積(矩陣乘)的行列式等于矩陣行列式的乘積(實數乘)。即,det(AB)=det(A)det(B)。 設有兩個同階方陣A和B,其矩陣乘法AB形式可以表示為 (17) 仿式(15)(16),我們有 det(Aπ(1),Aπ(2),…,Aπ(n)) det(Aπ-1(1),Aπ-1(2),…,Aπ-1(n)) det(A1,A2,…,An) =det(A1,A2,…,An)· =det(A1,A2,…,An)· =det(A1,A2,…,An)·det(B1,B2,…,Bn) =det(A)·det(B) 其中 是依據求和取遍{1,2,…,n}的所有置換。 我們知道:高階行列式的計算主要是通過降階。 由公理得到的一些主要性質(如:行(列)互換行列式變號,一行(列)的c倍加到另行(列)行列式不變),以及如下的降階原理可以計算n階行列式。 對于n階矩陣A=(A1,…,An),可以表示成如下形式: (18) 如果A中第1行全為0,則det(A)=0,否則至少有一個不為0。于是,通過適當的列互換,以及第1(行)列的某個倍數加到另一(行)列,矩陣可化為如下形式: (19) 其中,矩陣B=(B2,…,Bn)為n-1階方陣。對于形如式(19)的矩陣,利用已經由公理推導出的行列式 可以推導出:det(A)=adet(B)。 我們現在觀察n階矩陣A的行列式分解為它的n-1階子矩陣的行列式之間的關系: 對于式(18)表示的矩陣A,記A[i,j]為在矩陣A中刪去第i行、第j列后得到的n-1階子矩陣。 展開如下公式: =a1,1det(A[1,1])+ =a1,1det(A[1,1])+… 我們有 (20) 一般地,對于固定的i,有如下分解計算公式: (21) 對于式(20),對于2≤i≤n,由兩行相同行列式為0,我們有 (22) 由此導出一條重要性質:如果行列式det(A)≠0,對于第1個n維單位向量U1,線性方程組 x1A1+…+xnAn=U1 有解,其中解x(1)的分量 (23) 一般地,類似方法可得到:如果行列式det(A)≠0,對于第k個n維單位向量Uk,線性方程組 x1A1+…+xnAn=Uk 有解,其中解x(k)的分量計算公式為 (24) 請注意:在det(A)≠0條件下,文中線性方程組解的存在性完全由公理及行列式性質獨立推出,并非由det(A)≠0條件按如下路徑得到:A1,…,An線性無關,由A1,…,An構成Rn空間的生成系,再由生成系生成B(如文獻[2])。由生成系生成B要用到線性方程組的解,從邏輯上講,這里出現一個循環(huán)推導問題。 將式(23)(24)組合在一個公式中,得到 由此,矩陣A的逆矩陣 ci,j=(-1)i+jdet(A[i,j]) (25) 這就是可逆矩陣的逆矩陣計算公式(方法)——代數余子式方法。 行列式之所以重要,最主要的原因之一是它提供了求解線性方程組的一般方法:克萊姆(Cramer)法則。 公理化定義的行列式很容易導出克萊姆法則,這體現了公理化方法的優(yōu)點。 給定一組n維列向量A1,…,Am,稱A1,…,Am線性相關,指:存在其中一個列向量Ak,Ak可以表示由其余列向量的線性組合表示。如果不是線性相關,則稱為線性無關(或線性獨立)。 線性相關等價于:存在一組不全為0的數α1,…,αm,使得α1A1+…+αmAm=0。線性無關等價于:對任意一組數α1,…,αm,如果α1A1+…+αmAm=0,則α1=…=αm=0。 在討論線性方程組解的存在性與系數矩陣的行列式之間的關系之前,從邏輯上講,我們應該先考慮行列式與列向量線性相關性質之間的關系,而不是從線性方程組解的性質討論這一關系。 關于向量組的線性相關性質,容易驗證:①在一個向量組中,如果存在部分向量構成的子向量組線性相關,則該向量線性相關;②對一組n維列向量A1,…,Am,B1,…,Bm是由A1,…,Am在同一位置(如第1位置)插入0后得到n+1維向量組,則A1,…,Am與B1,…,Bm的線性相關性一致。 由第3節(jié)得到的性質,我們可以得到如下性質: 性質9對于矩陣A=(A1,…,An),如果det(A1,…,An)=0,并且A第1列都不全為0,則通過如下操作: 1)調整行的順序使(1,1)位置元素不為0; 2)將第1列的某個倍數加到第2,…,n列某一列,得到矩陣 其中det(B2,…,Bn)=0。 請注意:第一類操作只可能改變行列式符號,第二類操作不改變行列式值,因此 性質9就是通常將一個矩陣劃為三角矩陣的方法:行列式值只改變符號。對于行列式為0的原始矩陣,每一步操作后所得到矩陣的行列式仍為0,并且A1,…,An與B1,…,Bn的線性相關性一致。 請注意:對于一階矩陣,當其行列式為0時,該矩陣只能為零矩陣。 由上述討論,矩陣A=(A1,…,An)中,A1,…,An的線性相關性可以由A的行列式值是否為0判定。 性質10對于矩陣A=(A1,…,An),向量組A1,…,An的線性相關性當且僅當det(A)=0。 證明如果A1,…,An線性相關,則存在一個列向量Ak,Ak=α1A1+…+αk-1Ak-1+αk+1Ak+1…+αnAn,則由性質6及性質1,det(A1,…,Ak,…,An)=det(A1,…,0,…,An)=0。 反之,如果det(A)=0,如果A中有一列向量全為0,則A1,…,An中含有零向量,從而線性相關。否則,取定A1,其中至少有一個非零分量。按性質9,從A可以得到一個形式如下的矩陣: 其中det(B)=det(B2,…,Bn)=0,且A1,…,An與B1,…,Bn的線性相關性一致。 對B重復上述操作(至多n-1次),可以在某一步上得到C=(Ck,…,Cn)(1 利用性質10,我們得到如下行列式與線性方程解之間的關系。 性質11對于線性方程x1A1+…+xnAn=B,我們有: 1)如果對于任意一個n維列向量B,方程有解,則det(A1,…,An)≠0。 2)如果det(A1,…,An)≠0,則對于任意給定的一個n維列向量B,方程有解。從而,如果存在某個n維列向量B,方程無解,則det(A1,…,An)=0。 證明1) 假定對于任意的n維列向量B,方程有解,分別取B為單位向量U1,…,Un,記方程x1A1+…+xnAn=Ui的解為Bi,則(A1,…,An)(B1,…,Bn)=(U1,…,Un)。因此 det((A1,…,An)(B1,…,Bn)) =det(U1,…,Un)=1 由Laplace定理: det((A1,…,An)(B1,…,Bn)) =det(A1,…,An)det(B1,…,Bn) 從而,det(A1,…,An)≠0。 而解x*的分量由如下公式計算: 可以驗證 =det(A1,…,Ak-1,B,Ak+1,…,An) 從而 這就是Cramer法則對解向量的分量的計算公式。 反過來,如果det(A1,…,An)≠0,且方程x1A1+…+xnAn=B有解(請注意,這里先假設有解),則解向量中分量xj可以表示為 這就是著名的Cramer法則。 Cramer法則的推導:由x1A1+…+xnAn=B,以第1列為例:將B替換A1,計算行列式det(B,A2,…,An)。由性質6,從第2列至第n列,分別以第k列的-xk倍加到第1列(行列式不變),最后使用公理1得 det(B,A2,…,An) =det(x1A1+x2A2+…+xnAn,A2,…,An) =det(x1A1+x3A3+…+xnAn,A2,…,An) … =det(x1A1,A2,…,An) =x1det(A1,A2,…,An) 在行列式的公理定義中,三條公理是相互獨立的。原因是:公理1只考慮矩陣中任一列上的齊次線性性質;公理2是考慮矩陣中兩列比較,不涉及運算;公理3是界定行列式函數的“初始”邊界值,以單位矩陣U的行列式為1作為“種子值”。因此,由其中任意兩個公理不能導出第三條公理。 其次,根據第1節(jié)中的討論,行列式的公理定義中的公理2有兩種替換方式。 對于公理3,可修改det(U1,U2,…,Un)的初始值。如:定義一個函數F(A)=F(A1,…,An)滿足公理1和公理2,修改公理3為F(U)=F(U1,…,Un)=c≠0,則可以證明:F(A1,…,An)=c·det(A1,…,An)。 更進一步,我們可以將F(A)=F(A1,…,An)的取值不是定義在實數集上,而是定義于一個域上(或者一個抽象空間上),通過適當規(guī)定公理,可以將矩陣的性質映射到相應空間上。同樣,可以修改公理,研究滿足公理的函數的相關性質。 有關行列式的定義方式,還可以用Valiant給出的圖論方法引入,相關定義請參見文獻[3-4]。對于高階稀疏矩陣行列式的計算,有時以圖的方式引入的定義更有效。對于MacMahon主定理、Cayley-Hamilton定理、矩陣樹定理、特征多項式定理等的證明,圖論方法引入行列式體現了新的思路。詳細介紹請參閱文獻[5-10]。 a1,π(1)a2,π(2)…an,π(n),其求和是對集合J={1,2,…,n}上所有置換求和,即在對稱群Sn中取每個元素作用于列標號集J。我們知道:對于定義在J上的任意一個(有限)群G,都對應產生Sn的一個子群。或者說,G同構于Sn的一個子群。2 行列式的其他性質
3 高階行列式降階與行列式的分解
4 線性方程組解的存在性及解的表示
5 結語