【高等代數】01 - 行列式和矩陣的秩


  高等代數究竟應該包含哪些內容?從名字上看它應當包含代數學中的所有高等內容。但一般來講,這里的“高等”只是相對中學的“初等”而言的,它包含線性代數、多項式等內容。抽象代數這樣的“高級”分支比它更抽象,需要獨立分支去討論。前面我們已經學習過線性代數,請先回顧一下該課程。首先要清楚,線性代數的三大內容:線性空間、線性變換、線性函數(向量的度量)。線性空間的概念之前已經闡述得比較完備了,這里只強調一點:我們說的向量是一種代數結構,而非特指坐標向量,雖然通過映射可以將它們等價起來。

  之前的線性代數課程更偏重概念的闡述和結構的搭建,而忽略了一些具體的例子和方法。這里我想先花一些篇幅,整理一下教材中經常出現的好的問題,以及一些有趣的結論。這些問題將以不同的課題進行組織,其中會穿插不同的知識點。它們不光在現實場景中有着廣泛的應用,對這些典型問題的思考,也非常有助於理解基本概念。為了保持概念的連續性,這里還是會重復提出已經熟知的概念,既是回顧也是擴展。

1. 行列式

  線性空間的一個基本問題就是解線性方程組,這其中需要用到一個叫行列式的東西。不要忘記,行列式本質上是一個\(n\)重反對稱線性函數(設定單位矩陣的值為1),這個定義比古怪的直接定義公式要清晰得多。

  行列式是相對獨立的內容,計算時有很多技巧,這里再搜集一些常見的題型。除了定義之外,之前我們還介紹了幾種常用方法,比如基本變換法、拉普拉斯定理(按行展開)、加邊法、待定系數法、遞推方程法、矩陣分解法等。這里再具體看一些例子和方法,來豐富之前行列式的內容。還有更多特殊行列式的計算方法,會在相關的主題中繼續討論。

1.1 一般方法

  首先計算時不能完全忘記最原始的定義,就是所有代表元素的乘積之和。例如對於元素全為\(\pm 1\)的行列式(階數\(n>1\)),由於它的每個乘項都是\(\pm 1\),而項數為偶數,故總和\(|A|\)必定是偶數。進一步地,通過初等變換可以得到式(1),其中\(b_{ij}\)只取\(0,\pm 2\)、\(c_{ij}\)只取\(0,\pm 1\),從而可以得到:\(|A|\)一定是\(2^{n-1}\)的倍數。

\[|A|=\begin{vmatrix}\pm 1&a_{12}&\cdots&a_{1n}\\0&b_{22}&\cdots&b_{2n}\\\vdots&\vdots&\ddots&\vdots\\ 0&b_{n2}&\cdots &b_{nn}\end{vmatrix}=\pm 2^{n-1}\begin{vmatrix}c_{22}&\cdots&c_{2n}\\\vdots&\ddots &\vdots\\c_{n2}&\cdots&c_{nn}\end{vmatrix}\tag{1}\]

  初等變換一直是行列式計算最重要的方法,而矩陣的分塊變換對復雜表達式的行列式更是提供了便捷的途徑。最簡單就數式(2)左的變換,它用最直觀的方法證明了\(|AB|=|A||B|\)。還有當\(A\)可逆時(\(B,C\)不一定是方陣),容易得到式(3)。當\(A,B,C,D\)都是方陣、且\(AC=CA\)時,則式(3)的行列式才等於\(|AD-CB|\)。但注意到最終表達式中並沒有\(A^{-1}\),我們需要討論\(A\)不可逆的情況。

  用\(A+tI,D+tI\)代替\(A,D\),設得到的行列式為\(f(t)\),它顯然是一個\(2n\)次多項式。在\(t\)足夠小的去心領域里,\(A+tI\)必定是可逆的,故有\(f(t)=|(A+tI)(D+tI)-CB|\),由連續性可知\(f(0)=|AD-CB|\)。也就是說對任意方陣\(A\),都有式(4)成立,同樣如果有\(AB=BA\),也可以得到行列式的值為\(|DA-CB|\)。多項式的連續性在這里發揮了關鍵作用,它對一些異常情況的處理十分有效,馬上我們還會碰到。

