【高等代数】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}\]
【前序学科】 线性代数,微积分,抽象代数
【参考资料】
[1] 《高等代数(上、下)》,丘维声,2010
这部上下分册的高等代数可谓国内最经典的教材之一,上册基本涵盖了线性代数的内容,下册则引入了更多抽象和理论的东西。通篇题材广泛,例题和习题都十分丰富和具有启发性。