標籤:

det(AB)=det(A)det(B)有簡單證法嗎?


記得以前上某門線代課的時候教授倒是講過一種很簡單的證明,於是我去翻了翻筆記。當時我們用的是 Peter Lax 那本書,所以證明的前提是你接受他對行列式的引入。對於某個矩陣 A = (a_1,a_2,dots,a_n),我們定義一個到 R 的函數 D(a_1,a_2,dots,a_n) 。如果這個函數滿足

1.D(a_1,a_2,dots,a_n) = 0, 	ext{ if } a_i=a_j, i 
eq j

2.D(a_1,a_2,dots,a_n) 是一個多重線性函數.

3. D(e_1,e_2,dots,e_n)=1 (e是標準基)

那麼 D 就是矩陣 A 的行列式。(其實 Lax 在給出這個定義之前給了很自然的幾何的motivation,有興趣可以去看看)。

現在定義一個新的函數 f: B mapsto det(AB), 我們不難驗證 f 滿足性質1,2,所以f一定可以寫作 cdet(B) 的形式(這裡 c 是一個常數)。現在令f(I)=1, 我們可以得出 c = det(A),所以 f(B) = det(A)det(B)。證畢。

當然樓上冰神的證明或許更直接一些,不過我個人不太喜歡搗鼓矩陣...(所以線代很多題老是不會做2333


思路比較簡單的證明方法是:

矩陣有三種初等變換:交換兩行(列),某一行(列)乘以常數,某一行(列)乘以常數加到另一行(列)上。

首先第三種初等變換不改變矩陣的行列式的值(行列式的性質)。

其次如果A,B之一是對角陣,那麼根據行列式的定義可以驗證det(AB)=det(A)det(B)

注意:只用第三種初等變換可以把矩陣化為對角形(高斯消元法)。

如果主元a_{ii}=0,如果i行或i列不全為0,即a_{ij}
eq0a_{ki}
eq0,直接把第j列或者第k行直接加過來就可以。如果i行和i列全為0,直接跳過對右下角的分塊繼續消元。

這個消元過程只是為了證明乘積的行列式這個性質,所以最後化成的對角形並不是滿秩縮在左上角的那種情況,不可以回帶,和解方程的消元法還不太一樣。

於是

P_r..P_1AQ_1...Q_s=A^{}

A=(P_1)^{-1}...(P_r)^{-1}A^{}(Q_s)^{-1}...(Q_1)^{-1}

det(AB)=det((P_1)^{-1}...(P_r)^{-1}A^{}(Q_s)^{-1}...(Q_1)^{-1}B)

=det(A^{}(Q_s)^{-1}...(Q_1)^{-1}B)(注意這裡A^{}是對角陣)

=det(A^{})det((Q_s)^{-1}...(Q_1)^{-1}B)=det(A)det(B)


引理1:將行列式的某一行(列)乘以某一係數加到另一行(列)上去,不改變行列式的值。

證明思路:設把行列式的第i行乘以k後,加到第j行上去。把新的行列式按第j行展開,可以發現展開的結果是兩部分的和,一部分就是原行列式的值,另一部分是另一個行列式的值,這個行列式的第j行就是第i行的k倍。有兩行線性相關的行列式,其值為0,故引理得證。列變換同理。

引理2:上三角行列式的值,等於所有對角元之積。

證明略。

引理3:兩個上三角矩陣相乘,結果仍是上三角矩陣,且其每個對角元正是原來兩個矩陣相應對角元之積。

證明略。

det(AB) = det(A) det(B) 的證明:

用引理1中的行變換,將A變成上三角陣A(過程類似高斯消元法);用引理1中的列變換,將B變成上三角陣B。由引理1,det(A) = det(A),det(B) = det(B)。

將同樣的行變換和列變換作用於AB。由於行變換相當於左乘一個矩陣,列變換相當於右乘一個矩陣,所以變換的結果是AB。由引理1,det(AB) = det(AB)。

由引理2、3,det(AB) = det(A) det(B),故有det(AB) = det(A) det(B)。


任何一個矩陣都可以通過高斯消去法寫成一系列:交換兩行的;或,將一行乘以係數加到另一行的初等變換矩陣與一個上三角陣的乘積

B = T_1T_2...T_kU

上三角矩陣的轉置是個下三角矩陣,這個下三角矩陣如果有為0的對角元,則B不滿秩,AB也不滿秩,顯然det(AB) = det(A)det(B) = 0。沒有為0的對角元時,這個矩陣可以進一步使用高斯消去法寫成一系列初等變換與一個對角陣的乘積,方便起見我們將每個初等變換矩陣用它的轉置來表示:

U^T=P_1^TP_2^T...P_m^TLambda

或者

U = Lambda P_m...P_2P_1

高斯消去法用到的兩類初等變換矩陣與另一個矩陣左乘或右乘,等於初等變換矩陣的行列式值乘以矩陣的行列式值(證明略,見各代數課本,實際上是交換兩行則行列式取反,乘以係數加到另一行則行列式值不變)

兩類初等變換矩陣的逆仍然是初等變換矩陣(證明略)

右乘對角陣實際上是將某一列乘以係數的初等變換的組合,容易證明

det(CLambda) = det(C)det(Lambda)

C為任意矩陣,Lambda為對角陣

det(AB) = det(ABP_1^{-1}P_2^{-1}...P_m^{-1})det(P_m...P_1)=det(AT_1T_2...T_kLambda)det(P_m...P_1)

=det(AT_1T_2...T_k)det(Lambda)det(P_m...P_1)=det(A)det(T_1T_2...T_k)det(Lambda)det(P_m...P_1)

而當A=I(單位陣)時

det(B)=det(IB) = det(I)det(T_1T_2...T_k)det(Lambda)det(P_m...P_1)=det(T_1T_2...T_k)det(Lambda)det(P_m...P_1)

所以

det(AB) = det(A)det(B)


一、基於定義的直接證明

直接用定義來證,用到一點置換的知識,因為行列式的定義就用到了置換的概念,對於n階矩陣A,其行列式定義為

det Astackrel{Delta}{=}sum_sigma(operatorname{sign}sigma) A_1^{sigma(1)}A_2^{sigma(2)}cdots A_n^{sigma(n)}

置換sigma取遍整個置換群S_n,它們都是定義在{1,2,cdots,n}上的雙射,共有n!個。operatorname{sign}sigma表示置換sigma的符號,指的是將123cdots n變成sigma(1)sigma(2)sigma(3)cdotssigma(n)所需的交換的次數的奇偶性,可以證明operatorname{sign}sigma	au=operatorname{sign}sigmaoperatorname{sign}	au

egin{align}
det(AB)=sum_sigma(operatorname{sign}sigma)left(sum_{i_1}A_1^{i_1}B_{i_1}^{sigma(1)}
ight)cdotsleft(sum_{i_n}A_n^{i_n}B_{i_n}^{sigma(n)}
ight)\
=sum_{i_1,i_2,cdots,i_n}A_1^{i_1}A_2^{i_2}cdots A_n^{i_n}sum_sigma(operatorname{sign}sigma)B_{i_1}^{sigma(1)}cdots B_{i_n}^{sigma(n)} \
=sum_	au A_1^{	au(1)}A_2^{	au(2)}cdots A_n^{	au(n)}sum_sigma(operatorname{sign}sigma)B_{	au(1)}^{sigma(1)}cdots B_{	au(n)}^{sigma(n)} \
=sum_	au A_1^{	au(1)}A_2^{	au(2)}cdots A_n^{	au(n)}sum_{sigma	au}(operatorname{sign}sigma	au)B_{	au(1)}^{sigma	au(1)}cdots B_{	au(n)}^{sigma	au(n)} \
=sum_	au A_1^{	au(1)}A_2^{	au(2)}cdots A_n^{	au(n)}sum_{sigma	au}(operatorname{sign}sigma)(operatorname{sign}	au)B_{1}^{sigma(1)}cdots B_{n}^{sigma(n)} \
=sum_	au (operatorname{sign}	au)A_1^{	au(1)}A_2^{	au(2)}cdots A_n^{	au(n)}sum_{sigma}(operatorname{sign}sigma)B_{1}^{sigma(1)}cdots B_{n}^{sigma(n)} \
=det Adet B
end{align}

第一行:行列式的定義,矩陣乘法的定義

第二行:簡單地展開

第三行:關鍵步驟。將i_1,i_2,cdots,i_n的遍歷換成一個置換,因為若不是置換,則後面的求和為零。這是因為,假設有相同的指標,比如i_1=i_2,則存在兩個置換sigma_1,sigma_2,使得sigma_1(1)=1,sigma_1(2)=2,sigma_2(1)=2,sigma_2(2)=1,其它位置兩個置換相同,但這兩個置換符號相反,因此會消去

第四行:置換sigma取遍整個置換群,而sigma	au也取遍整個置換群

第五行:operatorname{sign}sigma	au=operatorname{sign}sigmaoperatorname{sign}	au是置換的基本性質,後面消去	au不是針對單個B_{	au(k)}^{sigma	au(k)},即不一定有B_{	au(k)}^{sigma	au(k)}=B_{k}^{sigma(k)},而是對所有的	au(1),	au(2),cdots,	au(n)整體替換

第六行:sigma	au的遍歷換成了sigma的遍歷

第七行:行列式的定義

二、基於遞歸定義的直接證明

行列式的另一種遞歸定義為

det A=sum_i(-1)^{i+j}A_i^jdetmathcal{A}_i^j

其中mathcal{A}_i^j表示去掉(i,j)元素A_i^j之後剩下的矩陣,於是我們可用歸納法證明。

egin{align}
det(AB)=sum_i(-1)^{i+1}left(sum_jA_1^jB_j^i
ight)detleft(mathcal{A}mathcal{B}
ight)_1^i \
=sum_jsum_i(-1)^{i+1}A_1^jB_j^idetleft(mathcal{A}mathcal{B}
ight)_1^i \
=sum_jsum_i(-1)^{i+1}A_1^jB_j^idet(mathcal{A}_1^jmathcal{B}_j^i) \
=sum_j(-1)^{j+1}A_1^jdetmathcal{A}_1^jsum_i(-1)^{i+j}B_j^idetmathcal{B}_j^i \
=det Adet B
end{align}

第四行用了歸納假設,第三行是關鍵:因為sum_i(-1)^{i+1}A_1^jB_j^idetleft(mathcal{A}mathcal{B}
ight)_1^i可表示為一個n	imes n矩陣的行列式,即A_1^jB_j^i為第1i列元素,此行列式通過行變換可得到sum_i(-1)^{i+1}A_1^jB_j^idet(mathcal{A}_1^jmathcal{B}_j^i),即將第一行乘以(A_1^j)^{-1}A_k^j加到第k行(若A_1^j=0自然就不用加了)。事實上,left(mathcal{A}mathcal{B}
ight)_1^i相比於mathcal{A}_1^jmathcal{B}_j^i,就多了一個A_cdot^jB_j^cdot元素。

三、關於外代數

從行列式的定義來看,沒有比外代數更好的描述語言了。給定一個nmathbb{R}-矢量空間V,其基底為{e_1,e_2,cdots,e_n},對於矢量a,b,c,a_iin V,我們記a_1wedge a_2wedgecdotswedge a_kk-矢量,它們滿足

  • 反對稱性:awedge b=-bwedge a

  • 結合率:(awedge b)wedge c=awedge(bwedge c)
  • 線性性:(alpha a+eta b)wedgecdots=(alpha awedgecdots) + (eta bwedgecdots),其中alpha,etainmathbb{R}

實數構成Lambda^0(V)=mathbb{R},矢量構成Lambda^1(V)=V,二矢awedge b構成矢量空間Lambda^2(V),最高的是n-矢構成Lambda^n(V)Lambda^k(V)的基底類似於e_1wedgecdotswedge e_ke_2wedge e_3wedgecdotswedge e_{k+1},等等,共有dimLambda^k(V)=inom{n}{k}個。這也意味著Lambda^0=mathbb{R}Lambda^n是對偶的,都是一維矢量空間,Lambda^n(V)的基底只有一個元素,比如e_1wedgecdotswedge e_n,它有個專有名詞:偽矢。記基底mathcal{E}=[e_1,e_2,cdots,e_n],矩陣A=[a_1,a_2,cdots,a_n]B=[b_1,b_2,cdots,b_n],則

(mathcal{E}a_1)wedge(mathcal{E}a_2)wedgecdotswedge(mathcal{E}a_n)=(det A)(e_1wedgecdotswedge e_n)

這一步的證明用外代數和行列式的定義即可(一個典型的外代數習題),或者直接把它作為行列式的定義。類似地,AB=[Ab_1,Ab_2,cdots,Ab_n],若以mathcal{E}A=[mathcal{E}a_1,cdots,mathcal{E}a_n]為基底,則

egin{align}
(det AB)(e_1wedgecdotswedge e_n) = (mathcal{E}Ab_1)wedgecdotswedge(mathcal{E}Ab_n)\
=(det B)(mathcal{E}a_1)wedgecdotswedge(mathcal{E}a_n)\
=(det B)(det A)(e_1wedgecdotswedge e_n)
end{align}

這裡嚴格區分了矢量mathcal{E}a_i與列向量a_i,因為V是一個抽象的矢量空間。這裡的mathbb{R}也可換成其它域。

上述外代數的描述過程,體現了行列式的幾何性質,因為一個多矢實際上就是一個高維的平行多面體,比如二矢表示一個平行四邊形。因此,行列式表示基底變換的體積變化。

我還是喜歡一杆子捅到底的證明方法,高票回答里公理化行列式的方式也是很不錯的。


行列式的本質是線性變換的放大率,n 維空間到自身的線性變換,可以用一個方陣來表示,特徵向量,就是變換中方向不變的向量,特徵值就是這個向量的收縮率,所有特徵值相乘就是整個放大率。也是行列式的值。

知道這些以後,兩個矩陣相乘對應著複合變換,複合以後的變化率等於變化率的乘積,也就是

det(AB)=DetA×DetB


大家貌似都是從代數的角度給出的證明,我這裡給一個比較information theoretic的簡單證明。

首先根據entropy的公理,對於任意兩個獨立隨機變數X和Y,H(X,Y)=H(X)+H(Y).

Xsim N(0,Q_1),Ysim N(0,Q_2),則(X,Y)sim N(0,mathrm{diag}(Q_1,Q_2))

注意到對於任意Zsim N(0,Q),H(Z)=logdet(pi eQ), 因此

logdet(Q_1Q_2)=logdet(Q_1)+logdet(Q_2)\
Rightarrow det(Q_1Q_2)=det(Q_1)det(Q_2)


by Stephen_H._Friedberg,_Arnold_J._Insel,_Lawrence_E :Linear Algebra 4th ed.


行列式用交錯線性型定義的話這就是顯然的……另外交錯線性型的定義也是最直接地符合行列式的幾何解釋「放大率」的……



完善一下 @白如冰的答案。

在解決題主的問題之前,先說一個行列式的定理:

如果矩陣A是一個n 	imes n的矩陣。矩陣E是一個n	imes n的基本矩陣,那麼有det EA=(detE)(detA),在這個式子中:

如果E是行交換,detE=-1;如果E是行變換(即將某一行的倍數加到另一行)。detE=1;如果E是行倍增r倍,detE=r

現在回到原題,將原題根據矩陣A可逆與否分兩種情況討論:

  1. 如果矩陣A是一個不可逆矩陣,那麼矩陣AB也是不可逆矩陣。然後我們有det(A)det(b)=det(AB)=0;
  2. 如果矩陣A是一個可逆矩陣,那麼矩陣AB也是可逆矩陣。這個時候根據可逆矩陣的性質,A一定可以通過對矩陣I_{n} 進行基本行變換得到。因此存在基本矩陣組:E_{1} ,E_{2}, E_{3}, ...,E_{P} ,使得A=E_{p} ...E_{1} I_{n} =E_{p} E_{p-1}....E_{1} 。所以說left| AB 
ight|= left|E_{p} ...E_{1} B  
ight| =left|E_{p}
ight| left|E_{p-1}...E_{1} B  
ight|=...=left| |E_{p} 
ight| left|E_{p-1} 
ight|... left| |E_{1} 
ight| left| B 
ight| =...= left|E_{p} ...E_{1} 
ight| left| B  
ight|=left| A 
ight| left| B 
ight| 。上式中利用了在本答案開頭提到的行列式定理。證畢。

參考資料:

Lay, David C. Linear Algebra and Its Applications. Boston: Pearson/Addison-Wesley, 2006. Print.


1.把矩陣行列式看成反對稱線型函數,一個A看作一個變換

這個證明在李囧生有,可謂是最漂亮的證明

2.看作線性變換下de

==

所有題目用初等變幻是最不優雅但是最有效的


方陣有什麼好搞頭,按定義帶進去硬算不就完了……Binet-Cauchy 公式本身獨立於相抵標準型,初次學習的時候能減少這種依賴最好……學數學別總想著偷懶……


這幾天剛在看Gilbert Strang&,摘錄一下書里的方法(順便推薦這本書,講得很好)。和另外一個回答——Peter Lax先用三條性質定義了行列式,然後驗證一個函數映射符合這三條性質,所以也是行列式——一樣,只是性質和細節略有不同。

直觀地理解,行列式是矩陣的Volume(體積),比如,單位陣的行列式總是1,在三維空間里就是一個單位立方體的體積。定義的三條性質,就是定義了計算這種體積的計算方式。我先把結論說明,然後直觀地去理解一下。

  • 三條性質定義了行列式(determinant):

1.n	imes n的單位陣的行列式為1。

2. 任意兩行交換,正負符號改變

3. 行列式是單獨每一行的線性函數(其他所有行保持不變)

線性函數,就要滿足加和標量乘法,即

  • 下面證明left| AB 
ight| = left| A 
ight|  left| B 
ight|

left| B 
ight| 
e 0時,考慮比率D(A)=left| AB 
ight| /left| B 
ight| ,容易檢驗符合性質1,2,3:

1. 當A是單位陣,則D(A) = left| AB 
ight| / left| B 
ight| = left| B 
ight| / left| B 
ight| =1

2. 當A交換任意兩行,則AB也交換了任意兩行,所以D(A)改變了符號

3. 當A的某一行進行線性變換,則AB也會進行相應的變換,D(A)也是

所以D(A)就是行列式left| A 
ight| 。當left| B 
ight| =0時,上式也滿足。因此left| AB 
ight| =  left| A 
ight| left| B 
ight|

  • 理解

直觀地講,行列式就是定義了體積(Volume),第1條性質和第2條性質保證了這一點。

首先第1條性質定義了任何維數空間的單位「立方體」的體積為1,第2條性質能夠處理任何變化了的「立方體」的體積,比如

而第2條性質,符號定義了左旋和右旋的特徵。

因此,感覺這三條性質足夠「完備」。另一個答案 @貓頭鷹green 中提到了「行列式的本質是線性變換的放大率」,也是一個很好的理解,本質其實一樣。讓我想起了在坐標變換的時候,雅可比矩陣的行列式。


【雙字/合集】「線性代數的本質」系列合集(7)_趣味科普人文_科技_bilibili_嗶哩嗶哩彈幕視頻網 推薦樓主看看這個視頻合集


推薦閱讀:

掰開揉碎推導Normal Equation
為什麼線代這麼有趣?
線性代數的直覺理解(1)
【數學課堂】線性代數系列 -- 線性空間

TAG:線性代數 |