\[\begin{bmatrix}A&0\\I_n&B\end{bmatrix}\rightarrow\begin{bmatrix}0&-AB\\I_n&0\end{bmatrix}\;\Rightarrow\;|AB|=|A||B|\tag{2}\]

\[\begin{vmatrix}A&B\\C&D\end{vmatrix}=|A||D-CA^{-1}B|\tag{3}\]

\[AC=CA\;\Rightarrow\;\begin{vmatrix}A&B\\C&D\end{vmatrix}=|AD-CB|\tag{4}\]

  還有,通過式(5)的兩種變換,可以得到重要的結論(6)。所以對於具有形式\(|I_n-AB|\)、且\(m\)很小的行列式,把它轉化為\(|I_m-BA|\)會簡單得多,你可以嘗試一下計算式(7)的行列式。

\[\begin{bmatrix}I_n&A\\0&I_m-BA\end{bmatrix}\leftarrow\begin{bmatrix}I_n&A\\B&I_m\end{bmatrix}\rightarrow\begin{bmatrix}I_n-AB&0\\B&I_m\end{bmatrix}\tag{5}\]

\[|I_m-BA|=|I_n-AB|\tag{6}\]

\[\begin{vmatrix}0&2a_1&3a_1&\cdots&na_1\\a_2&a_2&3a_2&\cdots&na_2\\a_3&2a_3&2a_3&\cdots&na_3\\\vdots&\vdots&\vdots&\ddots&\vdots\\a_n&2a_n&3a_n&\cdots&(n-1)a_n\end{vmatrix}\tag{7}\]

1.2 其它方法

  遞推法是計算行列式的常用方法,比如式(8)左的三對角型\(D_n\)。我們不難得到它的遞推式\(D_n=aD_{n-1}-bcD_{n-2}\),且有初始值\(D_1=a,D_2=a^2-bc\)。利用遞推式的母函數法,並令\(x,y\)是\(x+y=a,xy=bc\)的兩個根,很容易地就求得了式(8)右的結果。

