一、求行列式的方法
计算机是利用主元计算行列式的。本节介绍其它两种计算行列式的方法。一是 “大公式”(big formula),它使用了全部 n!n!n! 个排列计算;二是 “代数余子式公式”(cofactor formula),它使用的是大小为 n−1n-1n−1 的行列式来计算的。下面是一个 4×44\times44×4 矩阵的例子:A=[2−100−12−100−12−100−12]的行列式是detA=5A=\begin{bmatrix}\kern 7pt2&-1&\kern 7pt0&\kern 7pt0\\-1&\kern 7pt2&-1&\kern 7pt0\\\kern 7pt0&-1&\kern 7pt2&-1\\\kern 7pt0&\kern 7pt0&-1&\kern 7pt2\end{bmatrix}\kern 5pt的行列式是\kern 5pt\det A=5A=2−100−12−100−12−100−12的行列式是detA=5我们可以通过以下三种方式来求行列式:主元,大公式,代数余子式。
- 主元的乘积是 2⋅32⋅43⋅542\cdot\displaystyle\frac{3}{2}\cdot\frac{4}{3}\cdot\frac{5}{4}2⋅23⋅34⋅45,消去后得到 555。
- 大公式有 4!=244!=244!=24 项,只有 555 项是非零的:detA=∣2000020000200002∣+∣20000200000−100−10∣+∣200000−100−1000002∣+∣0−100−100000200002∣+∣0−100−1000000−100−10∣=16−4−4−4+1=5\det A=\begin{vmatrix}2&0&0&0\\0&2&0&0\\0&0&2&0\\0&0&0&2\end{vmatrix}+\begin{vmatrix}2&0&\kern 7pt0&\kern 7pt0\\0&2&\kern 7pt0&\kern 7pt0\\0&0&\kern 7pt0&-1\\0&0&-1&\kern 7pt0\end{vmatrix}+\begin{vmatrix} 2&\kern 7pt0&\kern 7pt0&0\\0&\kern 7pt0&-1&0\\0&-1&\kern 7pt0&0\\0&\kern 7pt0&\kern 7pt0&2\end{vmatrix}+\begin{vmatrix}\kern 7pt0&-1&0&0\\-1&\kern 7pt0&0&0\\\kern 7pt0&\kern 7pt0&2&0\\\kern 7pt0&\kern 7pt0&0&2\end{vmatrix}+\begin{vmatrix}\kern 7pt0&-1&\kern 7pt0&\kern 7pt0\\-1&\kern 7pt0&\kern 7pt0&\kern 7pt0\\\kern 7pt0&\kern 7pt0&\kern 7pt0&-1\\\kern 7pt0&\kern 7pt0&-1&\kern 7pt0\end{vmatrix}=16-4-4-4+1=5detA=2000020000200002+20000200000−100−10+200000−100−1000002+0−100−100000200002+0−100−1000000−100−10=16−4−4−4+1=5161616 来自 AAA 的对角线 2⋅2⋅2⋅22\cdot2\cdot2\cdot22⋅2⋅2⋅2,−4-4−4 和 111 来自与后面 444 个行列式。
- 第一行的数字 2,−1,0,02,-1,0,02,−1,0,0 乘上它们自己来自于其它行的余子式 4,3,2,14,3,2,14,3,2,1,得到 2⋅4−1⋅3=52\cdot4-1\cdot3=52⋅4−1⋅3=5。这些余子式是 3×33\times33×3 的行列式,余子式所使用的行和列是第一行的元素未使用的行和列。
行列式的每一项仅适用每行每列一次!
二、主元公式
当用消元法得到 A=LUA=LUA=LU 时,主元 d1,d2,⋯ ,dnd_1,d_2,\cdots,d_nd1,d2,⋯,dn 在上三角矩阵 UUU 的对角线上,如果没有行交换,将主元相乘就可以得到行列式:detA=(detL)(detU)=(1)(d1d2⋯dn)(5.2.1)\det A=(\det L)(\det U)=(1)(d_1d_2\cdots d_n)\kern 30pt(5.2.1)detA=(detL)(detU)=(1)(d1d2⋯dn)(5.2.1)这个公式是没有行交换的情况下,如果发生行交换,则公式中会出现置换矩阵,变成 PA=LUPA=LUPA=LU,而 PPP 的行列式是 −1-1−1 或 +1+1+1。
(detP)(detA)=(detL)(detU)得到detA=±(d1d2⋯dn)(5.2.2)(\det P)(\det A)=(\det L)(\det U)\kern 10pt得到\kern 10pt{\color{blue}\det A=±(d_1d_2\cdots d_n)}\kern 25pt(5.2.2)(detP)(detA)=(detL)(detU)得到detA=±(d1d2⋯dn)(5.2.2)
【例1】一次行交换可以得到主元 4,2,14,2,14,2,1 和重要的负号:A=[001023456]PA=[456023001]detA=−(4)(2)(1)=−8A=\begin{bmatrix}0&0&1\\0&2&3\\4&5&6\end{bmatrix}\kern 10ptPA=\begin{bmatrix}4&5&6\\0&2&3\\0&0&1\end{bmatrix}\kern 10pt\det A=-(4)(2)(1)=-8A=004025136PA=400520631detA=−(4)(2)(1)=−8行交换是奇数次(一次)则 detP=−1\det P=-1detP=−1。
下一个例子没有行交换,这是一个 n×nn\times nn×n 的矩阵,主元可以得到它的行列式,行列式也可以得到主元。
【例2】三角矩阵 AAA 的前几个主元是 2,32,432,\displaystyle\frac{3}{2},\frac{4}{3}2,23,34,后面的是 54\displaystyle\frac{5}{4}45 和 65\displaystyle\frac{6}{5}56,最终是 n+1n\displaystyle\frac{n+1}{n}nn+1。分解这个 n×nn\times nn×n 的矩阵就可以看出行列式:[2−1−12−1−12⋅⋅⋅−1−12]=[1−121−231⋅⋅−n−1n1][2−132−143−1⋅⋅n+1n]\begin{bmatrix}\kern 7pt2&-1&\\-1&\kern 7pt2&-1&\\&-1&\kern 7pt2&\cdot\\&&\cdot&\cdot&-1\\&&&-1&\kern 7pt2\end{bmatrix}=\begin{bmatrix}\kern 7pt1&\\-\frac{1}{2}&\kern 7pt1&\\&-\frac{2}{3}&1\\&&\cdot&\cdot\\&&-\frac{n-1}{n}&1\end{bmatrix}\begin{bmatrix}\pmb2&-1\\&\pmb{\frac{3}{2}}&-1\\&&\pmb{\frac{4}{3}}&-1\\&&&\cdot&\cdot\\&&&&\pmb{\frac{n+1}{n}}\end{bmatrix}2−1−12−1−12⋅⋅⋅−1−12=1−211−321⋅−nn−1⋅12−123−134−1⋅⋅nn+1主元在 UUU(最后一个矩阵)的对角线,当 222 和 32\displaystyle\frac{3}{2}23 和 43\displaystyle\frac{4}{3}34 和 54\displaystyle\frac{5}{4}45 乘起来,分数消去,则 4×44\times44×4 矩阵的行列是 555,3×33\times33×3 矩阵的行列式是 444。n×nn\times nn×n 矩阵的行列式是 n+1n+1n+1:−1,2,−1 矩阵detA=(2)(32)(43)⋯(n+1n)=n+1\pmb{-1,2,-1\,矩阵}\kern 15pt\det A=(\pmb2)(\pmb{\frac{3}{2}})(\pmb{\frac{4}{3}})\cdots(\pmb{\frac{n+1}{n}})=\pmb{n+1}−1,2,−1矩阵detA=(2)(23)(34)⋯(nn+1)=n+1重点:前面的主元仅和原始矩阵 AAA 的左上角有关。这条规则适用于所有不需要行交换的矩阵。
前 k 个主元来自于A 左上角的 k×k 矩阵Ak。左上角子矩阵Ak的行列式是 d1d2⋯dk(前 k 个主元)。前\,k\,个主元来自于A\,左上角的\,k\times k\,矩阵A_k。\\\pmb{左上角子矩阵A_k的行列式是\,d_1d_2\cdots d_k(前\,k\,个主元)。}前k个主元来自于A左上角的k×k矩阵Ak。左上角子矩阵Ak的行列式是d1d2⋯dk(前k个主元)。1×11\times11×1 的矩阵 A1A_1A1 仅包含第一个主元 d1d_1d1,就是 detA1\det A_1detA1;左上角 2×22\times 22×2 的矩阵有 detA2=d1d2\det A_2=d_1d_2detA2=d1d2;最终 n×nn\times nn×n 的行列式就是所有主元相乘。
当开始处理整个矩阵时,我们对左上角的矩阵 AkA_kAk 进行消元,假设没有行交换 —— 则 A=LUA=LUA=LU 且 Ak=LkUkA_k=L_kU_kAk=LkUk。一个行列式除以前一个行列式(AkA_kAk 除以 Ak−1A_{k-1}Ak−1)可以消去除最后一个主元 dkd_kdk 以外的所有主元。每个主元都是行列式的比值:
从行列式得到主元第 k 个主元是 dk=d1d2⋯dkd1d2⋯dk−1=detAkdetAk−1(5.2.3)\pmb{从行列式得到主元}\kern 15pt第\,k\,个主元是\,\pmb{d_k}=\frac{d_1d_2\cdots d_k}{d_1d_2\cdots d_{k-1}}={\color{blue}\frac{\det A_k}{\det A_{k-1}}}\kern 15pt(5.2.3)从行列式得到主元第k个主元是dk=d1d2⋯dk−1d1d2⋯dk=detAk−1detAk(5.2.3)
当所有左上角的子矩阵都有 detAk≠0\det A_k\neq0detAk=0,则就不需要行交换。
三、行列式的大公式
主元很好计算,它们有能够求出行列式的足够多的信息。但是它很难和原始的 aija_{ij}aij 联系起来。我们回到规则 1−2−31-2-31−2−3,线性、符号反转和 detI=1\det I=1detI=1 就能够让这一问题变得清晰起来。我们要推导出一个确切的行列式公式,它直接由元素 aija_{ij}aij 得来。
这个公式有 n!n!n! 项。项数会增加的非常快,因为 n!=1,2,6,24,120,⋯n!=1,2,6,24,120,\cdotsn!=1,2,6,24,120,⋯,若 n=11n=11n=11 那么会有接近四千万项。n=2n=2n=2 时,这两项分别是 adadad 和 bcbcbc,半数的项是负号(如 −bc-bc−bc),半数的项是正数(如 ababab)。当 n=3n=3n=3 时,则有 3!=(3)(2)(1)=63!=(3)(2)(1)=63!=(3)(2)(1)=6 项,这六项如下:
3×3 行列式∣a11a12a13a21a22a23a31a32a33∣=+a11a22a33+a12a23a31+a13a21a32−a11a23a32−a12a21a33−a13a22a31(5.2.4)3\times3\,行列式\kern 20pt\begin{vmatrix}a_{11}&a_{12}&a_{13}\\a_{21}&a_{22}&a_{23}\\a_{31}&a_{32}&a_{33}\end{vmatrix}={\color{blue}\begin{matrix}+a_{11}a_{22}a_{33}+a_{12}a_{23}a_{31}+a_{13}a_{21}a_{32}\\-a_{11}a_{23}a_{32}-a_{12}a_{21}a_{33}-a_{13}a_{22}a_{31}\end{matrix}}\kern 15pt(5.2.4)3×3行列式a11a21a31a12a22a32a13a23a33=+a11a22a33+a12a23a31+a13a21a32−a11a23a32−a12a21a33−a13a22a31(5.2.4)
注意这个模式,每个乘积如 a11a23a32a_{11}a_{23}a_{32}a11a23a32 有来自每一行的一个元素,也有来自每一列的一个元素。列的顺序 1,3,21,3,21,3,2 表示这个特定的项符号是负号,a13a21a32a_{13}a_{21}a_{32}a13a21a32 的列序 3,1,23,1,23,1,2 则为正号。由这种 “排列” 顺序可以得到符号。
下一步(n=4n=4n=4)有 4!=244!=244!=24 项,因为有 242424 种方式从每一行和每一列选择一个元素。沿着主对角线,a11a22a33a44a_{11}a_{22}a_{33}a_{44}a11a22a33a44 的列序 1,2,3,41,2,3,41,2,3,4 总是正号,这是单位排列(identity permutation)。
我们从 n=2n=2n=2 开始推导大公式(big formula),目的是用系统的方法得到 ad−bcad-bcad−bc。将每一行分成两个简单的行:[ab]=[a0]+[0b],[cd]=[c0]+[0d]\begin{bmatrix}a &b\end{bmatrix}=\begin{bmatrix}a&0\end{bmatrix}+\begin{bmatrix}0&b\end{bmatrix},\kern 10pt\begin{bmatrix}c&d\end{bmatrix}=\begin{bmatrix}c&0\end{bmatrix}+\begin{bmatrix}0&d\end{bmatrix}[ab]=[a0]+[0b],[cd]=[c0]+[0d]现在利用线性性质,首先用在第 111 行(第 222 行固定),然后用在第 222 行(第 111 行固定):∣abcd∣=∣a0cd∣+∣0bcd∣(分解第 1 行)=∣a0c0∣+∣a00d∣+∣0bc0∣+∣0b0d∣(分解第 2 行)(5.2.5)\begin{vmatrix}a&b\\c&d\end{vmatrix}=\begin{vmatrix}a&0\\c&d\end{vmatrix}+\begin{vmatrix}0&b\\c&d\end{vmatrix}\kern 106pt(分解第\,1\,行)\kern 83pt\\=\begin{vmatrix}a&0\\c&0\end{vmatrix}+\begin{vmatrix}a&0\\0&d\end{vmatrix}+\begin{vmatrix}0&b\\c&0\end{vmatrix}+\begin{vmatrix}0&b\\0&d\end{vmatrix}\kern 20pt(分解第\,2\,行)\kern 20pt(5.2.5)acbd=ac0d+0cbd(分解第1行)=ac00+a00d+0cb0+00bd(分解第2行)(5.2.5)最后一行有 22=42^2=422=4 个行列式,第一个和第四个都是零,因为其中一行是另一行的倍数,最后剩下 2!=22!=22!=2 个行列式需要计算:∣a00d∣+∣0bc0∣=ad∣1001∣+bc∣0110∣=ad−bc\begin{vmatrix}a&0\\0&d\end{vmatrix}+\begin{vmatrix}0&b\\c&0\end{vmatrix}=ad\begin{vmatrix}1&0\\0&1\end{vmatrix}+bc\begin{vmatrix}0&1\\1&0\end{vmatrix}=ad-bca00d+0cb0=ad1001+bc0110=ad−bc最后得到置换矩阵,它们的行列式提供正号或负号,置换矩阵可以看出列序。上述列序就是 (1,2)(1,2)(1,2) 和 (2,1)(2,1)(2,1)。
下面试一下 n=3n=3n=3 的情况。每一行都分成 333 个简单的行,例如 [a1100]\begin{bmatrix}a_{11}&0&0\end{bmatrix}[a1100]。再利用每一行的线性,可以将 detA\det AdetA 分成 33=273^3=2733=27 个简单的行列式。如果列的选择重复了,例如又选择了一行 [a2100]\begin{bmatrix}a_{21}&0&0\end{bmatrix}[a2100],那么这个行列式就为零。
我们只需要注意元素 aija_{ij}aij 是来自于不同列的情况,如 (3,1,2)(3,1,2)(3,1,2):
∣a11a12a13a21a22a23a31a32a33∣=∣a11a22a33∣+∣a12a23a31∣+∣a13a21a32∣\begin{vmatrix}a_{11}&a_{12}&a_{13}\\a_{21}&a_{22}&a_{23}\\a_{31}&a_{32}&a_{33}\end{vmatrix}=\color{blue}\begin{vmatrix}a_{11}&&\\&a_{22}&\\&&a_{33}\end{vmatrix}+\begin{vmatrix}&a_{12}&\\&&a_{23}\\a_{31}\end{vmatrix}+\begin{vmatrix}&&a_{13}\\a_{21}\\&a_{32}\end{vmatrix}a11a21a31a12a22a32a13a23a33=a11a22a33+a31a12a23+a21a32a13六项+∣a11a23a32∣+∣a12a21a33∣+∣a13a22a31∣\pmb{六项}\kern 56pt\color{blue}+\begin{vmatrix}a_{11}\\&&a_{23}\\&a_{32}\end{vmatrix}+\begin{vmatrix}&a_{12}\\a_{21}\\&&a_{33}\end{vmatrix}+\begin{vmatrix}&&a_{13}\\&a_{22}\\a_{31}\end{vmatrix}六项+a11a32a23+a21a12a33+a31a22a13
总共有 3!=63!=63!=6 种列的顺序,所以有 666 个行列式。(1,2,3)(1,2,3)(1,2,3) 的这 666 种排列方式包括来自于 P=IP=IP=I 的单位排列 (1,2,3)(1,2,3)(1,2,3)。列的顺序=(1,2,3),(2,3,1),(3,1,2),(1,3,2),(2,1,3),(3,2,1)(5.2.6)\pmb{列的顺序}=(1,2,3),(2,3,1),(3,1,2),(1,3,2),(2,1,3),(3,2,1)\kern 20pt(5.2.6)列的顺序=(1,2,3),(2,3,1),(3,1,2),(1,3,2),(2,1,3),(3,2,1)(5.2.6)后三个是奇排列(一次交换),前三个是偶排列(000 或 222 次交换)。当列序是 (3,1,2)(3,1,2)(3,1,2) 时,选择的元素是 a13a21a32a_{1\pmb3}a_{2\pmb1}a_{3\pmb2}a13a21a32,这项特定的列序符号是正号(222 次交换)。现在 AAA 的行列式可以分解成 666 个简单的行列式,提出因子 aija_{ij}aij:detA=a11a22a33∣111∣+a12a23a31∣111∣+a13a21a32∣111∣\det A=a_{11}a_{22}a_{33}\begin{vmatrix}1\\&1\\&&1\end{vmatrix}+a_{12}a_{23}a_{31}\begin{vmatrix}&1\\&&1\\1\end{vmatrix}+a_{13}a_{21}a_{32}\begin{vmatrix}&&1\\1\\&1\end{vmatrix}\kern 70ptdetA=a11a22a33111+a12a23a31111+a13a21a32111+a11a23a32∣111∣+a12a21a33∣111∣+a13a22a31∣111∣(5.2.7)+a_{11}a_{23}a_{32}\begin{vmatrix}1\\&&1\\&1\end{vmatrix}+a_{12}a_{21}a_{33}\begin{vmatrix}&1\\1\\&&1\end{vmatrix}+a_{13}a_{22}a_{31}\begin{vmatrix}&&1\\&1\\1\end{vmatrix}\kern 10pt(5.2.7)+a11a23a32111+a12a21a33111+a13a22a31111(5.2.7)前三个(偶)排列的行列式 detP=+1\det P=+1detP=+1,后三个(奇)排列的行列式 detP=−1\det P=-1detP=−1。我们已经使用系统的方法证明了 3×33\times33×3 的公式。
下面看 n×nn\times nn×n 的公式。列序共有 n!n!n! 种,列 (1,2,3,⋯ ,n)(1,2,3,\cdots,n)(1,2,3,⋯,n) 的每一种可能的顺序 (α,β,⋯ ,ω)(\alpha,\beta,\cdots,\omega)(α,β,⋯,ω),从行 111 取 a1αa_{1\alpha}a1α,从行 222 取 a2βa_{2\beta}a2β,最后从行 nnn 取 anωa_{n\omega}anω,行列式包含乘积 a1αa2β⋯anωa_{1\alpha}a_{2\beta}\cdots a_{n\omega}a1αa2β⋯anω 乘上 +1+1+1 或 −1-1−1,半数的列序符号是 −1-1−1。
AAA 的行列式是这 n!n!n! 项简单行列式的和,简单行列式 a1αa2β⋯anωa_{1\alpha}a_{2\beta}\cdots a_{n\omega}a1αa2β⋯anω 选择的是来自于每行每列的一个元素。对于 5×55\times55×5 的情况,a15a22a33a44a51a_{15}a_{22}a_{33}a_{44}a_{51}a15a22a33a44a51 这一项有 detP=−1\det P=-1detP=−1,仅一次交换 555 和 111。
detA=所有 n! 个列排列 P=(α,β,⋯ ,ω)=∑(detP)a1αa2β⋯anω=BIG FORMULA(5.2.8)\det A=所有\,n! \,个列排列\,P=(\alpha,\beta,\cdots,\omega)\\={\color{blue}\sum(\det P)a_{1\alpha}a_{2\beta}\cdots a_{n\omega}}=\textrm{\pmb{BIG\,\,FORMULA}}\kern 20pt(5.2.8)detA=所有n!个列排列P=(α,β,⋯,ω)=∑(detP)a1αa2β⋯anω=BIGFORMULA(5.2.8)
这个就是行列式的大公式(Big Formula)。2×22\times22×2 的情形是 +a11a22−a12a21+a_{11}a_{22}-a_{12}a_{21}+a11a22−a12a21(就是 ad−bcad-bcad−bc),这里 PPP 是 (1,2)(1,2)(1,2) 和 (2,1)(2,1)(2,1)。
3×33\times 33×3 的情形有 333 个 “右斜下”(down to right)的乘积和三个 “左斜下”(down to left)的乘积。警告:这个模式在 4×44\times44×4 的情形是不适用的,这种模式只能选取 888 项,但是实际是需要 242424 项。
【例3】(UUU 的行列式)当 UUU 是上三角,n!n!n! 个乘积中只有一个不为零,这一项就是对角线的乘积:detU=+u11u22⋯unn\det U=+u_{11}u_{22}\cdots u_{nn}detU=+u11u22⋯unn。其它的列序至少有一个元素在对角线下方,UUU 的这些元素都是零。例如 u21=0u_{21}=0u21=0,由方程(5.1.8)知该项一定为零。
detI=0\det I=0detI=0,唯一非零项是对角线的 +(1)(1)⋯(1)+(1)(1)\cdots(1)+(1)(1)⋯(1)。
【例4】假设 ZZZ 除了第 333 列都是单位矩阵,有Z 的行列式=∣10a001b000c000d1∣是 c(5.2.9)Z\,的行列式=\begin{vmatrix}1&0&\pmb a&0\\0&1&\pmb b&0\\0&0&\pmb c&0\\0&0&\pmb d&1\end{vmatrix}是\,c\kern 25pt(5.2.9)Z的行列式=10000100abcd0001是c(5.2.9)主对角线这一项 (1)(1)(c)(1)(1)(1)(c)(1)(1)(1)(c)(1) 符号为正。总共有 4!=244!=244!=24 项乘积(每行每列选择一个因子),但是其它 232323 项都是零。原因:如果从列 333 中选择 a,ba,ba,b 或 ddd 的话,则列 333 已经使用了,那么行 333 就只剩下 000 可以使用。
另一个原因:如果 c=0c=0c=0,则 ZZZ 有一个零行,所以 detZ=c=0\det Z=c=0detZ=c=0。如果 ccc 不为零,利用消元法,从其它行减去乘数乘上行 333,可以消去 a,b,ca,b,ca,b,c,就只留下一个对角矩阵,有 detZ=c\det Z=cdetZ=c。
改变 III 的一列可以很容易得到 ZZZ 的行列式,它仅来自于主对角线。
【例5】假设 AAA 仅在主对角线的上方和下方都是 111,这里 n=4n=4n=4:A=[0100101001010010],P=[0100100000010010]的行列式都为 1A=\begin{bmatrix}0&\pmb1&0&0\\\pmb1&0&\pmb1&0\\0&\pmb1&0&\pmb1\\0&0&\pmb1&0\end{bmatrix},\kern 12ptP=\begin{bmatrix}0&\pmb1&0&0\\\pmb1&0&0&0\\0&0&0&\pmb1\\0&0&\pmb1&0\end{bmatrix}的行列式都为\,1A=0100101001010010,P=0100100000010010的行列式都为1行 111 非零的选择只能是列 222,行 444 非零的选择只能是列 333,则 行 222 和行 333 就只能选择列 111 和列 444。换句话说就是 detP=detA\det P=\det AdetP=detA。PPP 的行列式是 +1+1+1(两次行交换得到列序 2,1,4,32,1,4,32,1,4,3),因此 detA=+1\det A=+1detA=+1。
四、代数余子式求行列式
公式 (5.2.8) 是行列式的直接定义,它一次性给了所有信息 —— 但是需要将它都理解,毕竟这 n!n!n! 个和项都需要满足规则 1−2−31-2-31−2−3(也就会满足性质 4−104-104−10 了)。最简单的是 detI=1\det I=1detI=1,这个已经验证好了。
当将第一行的因子 a11,a12a_{11},a_{12}a11,a12 和 a13a_{13}a13 提取出来,就可以看到线性性质。对于 3×33\times33×3 的矩阵,可以将行列式的 666 项分成 333 对:
detA=a11(a22a33−a23a32)+a12(a23a31−a21a33)+a13(a21a32−a22a31)(5.2.10)\det A=\pmb{a_{11}}{\color{blue}(a_{22}a_{33}-a_{23}a_{32})}+\pmb{a_{12}}{\color{blue}(a_{23}a_{31}-a_{21}a_{33})}+\pmb{a_{13}}{\color{blue}(a_{21}a_{32}-a_{22}a_{31})}\kern 15pt(5.2.10)detA=a11(a22a33−a23a32)+a12(a23a31−a21a33)+a13(a21a32−a22a31)(5.2.10)
括号中的 333 项称为 “代数余子式”(cofactor),注意这里前面不需要加 algebra,余子式的英文是 minor。这 333 项代数余子式都是来自 222 行与 333 行的 2×22\times22×2 的行列式,第一行提供了因子 a11,a12,a13a_{11},a_{12},a_{13}a11,a12,a13,下面的行贡献了代数余子式 C11,C12,C13C_{11},C_{12},C_{13}C11,C12,C13。当然行列式 a11C11+a12C12+a13C13a_{11}C_{11}+a_{12}C_{12}+a_{13}C_{13}a11C11+a12C12+a13C13 与 a11,a12,a13a_{11},a_{12},a_{13}a11,a12,a13 有线性关系,这就是规则 333。
a11a_{11}a11 的代数余子式是 C11=a22a33−a23a32C_{11}=a_{22}a_{33}-a_{23}a_{32}C11=a22a33−a23a32,从下面的分解中就可以看出来代数余子式:∣a11a12a13a21a22a23a31a32a33∣=∣a11a22a23a32a33∣+∣a12a21a23a31a33∣+∣a13a21a22a31a32∣\begin{vmatrix}a_{11}&a_{12}&a_{13}\\a_{21}&a_{22}&a_{23}\\a_{31}&a_{32}&a_{33}\end{vmatrix}=\begin{vmatrix}a_{11}\\&a_{22}&a_{23}\\&a_{32}&a_{33}\end{vmatrix}+\begin{vmatrix}&a_{12}\\a_{21}&&a_{23}\\a_{31}&&a_{33}\end{vmatrix}+\begin{vmatrix}&&a_{13}\\a_{21}&a_{22}\\a_{31}&a_{32}\end{vmatrix}a11a21a31a12a22a32a13a23a33=a11a22a32a23a33+a21a31a12a23a33+a21a31a22a32a13我们仍然可以选择来自于每一行每一列的一个元素,因为 a11a_{11}a11 使用了第 111 行和第 111 列,所以就剩下一个 2×22\times22×2 的行列式当它的代数余子式。
行列式中需要一直关注符号,跟着 a12a_{12}a12 的 2×22\times 22×2 的行列式虽说看起来是 a21a33−a23a31a_{21}a_{33}-a_{23}a_{31}a21a33−a23a31,但是它的代数余子式 C12C_{12}C12 与这个行列式的符号相反,a12C12a_{12}C_{12}a12C12 才是正确的 3×33\times33×3 行列式。代数余子式的符号沿着第一行的模式是 “正-负-正-负”。划掉第 111 行和第 jjj 列得到一个大小是 (n−1)×(n−1)(n-1)\times(n-1)(n−1)×(n−1) 的子矩阵 M1jM_{1j}M1j,它的行列式乘上符号 (−1)1+j(-1)^{1+j}(−1)1+j 就得到代数余子式:行 1 的代数余子式是 C1j=(−1)1+jdetM1j行\,1\,的代数余子式是\,C_{1j}=(-1)^{1+j}\det M_{1j}行1的代数余子式是C1j=(−1)1+jdetM1j代数余子式扩展是detA=a11C11+a12C12+⋯+a1nC1n(5.2.11)\pmb{代数余子式扩展是\det A=a_{11}C_{11}+a_{12}C_{12}+\cdots+a_{1n}C_{1n}}\kern 15pt(5.2.11)代数余子式扩展是detA=a11C11+a12C12+⋯+a1nC1n(5.2.11)在大公式(5.2.8)中,a11a_{11}a11 乘上一些项的组合 C11=detM11C_{11}=\det M_{11}C11=detM11,它的符号是 (−1)1+1(-1)^{1+1}(−1)1+1,即是正号。式 (5.2.11)是式(5.2.8)和(5.2.10)的另一种形式,来自第 111 行的因子乘上只用到其它行的代数余子式。
注: 行 111 是这样,那么行 iii 也一样。某一行的元素 aija_{ij}aij 也有代数余子式 CijC_{ij}Cij,它们是 (−1)i+j(-1)^{i+j}(−1)i+j 乘上 n−1n-1n−1 阶的行列式,因为 aija_{ij}aij 使用了行 iii 和列 jjj,子矩阵 MijM_{ij}Mij 会移除行 iii 和列 jjj。下面展示 a43a_{43}a43 和 M43M_{43}M43(行 444 和列 333 被移掉了),符号 (−1)4+3(-1)^{4+3}(−1)4+3 乘上行列式 M43M_{43}M43 得到 C43C_{43}C43,符号矩阵展示了 ±±± 号的模式:A=[∙∙∙∙∙∙∙∙∙a43]符号(−1)i+j=[+−+−−+−++−+−−+−+]A=\begin{bmatrix}\bullet&\bullet&&\bullet\\\bullet&\bullet&&\bullet\\\bullet&\bullet&&\bullet\\&&a_{43}\end{bmatrix}\kern 15pt符号\kern 5pt(-1)^{i+j}=\begin{bmatrix}+&-&+&-\\-&+&-&+\\+&-&+&-\\-&+&-&+\end{bmatrix}A=∙∙∙∙∙∙a43∙∙∙符号(−1)i+j=+−+−−+−++−+−−+−+
行列式是 AAA 的任意行 iii 与其它行的代数余子式的点积:代数余子式公式COFACTOR FORMULAdetA=ai1Ci1+ai2Ci2+⋯+ainCin(5.2.12)\pmb{代数余子式公式\kern 3pt\textrm{COFACTOR\,\,\,FORMULA}}\kern 15pt{\color{blue}\det A=a_{i1}C_{i1}+a_{i2}C_{i2}+\cdots+a_{in}C_{in}}\kern 14pt(5.2.12)代数余子式公式COFACTORFORMULAdetA=ai1Ci1+ai2Ci2+⋯+ainCin(5.2.12)每个代数余子式 CijC_{ij}Cij(阶数是 n−1n-1n−1,去除掉行 iii 和列 jjj)包含它正确的符号:代数余子式CofactorCij=(−1)i+jdetMij\pmb{代数余子式\kern 4pt\textrm{Cofactor}}\kern 10pt{\color{blue}C_{ij}=(-1)^{i+j}\det M_{ij}}代数余子式CofactorCij=(−1)i+jdetMij
一个 nnn 阶行列式是 n−1n-1n−1 阶行列式的组合,继续递归下去,每个子行列式再分解成 n−2n-2n−2 阶行列式的组合。通过式(5.2.12)我们可以定义所有的行列式,这个规则从阶数 nnn 到 n−1n-1n−1 到 n−2n-2n−2 最终到阶数 111,定义 1×11\times11×1 的行列式 ∣a∣|a|∣a∣ 是数字 aaa,则使用代数余子式的方法定义行列式就完成了。
我们更偏向于从行列式的性质来构建 AAA(线性,符号反转,detI=1\det I=1detI=1),大公式(5.2.8)和代数余子式公式(5.2.10)–(5.2.12)也遵循这些性质。使用规则得到的最后一个公式 detA=detAT\det A=\det A^TdetA=detAT,我们也可以使用代数余子式将它扩展,此时是沿着一列而不是一行。沿着列 jjj 的元素是 a1ja_{1j}a1j 到 anja_{nj}anj,代数余子式是 C1jC_{1j}C1j 到 CnjC_{nj}Cnj,行列式就是下面的点积:沿着列 j 的代数余子式:detA=a1jC1j+a2jC2j+⋯+anjCnj(5.2.13)\pmb{沿着列\,j\,的代数余子式:}\kern 13pt\det A=a_{1j}C_{1j}+a_{2j}C_{2j}+\cdots+a_{nj}C_{nj}\kern 13pt(5.2.13)沿着列j的代数余子式:detA=a1jC1j+a2jC2j+⋯+anjCnj(5.2.13)当矩阵有很多零时,代数余子式很有用 —— 如下例子:
【例6】−1,2,−1-1,2,-1−1,2,−1 矩阵在第一行仅有两个非零值,所以仅有两个和行列式相关的代数余子式 C11C_{11}C11 和 C12C_{12}C12,下面会将 C12C_{12}C12 加粗:∣2−1−12−1−12−1−12∣=2∣2−1−12−1−12∣−(−1)∣−1−12−1−12∣(5.2.14)\begin{vmatrix}\kern 7pt2&-1\\\pmb{-1}&\kern 7pt2&\pmb{-1}\\&-1&\kern 7pt\pmb2&\pmb{-1}\\&&\pmb{-1}&\kern 7pt\pmb{2}\end{vmatrix}=2\begin{vmatrix}\kern 7pt2&-1\\-1&\kern 7pt2&-1\\&-1&\kern 7pt2\end{vmatrix}-(-1)\begin{vmatrix}\pmb{-1}&\pmb{-1}\\&\kern 7pt\pmb2&\pmb{-1}\\&\pmb{-1}&\kern 7pt\pmb2\end{vmatrix}\kern 12pt(5.2.14)2−1−12−1−12−1−12=22−1−12−1−12−(−1)−1−12−1−12(5.2.14)右侧的第一项是 222 乘上 C11C_{11}C11,C11C_{11}C11 移除了第 111 行和第 111 列,代数余子式 C11C_{11}C11 与原始矩阵 AAA 有着相同的 −1,2,−1-1,2,-1−1,2,−1 的模式,它仅大小变小了一阶。
要计算上面加粗的代数余子式 C12C_{12}C12,沿着第一列使用代数余子式,最上面的是唯一一个非零数,这里又得到了另外一个 (−1)(-1)(−1)(所以前面要加上负号),它的代数余子式是一个 2×22\times22×2 的 −1,2,−1-1,2,-1−1,2,−1 行列式,比原始的 AAA 小了二阶。
总结:每个 nnn 阶行列式 DnD_nDn 都可由 Dn−1D_{n-1}Dn−1 和 Dn−2D_{n-2}Dn−2 得到:D4=2D3−D2一般式Dn=2Dn−1−Dn−2(5.2.15)D_4=2D_3-D_2\kern 11pt一般式\kern 5pt{\color{blue}D_n=2D_{n-1}-D_{n-2}}\kern 12pt(5.2.15)D4=2D3−D2一般式Dn=2Dn−1−Dn−2(5.2.15)直接计算 D2=3D_2=3D2=3,D3=4D_{3}=4D3=4,所以式(5.2.14)有 D4=2(4)−3=5D_4=2(4)-3=5D4=2(4)−3=5,行列式 3,4,53,4,53,4,5 符合公式 Dn=n+1D_{n}=n+1Dn=n+1,则 Dn=2n−(n−1)D_n=2n-(n-1)Dn=2n−(n−1)。这种 “特殊三对角答案”(special tridiagonal answer)用例 2 的主元乘积也可以得到。
【例7】下面这个矩阵,除了第一个元素(左上角)是 111,其它和例 666 一样:B4=[1−1−12−1−12−1−12]B_4=\begin{bmatrix}\kern 7pt1&-1\\-1&\kern 7pt2&-1\\&-1&\kern 7pt2&-1\\&&-1&\kern 7pt2\end{bmatrix}B4=1−1−12−1−12−1−12这个矩阵的所有主元都是 111,所以行列式是 111。那么如何用代数余子式计算呢?将其沿第一行展开,所有的代数余子式都和例 666 一致,仅仅是 a11=2a_{11}=2a11=2 变成了 b11=1b_{11}=1b11=1:detB4=D3−D2而不是detA4=2D3−D2\det B_4=D_3-D_2\kern 11pt而不是\kern 11pt\det A_4=2D_3-D_2detB4=D3−D2而不是detA4=2D3−D2B4B_4B4 的行列式是 4−3=14-3=14−3=1,每个 Bn=n−(n−1)=1B_n=n-(n-1)=1Bn=n−(n−1)=1。
如果将最后一个 222 改成 111,则 det=0\det =0det=0。
五、主要内容总结
- 如果没有行交换,detA=(主元的乘积)\det A=(主元的乘积)detA=(主元的乘积),在 AAA 的左上角,detAk=(前 k 个主元的乘积)\det A_k=(前\,k\,个主元的乘积)detAk=(前k个主元的乘积)。
- 大公式(5.2.8)中的每一项使用每行每列一次。n!n!n! 个项中的一半符号是正(此时 detP=+1\det P=+1detP=+1),一半的符号是负。
- 代数余子式 CijC_{ij}Cij 是 (−1)i+j(-1)^{i+j}(−1)i+j 乘上去掉 iii 行 jjj 列的小一点的行列式(因为 aija_{ij}aij 使用了这一行和这一列)。
- AAA 的行列式是它任意行与该行的代数余子式的点积。如果 AAA 有很多零的话,则只需要很少的代数余子式。
六、例题
【例8】海森堡矩阵(Hessenberg matrix)是一个多了一个对角线的三角矩阵。对第 111 行使用代数余子式证明 4×44\times44×4 的行列式满足斐波那契(Fibonacci)规则 ∣H4∣=∣H3∣+∣H2∣|H_4|=|H_3|+|H_2|∣H4∣=∣H3∣+∣H2∣。相同的规则适用于所有的大小,∣Hn∣=∣Hn−1∣+∣Hn−2∣|H_n|=|H_{n-1}|+|H_{n-2}|∣Hn∣=∣Hn−1∣+∣Hn−2∣。∣Hn∣|H_n|∣Hn∣ 等于哪个斐波那契数呢?H2=[2112]H3=[21121112]H4=[2112111211112]H_2=\begin{bmatrix}2&1\\1&2\end{bmatrix}\kern 10ptH_3=\begin{bmatrix}2&1\\1&2&1\\1&1&2\end{bmatrix}\kern 10ptH_4=\begin{bmatrix}2&1\\1&2&1\\1&1&2&1\\1&1&1&2\end{bmatrix}H2=[2112]H3=21112112H4=2111121112112解: H4H_4H4 的代数余子式 C11C_{11}C11 是行列式 ∣H3∣|H_3|∣H3∣,还需要一个代数余子式 C12C_{12}C12:C12=−∣110121112∣=−∣210121112∣+∣100121112∣C_{12}=-\begin{vmatrix}\pmb1&\pmb1&\pmb0\\\pmb1&\pmb2&\pmb1\\\pmb1&\pmb1&\pmb2\end{vmatrix}=-\begin{vmatrix}2&1&0\\1&2&1\\1&1&2\end{vmatrix}+\begin{vmatrix}1&0&0\\1&2&1\\1&1&2\end{vmatrix}C12=−111121012=−211121012+111021012保持第 222 行和第 333 行不变,使用了第 111 行的线性性质。右侧的两个行列式是 −∣H3∣-|H_3|−∣H3∣ 和 +∣H2∣+|H_2|+∣H2∣。所以 4×44\times44×4 的行列式就是∣H4∣=2C11+1C12=2∣H3∣−∣H3∣+∣H2∣=∣H3∣+∣H2∣|H_4|=2C_{11}+1C_{12}=2|H_3|-|H_3|+|H_2|=|H_3|+|H_2|∣H4∣=2C11+1C12=2∣H3∣−∣H3∣+∣H2∣=∣H3∣+∣H2∣实际数字 ∣H1∣=2|H_1|=2∣H1∣=2,∣H2∣=3|H_2|=3∣H2∣=3,∣H3∣=5|H_3|=5∣H3∣=5,∣H5∣=8|H_5|=8∣H5∣=8。因为 ∣Hn∣=2,3,5,8,⋯|H_n|=2,3,5,8,\cdots∣Hn∣=2,3,5,8,⋯ 遵循斐波那契规则 ∣Hn−1∣+∣Hn−2∣|H_{n-1}|+|H_{n-2}|∣Hn−1∣+∣Hn−2∣,则必有 ∣Hn∣=Fn+2|H_n|=F_{n+2}∣Hn∣=Fn+2。
【例9】下面的问题是关于 detA\det AdetA 的大公式里的 ±±± 号(PPP 是奇数还是偶数):
- 如果 AAA 是 10×1010\times1010×10 的全 111 矩阵,用大公式如何得到 detA=0?\det A=0?detA=0?
- 如果所有 n!n!n! 个排列乘在一起得到一个 PPP,那么 PPP 是奇数还是偶数 ???
- 如果每一项 aija_{ij}aij 都乘以分数 i/ji/ji/j,为什么 detA\det AdetA 不变?
解:
- 由于所有的 aij=1a_{ij}=1aij=1,所以大公式(5.2.8)中所有的乘积都是 111,而半数符号是正,半数符号是负,它们加起来后都会消去,所以 detA=0\det A=0detA=0。(如果 n>1n>1n>1,则所有全 111 矩阵都是奇异的。)
- 乘积 [1001][0110]\begin{bmatrix}1&0\\0&1\end{bmatrix}\begin{bmatrix}0&1\\1&0\end{bmatrix}[1001][0110] 是一个奇排列,对于 3×33\times 33×3 的情形,333 个奇排列乘在一起还是奇排列(顺序无关)。但是对于 n>3n>3n>3 的情形,所有奇排列的乘积是偶数。这是因为有 n!/2n!/2n!/2 个奇排列,因为 n!n!n! 是 444 的倍数,所以这些奇排列的乘积会是一个偶数。
- 每个 aija_{ij}aij 乘上分数 i/ji/ji/j,所以大公式中的每个乘积 a1αa2β⋯anωa_{1\alpha}a_{2\beta}\cdots a_{n\omega}a1αa2β⋯anω 会乘上所有的行数字 i=1,2,⋯ ,ni=1,2,\cdots,ni=1,2,⋯,n 然后除以所有的列数字 j=1,2,⋯ ,nj=1,2,\cdots,nj=1,2,⋯,n(这个列序是某种排列)。这样每个乘积都不变所以 detA\det AdetA 也不会变。
另一种方法:要 iii 乘上行 iii,相当于对角矩阵 D=diag(1:n)D=\textrm{\pmb{diag}}(1:n)D=diag(1:n) 乘上矩阵 AAA;同样列 jjj 除以 jjj,相当于右乘 D−1D^{-1}D−1。根据行列式的乘积规则,detDAD−1=detA\det DAD^{-1}=\det AdetDAD−1=detA。