\[D_n=\begin{vmatrix}a&b&&\\c&\ddots&\ddots&\\&\ddots&\ddots&b\\&&c&a\end{vmatrix}=\dfrac{x^{n+1}-y^{n+1}}{x-y}\tag{8}\]

  矩陣分解法的代表是如式(9)左的循環矩陣\(C_n\),為了在循環中找到不變性,可以用另一個循環來進行固定。具體做法可以是考察列向量\([1,\omega,\cdots,\omega^{n-1}]'\),其中\(\omega\)是\(\omega^n=1\)的任意根,它與\(C_n\)第\(i\)行的內積是\(\omega^{i-1}\sum\limits_{j=1}^n\omega^{j-1}a_j\),其中的公共項\(\sum\limits_{j=1}^n\omega^{j-1}a_j\)可以提取出來。現在取\(\omega\)為單位根,並記\(W\)為式(9)右,這樣就能得到等式(10),從而有\(|C_n|=\prod\limits_{i=0}^{n-1}\sum\limits_{j=1}^n\omega^{i(j-1)}a_j\)。這個方法有明顯拼湊的跡象,后面我們會用更加深刻的結論再次計算一遍。

\[C_n=\begin{bmatrix}a_1&a_2&\cdots&a_n\\a_n&a_1&\cdots&a_{n-1}\\\vdots&\vdots&\ddots&\vdots\\a_2&a_3&\cdots&a_1\end{bmatrix};\;W=\begin{bmatrix}1&1&1&1\\1&\omega&\cdots&\omega^{n-1}\\1&\vdots&\ddots&\vdots\\1&\omega^{n-1}&\cdots&\omega^{(n-1)^2}\end{bmatrix}\tag{9}\]

\[C_n\cdot W=\prod_{i=0}^{n-1}\sum_{j=1}^n(\omega^{i(j-1)}a_j)\cdot W\tag{10}\]

  我還看到過行列式的一個有趣應用,就是利用行列式的初等變換來進行因式分解。比如很容易知道式(11)左可以寫成式中的行列式,簡單的初等變換就能得到因子\(x+y+z\)。當然這種方法的弊端就是要先找到合適的行列式,在有些場合下也許是比較容易的。

\[x^3+y^3+z^3-3xyz=\begin{vmatrix}x&y&z\\z&x&y\\y&z&x\end{vmatrix}=(x+y+z)\begin{vmatrix}1&y&z\\1&x&y\\1&z&x\end{vmatrix}\tag{11}\]

2. 矩陣的秩

2.1 一般方法

  解線性方程組衍生出的另一個問題就是矩陣和它的秩,但這里矩陣的作用也僅僅是一種記法,可以討論的也只有行向量和列向量。這里最重要的結論當然就是:矩陣的行秩和列秩相同,它們統稱為矩陣的秩。現在設矩陣\(A\)的秩為\(r\),則可以找到它的極大無關行向量組\(\{\alpha_1,\cdots,\alpha_r\}\)和極大無關列向量組\(\{\beta_1,\cdots,\beta_r\}\),現在來考慮由它們的交點組成的子矩陣\(B\)。首先由於\(\{\alpha_1,\cdots,\alpha_r\}\)組成的子矩陣\(C\)的秩為\(r\),故\(C\)的列向量的秩也是\(r\)。另外由於\(\{\beta_1,\cdots,\beta_r\}\)可以線性表示其它列,故\(B\)的列向量可以線性表示\(C\)的其它列,這就是說\(B\)的列向量是\(C\)的列向量的極大線性無關組,從而\(B\)的秩也是\(r\)。這個結論還是比較有用的,比如因為奇數階反對稱矩陣的行列式為\(0\)(各行提取\(-1\)),可知反對稱矩陣的秩只能為偶數(反對稱矩陣的標准型可直接得到該結論)。

  線性相關性是秩的根本意義,這個簡單的認知卻是很多結論的關鍵,由此得到的式(12)(13)以后會經常用到。另外假設\(A_{m\times n}\)秩為\(r\),則可以選出列向量的極大無關組\(\{\alpha_1,\cdots,\alpha_r\}\),組成矩陣\(B\)。這時\(A\)的每一列可以線性表示為\(c_{1j}\alpha_1+\cdots+c_{rj}\alpha_r\),則矩陣\(C=\{c_{ij}\}\)滿足\(A=BC\)。由式(13)可知\(C\)的秩也為\(r\)。總結就是任何秩為\(r\)的矩陣\(A_{m\times n}\)都能分解為兩個滿秩矩陣\(B_{m\times r},C_{r\times n}\)的乘積。

\[\text{rank}(A+B)\leqslant\text{rank}(A)+\text{rank}(B)\tag{12}\]

\[\text{rank}(AB)\leqslant\min\{\text{rank}(A),\text{rank}(B)\}\tag{13}\]

   求證:\(\text{rank}(I-AB)\leqslant\text{rank}(I-A)+\text{rank}(I-B)\)。

  和行列式一樣,初等變換是判斷矩陣秩的基本方法,其中分塊初等變換同樣能帶來驚喜的結論。比如由(2)的變換,容易得到式(14)的Sylvester秩不等式。類似地由變換\(\begin{bmatrix}B&0\\0&ABC\end{bmatrix}\rightarrow\begin{bmatrix}B&AB\\BC&0\end{bmatrix}\),也容易證明式(15)的Frobenius秩不等式

\[\text{rank}(AB)\geqslant\text{rank}(A)+\text{rank}(B)-n\tag{14}\]

\[\text{rank}(ABC)\geqslant\text{rank}(AB)+\text{rank}(BC)-\text{rank}(B)\tag{15}\]

2.2 其它方法

  我們知道,矩陣的乘法其實就是多組線性表示,也許乘法的秩和線性方程組能建立起聯系。首先把\(AB\)的列向量看成是\(A\)的列向量的線性表示\(\sum\limits_i b_{ij}\alpha_i\),如果\(\text{rank}(AB)=\text{rank}(A)\),則\(AB,A\)的列向量組是等價的(考慮生成線性空間),從而矩陣方程\(ABX=A\)有解(式(16))。再來把\(AB\)的行向量看成是\(B\)的行向量的線性表示\(\sum\limits_j a_{ij}\beta_j\),如果\(\text{rank}(AB)=\text{rank}(B)\),則\(AB,B\)的行向量組是等價的,從而線性方程\(ABX=0,BX=0\)同解(式(17))。

\[\text{rank}(AB)=\text{rank}(A)\;\Leftrightarrow\;\exists X(ABX=A)\tag{16}\]

\[\text{rank}(AB)=\text{rank}(B)\;\Leftrightarrow\;\forall X(ABX=0\Leftrightarrow BX=0)\tag{17}\]

  等價的方程組形式並不是什么特殊的結論,但對於描述論證更加方便。比如如果\(AB,B\)的秩相同,則\(ABX=0,BX=0\)同解,則顯然\(ABCX=0,BCX=0\)也同解,故\(ABC,BC\)的秩也相同。用相關性也能證得同樣的結論,但描述略顯繁瑣。式(18)的結論是非常有用的,比如考察矩陣列\(A,A^2,A^3,\cdots\),它們的秩是不升的,故必然存在\(\text{rank}(A^{k+1})=\text{rank}(A^{k})\)。根據式(18)便知,存在\(k\),使得\(m\geqslant k\)時恆有\(\text{rank}(A^m)=\text{rank}(A^k)\)(這個與線性變換中的結論一致)。

\[\text{rank}(AB)=\text{rank}(B)\;\Leftrightarrow\;\text{rank}(ABC)=\text{rank}(BC)\tag{18}\]

  利用線性方程討論矩陣的秩,還有一個非常特殊的例子。先看實系數方程\(A'AX=0\)和\(AX=0\),后者的解空間顯然包含前者,但由\(0=X'A'AX=|AX|^2\)也能得到\(AX=0\)。故它們是同解的,從而有式(19)成立。同樣在復數域,也容易有式(20)成立,它們都是非常重要的結論。

\[A\in\mathbb{R}_n\;\Rightarrow\;\text{rank}(A'A)=\text{rank}(AA')=\text{rank}(A)\tag{19}\]

\[A\in\mathbb{C}_n\;\Rightarrow\;\text{rank}(\bar{A}'A)=\text{rank}(A\bar{A}')=\text{rank}(A)\tag{20}\]

  最后來考察對角占優矩陣\(A\)(\(|a_{ii}|>\sum\limits_{j\ne i}a_{ij}\)),可以用反證法證明它是滿秩的(\(|A|\ne 0\))。否則列向量是線性相關的,即有\(k_1\alpha_1+\cdots+k_n\alpha_n=0\),其中\(k_i\)不全為\(0\)。設\(|k_i|\)是最大的系數,則容易在第\(i\)行導出矛盾。更特別地,如果\(a_{ii}>\sum\limits_{j\ne i}a_{ij}\),還可以證明\(|A|>0\)。這時考察如下矩陣\(B(t)\),由於\(|B(t)|\)是一個多項式,它必然是連續函數。而已知\(|B(0)|>0\),且在\(t\in[0,1]\)上恆有\(|B(t)|\ne 0\),從而必然有\(|A|=|B(1)|>0\)。多項式的連續性在這里再次發揮威力。

\[B(t)=\begin{bmatrix}a_{11}&a_{12}t&\cdots&a_{1n}t\\a_{21}t&a_{22}&\cdots&a_{2n}t\\\vdots&\vdots&\ddots&\vdots\\a_{n1}t&a_{n2}t&\cdots&a_{nn}\end{bmatrix}\tag{21}\]

 

  本系列目錄

    01 - 行列式和矩陣的秩

    02 - 矩陣的逆和相似矩陣

    03 - 二次型和矩陣的分解

    04 - 多項式環

    05 - 線性變換

    06 - 線性函數

  博客總目錄這里

 


【前序學科】 線性代數,微積分,抽象代數

【參考資料】

[1] 《高等代數(上、下)》,丘維聲,2010

  這部上下分冊的高等代數可謂國內最經典的教材之一,上冊基本涵蓋了線性代數的內容,下冊則引入了更多抽象和理論的東西。通篇題材廣泛,例題和習題都十分豐富和具有啟發性。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM