以组合定义为出发点的行列式理论的引入方式在很多高等代数或线性代数的教材中被采用, 其优缺点同样明显. 组合定义形式上的简单是其最大的优点, 用它可以简洁地证明行列式的所有性质, 并快速进入行列式的计算等核心内容. 因此, 对于一学期设置的线性代数课程, 通常都是采用组合定义引入行列式. 然而, 组合定义实质上的复杂却是困扰学生理解的主要因素, 特别是对初学者而言, 由全排列的逆序数决定单项式的符号, 当阶数大于等于 4 时完全失去了直观想象的空间. 当然, 随着行列式学习的不断深入, 相信学生最终还是能完全理解和掌握组合定义的. 复旦大学高等代数教材是先引入行列式的递归定义, 然后用数学归纳法证明行列式的所有性质, 最后再给出行列式的组合定义. 从教学效果来看, 学生对这种引入方式接受程度较高, 但可能需要更多的学时.
本文是复旦高代教材第 1.6 节“行列式的等价定义”的补充, 即阐述如何从行列式的组合定义出发, 推出行列式的所有性质及其递归定义. 另外, 作为组合定义的一个应用, 我们还将证明: 偶数阶反对称阵 A 的行列式 |A|=Pf(A)2, 其中 Pf(A) 是反对称阵 A 的 Pfaffian 多项式. 下面我们给出两点注解, 它们可使本文的所有结论在一般的域 F 上都成立.
注 1 在高等代数课程中, 我们通常是在数域 K 上考虑问题. 由于数域 K 是复数域 C 的子域, 故其特征为零. 进入抽象代数课程后, 我们通常是在一般的域 F 上考虑问题, 有时甚至会在环 R 上考虑问题. 那么我们可以自然地问: 高等代数中的定理和结论是否在一般的域 F 上也成立呢? 作为一个简单的例子, 我们将从组合定义出发来给出一般的域 F 上的行列式理论. 为了得到这一推广, 我们必须避免域的特征的讨论, 因此在推导过程中, 我们会完全避免形如“|A|=−|A|⟹|A|=0”或“m|A|=0⟹|A|=0”的论断出现, 其中 m 是某个非零整数. 基于同样的原因, 反对称阵的定义也修改为:
A=(aij)n×n 为反对称阵 ⟺ aii=0(∀1≤i≤n) 并且 aij=−aji(∀1≤i<j≤n).
注 2 在行列式性质的证明过程中, 我们常把一般的方阵 A=(aij)∈Mn(F)≅Fn2 的元素 aij 看成是 n2 个未定元, 并把 |A| 看成是关于未定元 aij 的多元多项式. 这种思想并非第一次使用, 它已在 Laplace 定理的证明过程中起到了关键的作用 (参考复旦高代教材第 1.7 节).
从现在开始, 所有的定义和结论都在一般的域 F 上进行阐述和证明.
定义 1 (行列式的组合定义) 设方阵 A=(aij)∈Mn(F), 则 A 的行列式定义为 |A|=∑(i1,i2,⋯,in)∈Sn(−1)N(i1,i2,⋯,in)ai11ai22⋯ainn, 其中 Sn 是 {1,2,⋯,n} 的所有全排列构成的集合, N(i1,i2,⋯,in) 是全排列 (i1,i2,⋯,in) 的逆序数 (逆序数的定义参考复旦高代教材中的定义 1.6.1). 在注 2 的意义下, ai11ai22⋯ainn 称为行列式 |A| 中的单项, 它从 A 的每行每列各取一个元素相乘得到, (−1)N(i1,i2,⋯,in) 称为这个单项的符号. 容易看出: 当 n≥2 时, 符号为 ±1 的单项各为一半, 即 12n! 个.
引理 2 设 (i1,i2,⋯,in), (j1,j2,⋯,jn)∈Sn, 则单项 ai1j1ai2j2⋯ainjn 在 |A| 中的符号为 (−1)N(i1,i2,⋯,in)+N(j1,j2,⋯,jn).
证明 由复旦高代教材中的引理 1.6.3, (j1,j2,⋯,jn) 经过 N(j1,j2,⋯,jn) 次相邻对换可变为 (1,2,⋯,n). 若将 il 黏贴在 jl 上 (1≤l≤n), 则可设 (i1,i2,⋯,in) 经过上述 N(j1,j2,⋯,jn) 次相邻对换后变为 (k1,k2,⋯,kn). 因此单项 ai1j1ai2j2⋯ainjn 实际上也是单项 ak11ak22⋯aknn, 从而其在 |A| 中的符号为 N(k1,k2,⋯,kn). 另一方面, 由复旦高代教材中的引理 1.6.1, 逆序数 N(i1,i2,⋯,in) 的奇偶性经过 N(j1,j2,⋯,jn) 次改变后与 N(k1,k2,⋯,kn) 的奇偶性相同, 因此 (−1)N(k1,k2,⋯,kn)=(−1)N(i1,i2,⋯,in)+N(j1,j2,⋯,jn). □
推论 3 假设和记号同定义 1, 则 |A|=∑(j1,j2,⋯,jn)∈Sn(−1)N(j1,j2,⋯,jn)a1j1a2j2⋯anjn.
证明 显然每个 a1j1a2j2⋯anjn 都是 |A| 中的单项, 由引理 2 知, 它在 |A| 中的符号为 (−1)N(1,2,⋯,n)+N(j1,j2,⋯,jn)=(−1)N(j1,j2,⋯,jn). 因为 a1j1a2j2⋯anjn 作为单项互不相同, 共有 n! 个, 所以它们遍历 |A| 中所有的单项且符号一致, 从而上述等式成立. □
我们沿用定义 1 中的假设和记号, 下面依次证明行列式的 8 条性质.
性质 1 设 |A| 是上 (下) 三角行列式, 则 |A|=a11a22⋯ann.
证明 先设 A 为上三角阵, 即 aij=0(∀i>j), 则在 |A| 的组合定义中, 可能非零的单项 ai11ai22⋯ainn 必须满足 i1≤1, i2≤2, ⋯, in≤n. 因为 (i1,i2,⋯,in)∈Sn, 故只可能是 i1=1, i2=2, ⋯, in=n, 即 |A| 的单项中只有一个可能非零, 从而 |A|=a11a22⋯ann. 同理可证下三角阵的情形. □
性质 8 行列式转置后的值不变, 即 |A′|=|A|.
证明 由定义 1 和推论 3 可得: |A′|=∑(j1,j2,⋯,jn)∈Sn(−1)N(j1,j2,⋯,jn)a1j1a2j2⋯anjn=|A|.□
我们也可以将推论 3 当作 |A| 的组合定义, 它与定义 1 中的组合定义相差一个转置. 由性质 8, 在余下诸性质的证明中, 我们只要证明列的情形即可.
性质 2 若 |A| 的某一行或某一列的元素全为 0, 则 |A|=0.
证明 设 |A| 的第 j 列全为 0, 则 aijj=0(∀1≤ij≤n), 于是每个单项 ai11⋯aijj⋯ainn=0, 从而 |A|=0. □
性质 3 将 |A| 的某一行或某一列乘以一个常数 c, 则得到的行列式 |B|=c|A|.
证明 设 |A| 的第 j 列乘上了常数 c, 则 |B| 中每个单项为 ai11⋯(caijj)⋯ainn=c⋅ai11⋯aijj⋯ainn, 从而 |B|=c|A|. □
性质 4 对换 |A| 的任意不同的两行或两列, 则得到的行列式 |B|=−|A|.
证明 设 |A| 的第 i 列和第 j 列互换, 则 |A| 中每个单项 ak11⋯akii⋯akjj⋯aknn 与 |B| 中单项 ak11⋯akjj⋯akii⋯aknn 相等, 但它们的符号由 N(k1,⋯,ki,⋯,kj,⋯,kn) 变为 N(k1,⋯,kj,⋯,ki,⋯,kn). 由复旦高代教材中的引理 1.6.1 可知, 逆序数的奇偶性发生改变, 因此 |B|=−|A|. □
性质 5 若 |A| 的两行或两列成比例, 则 |A|=0. 特别地, 若 |A| 的两行或两列相同, 则 |A|=0.
证明 由性质 3 只要证 |A| 的第 i 列和第 j 列相同的情形即可. 设 |A| 的所有单项构成的集合为 S, 考虑映射 φ:S→S, ak11⋯akii⋯akjj⋯aknn↦ak11⋯akji⋯akij⋯aknn. 显然 φ2=IdS, 从而 φ 是一个双射. 又由于 ki≠kj(i≠j), 故 φ 不会把一个单项映成它自己. 因此 φ 将 |A| 中 n! 个单项分成具有上述形式的两个单项组成的 12n! 个组. 注意到上述两个单项的符号由 N(k1,⋯,ki,⋯,kj,⋯,kn) 与 N(k1,⋯,kj,⋯,ki,⋯,kn) 决定, 由复旦高代教材中的引理 1.6.1 可知, 两个逆序数的奇偶性相反. 又由假设可知 akii=akij, akji=akjj, 故上述两个单项的值相等, 符号相反, 从而每组和为 0, 于是 |A|=0. □
性质 6 若 |A| 的某一行或某一列的每个元素都可写成两个数之和, 则将 |A| 按照这一行或这一列拆分成两个行列式 |B| 和 |C|, 此时 |A|=|B|+|C|.
证明 设 |A| 的第 j 列分解为 aij=bij+cij(1≤i≤n), 按照第 j 列拆分成行列式 |B| 和 |C|, 则 A 的单项 ak11⋯akjj⋯aknn=ak11⋯(bkjj+ckjj)⋯aknn =ak11⋯bkjj⋯aknn+ak11⋯ckjj⋯aknn, 是 |B|,|C| 的单项之和, 又符号保持一致, 从而 |A|=|B|+|C|. □
性质 7 将 |A| 的某一行或某一列乘以常数 c 加到另一行或另一列上, 行列式的值不变.
证明 由性质 6 和性质 5 即得. □
推论 4 (行列式的递归定义) |A| 可以按照第一行或第一列进行展开, 即 |A|=a11M11−a21M21+⋯+(−1)n+1an1Mn1,|A|=a11M11−a12M12+⋯+(−1)n+1a1nM1n, 其中 Mij 是元素 aij 的余子式.
证明 对阶数 n 进行归纳. 当 n=1 时, 结论显然成立. 设结论对 n−1 阶行列式成立, 现证 n 阶行列式的情形. 由行列式的组合定义可知 |A|=∑(i1,i2,⋯,in)∈Sn(−1)N(i1,i2,⋯,in)ai11ai22⋯ainn =n∑i=1ai1(∑(i,i2,⋯,in)∈Sn(−1)N(i,i2,⋯,in)ai22⋯ainn). 在全排列 (i,i2,⋯,in) 中, i 点的逆序数为 i−1, 故由逆序数的定义可知 N(i,i2,⋯,in)=(i−1)+N(i2,⋯,in). 因此 |A|=n∑i=1(−1)i+1ai1(∑(i2,⋯,in)∈Sn−1(−1)N(i2,⋯,in)ai22⋯ainn). 由归纳假设 ∑(i2,⋯,in)∈Sn−1(−1)N(i2,⋯,in)ai22⋯ainn=Mi1, 于是 |A|=n∑i=1(−1)i+1ai1Mi1. □
我们进一步证明: 行列式可以按照任何一行或任何一列进行展开.
定理 5 设 Aij 是元素 aij 的代数余子式, 则对任意的 1≤i,j≤n, 成立: ai1Aj1+ai2Aj2+⋯+ainAjn=δij|A|,a1iA1j+a2iA2j+⋯+aniAnj=δij|A|, 其中 δij 是 Kronecker 记号.
证明 由行列式的性质和推论 4 即得, 这一推导过程可在复旦高代教材上找到. □
我们接下去研究反对称阵的行列式.
命题 6 设 A 是奇数阶反对称阵, 则 |A|=0.
证明 由于 A 的主对角元全为 0, 故只考虑单项: T={ak11ak22⋯aknn∣ki≠i(∀1≤i≤n)}. 定义映射 φ:T→T, ak11ak22⋯aknn↦a1k1a2k2⋯ankn. 显然 φ2=IdT, 于是 φ 是一个双射. 断言: ak11ak22⋯aknn 和 a1k1a2k2⋯ankn 作为 |A| 的单项不相同, 否则 {1,2,⋯,n} 必可分成若干对 (i1,j1), ⋯, (il,jj), 使得 ak11ak22⋯aknn=ai1j1aj1i1⋯ailjlajlil, 这与 n 为奇数矛盾. 将上述两个单项看成一组, 则由引理 2 知, 它们在 |A| 中符号相同. 由于 A 反对称, 故 a1k1a2k2⋯ankn=(−1)nak11ak22⋯aknn=−ak11ak22⋯aknn, 从而每组和为 0, 于是 |A|=0. □
为了处理偶数阶反对称阵的情形, 我们先利用行列式的性质证明一个引理.
引理 7 设 A=(aij)∈M2n(F) 为反对称阵, 则 |A|=f2, 其中 f 是关于 aij(i<j) 的某个多项式.
证明 对阶数 2n 进行归纳. 当 n=1 时, A=(0a12−a120), |A|=a212, 结论成立. 设结论对 2(n−1) 阶反对称阵成立, 现证 2n 阶反对称阵的情形. 若 |A|=0, 结论显然成立. 以下不妨设 |A|≠0, 即 A 是 2n 阶非异反对称阵.
设 Cij 是去掉 A 的第 i 行和第 j 列的 2n−1 阶子阵, Cij,ij 是去掉 A 的第 i,j 行和第 i,j 列的 2(n−1) 阶子阵. 显然, 对任意的 i,j, Cii 和 Cij,ij 都是反对称阵. 设 A∗ 为 A 的伴随阵, 则由定理 5 可知 AA∗=A∗A=|A|I2n. 由 Lapalce 定理可推出 Cauchy-Binet 公式, 由此即得 |A∗|=|A|2n−1. 考虑如下矩阵乘积: ⎛⎜
⎜
⎜
⎜
⎜
⎜
⎜⎝010⋯0100⋯0a31a32a33⋯a3,2n⋮⋮⋮⋮a2n,1a2n,2a2n,3⋯a2n,2n⎞⎟
⎟
⎟
⎟
⎟
⎟
⎟⎠⋅⎛⎜
⎜
⎜
⎜
⎜
⎜
⎜⎝A11A21A31⋯A2n,1A12A22A32⋯A2n,2A13A23A33⋯A2n,3⋮⋮⋮⋮A1,2nA2,2nA3,2n⋯A2n,2n⎞⎟
⎟
⎟
⎟
⎟
⎟
⎟⎠=⎛⎜
⎜
⎜
⎜
⎜
⎜
⎜⎝A12A22A32⋯A2n,2A11A21A31⋯A2n,100|A|⋯0⋮⋮⋮⋮000⋯|A|⎞⎟
⎟
⎟
⎟
⎟
⎟
⎟⎠, 取行列式即得 −|C12,12|⋅|A|2n−1=(A12A21−A11A22)⋅|A|n−2. 由于 C11,C22 是奇数阶反对称阵, 故由命题 6 可知 A11=A22=0. 又 C12=−C′21, 故 A12=−A21, 从而 A212=|C12,12|⋅|A|, 即 A12=√|C12,12|⋅|A| (平方根可根据情况取正负号). 对任意的 i<j, 同理可证 Aij=√|Cij,ij|⋅|A|.
按 A 的第一行进行展开可得 |A|=2n∑j=2a1jA1j=2n∑j=2a1j√|C1j,1j|⋅|A|, 于是 √|A|=2n∑j=2a1j√|C1j,1j|. 因为 C1j,1j 是 2(n−1) 阶反对称阵, 由归纳假设存在关于 aij(i<j) 的多项式 f1j, 使得 |C1j,1j|=f21j, 故有上式可得 |A|=(2n∑j=2a1jf1j)2. □
引理 7 比较粗糙的原因是: 在几次开平方的过程中, 我们不能确定如何取正负号. 这一点将在定理 9 中加以改进, 直至符号完全确定. 为了阐述定理 9, 我们先给出偶数阶反对称阵的 Pfaffian 多项式的定义.
定义 8 设 A2n={(i1,j1,i2,j2,⋯,in,jn)∈S2n∣i1<j1,i2<j2,⋯,in<jn,i1<i2<⋯<in}, 我们可以证明 ♯A2n=(2n−1)!!=(2n−1)(2n−3)⋯1. 事实上, i1 只能取 1, 于是 j1 有 2n−1 种取法; i1,j1 确定之后, i2 只能取剩下元素中最小者, 于是 j2 有 2n−3 种取法; 由此类推, 即得上述结论. 显然, 常序排列 (1,2,3,4,⋯,2n−1,2n) 属于 A2n.
设 A=(aij) 为 2n 阶反对称阵, 则 Pf(A)=∑(i1,j1,i2,j2,⋯,in,jn)∈A2n(−1)N(i1,j1,i2,j2,⋯,in,jn)ai1j1ai2j2⋯ainjn 称为 A 的 Pfaffian 多项式, 这是一个关于 aij(i<j) 的整系数多项式. 等价地, 我们也可以把 Pfaffian 多项式写成如下的形式 (它的验证留给读者): Pf(A)=12nn!∑(i1,i2,i3,i4,⋯,i2n−1,i2n)∈S2n(−1)N(i1,i2,i3,i4,⋯,i2n−1,i2n)ai1i2ai3i4⋯ai2n−1i2n.
定理 9 设 A=(aij) 为 2n 阶反对称阵, 则 |A|=Pf(A)2.
证明 我们称由常序排列 (1,2,3,4,⋯,2n−1,2n) 决定的单项 a12a34⋯a2n−1,2n 为常序单项. 由引理 7 的证明过程不难发现: √|A| 的表达式中含有常序单项, 其符号为 1 或 −1. 为方便起见, 我们记包含符号等于 1 的常序单项的 |A| 的那个平方根为 Qr(A), 则由引理 7 的证明过程可得 Qr(A)=2n∑j=2(−1)tja1jQr(C1j,1j).⋯⋯(1) 下面我们将用数学归纳法同时证明以下三个结论: tj≡j(mod2),∀j≥2,⋯⋯(2)Qr(A)=Pf(A),⋯⋯(3)Qr(Pi,i+1APi,i+1)=−Qr(A),∀1≤i≤2n−1,⋯⋯(4) 其中 Pi,i+1 表示将第 i 行和第 i+1 行对换的第一类初等阵. 当 n=1 时, 容易验证 (2), (3) 和 (4) 都成立. 设这三个结论对 2n−2 阶反对称阵成立, 我们来证 2n 阶反对称阵的情形. 因为 (3)2n−2 成立, 所以 Qr(C1j,1j)=Pf(C1j,1j) 中的所有单项都不是同类项, 并且 a1jQr(C1j,1j)(2≤j≤2n) 中的所有单项都不是同类项. 任取 i>2, 设 B=Pi,i+1APi,i+1, B 中删除第 i,j 行和第 i,j 列的子阵记为 Dij,ij. 显然, B 也是反对称阵且 |B|=|A|. 由 (1) 可得: Qr(A)=a12Qr(C12,12)+⋯+(−1)tia1iQr(C1i,1i)+(−1)ti+1a1,i+1Qr(C1i+1,1i+1)+⋯, 对 B 应用 (1) 可得 Qr(B)=a12Qr(D12,12)+⋯+(−1)tia1,i+1Qr(D1i,1i)+(−1)ti+1a1,iQr(D1i+1,1i+1)+⋯. 由 |B|=|A| 可知 Qr(B)=±Qr(A), 再由 (4)2n−2 可知 a12Qr(D12,12)=−a12Qr(C12,12), 从而 Qr(B)=−Qr(A). 注意到 D1i,1i=C1i+1,1i+1, D1i+1,1i+1=C1i,1i, 故比较对应单项的符号可得 ti+1≡ti+1(mod2) 对任意的 i>2 都成立. 再设 B=P23AP23, 则由 (1) 可得: Qr(A)=a12Qr(C12,12)+(−1)t3a13Qr(C13,13)+⋯+(−1)tia1,iQr(C1i,1i)+⋯,Qr(B)=a13Qr(D12,12)+(−1)t3a12Qr(D13,13)+⋯+(−1)tia1,iQr(D1i,1i)+⋯, 其中 3<i≤2n. 由 |B|=|A| 可知 Qr(B)=±Qr(A), 再由 (4)2n−2 可知 a1iQr(D1i,1i)=−a1iQr(C1i,1i), 从而 Qr(B)=−Qr(A). 注意到 D12,12=C13,13, D13,13=C12,12, 故比较对应单项的符号可得 t3≡1(mod2), 于是 tj≡j(mod2) 对任意的 j≥2 成立, 即 (2)2n 成立. 综合 (1) 和 (3)2n−2 可得 Qr(A)=2n∑j=2a1jQr(C1j,1j)=2n∑j=2a1jPf(C1j,1j)=2n∑j=2a1j(∑A2n−2(−1)N(i2,j2,⋯,in,jn)ai2j2⋯ainjn)=2n∑j=2,A2n−2(−1)N(1,j,i2,j2,⋯,in,jn)a1jai2j2⋯ainjn=∑A2n(−1)N(i1,j1,i2,j2,⋯,in,jn)ai1j1ai2j2⋯ainjn=Pf(A), 即 (3)2n 成立 (注意: N(1,j,i2,j2,⋯,in,jn)=j−2+N(i2,j2,⋯,in,jn)). 由 (3)2n 可直接验证 Qr(P12AP12)=−Qr(A) 成立, 从而 (4)2n 也成立, 这就完成了所有的证明. 特别地, 我们可以得到 |A|=Qr(A)2=Pf(A)2. □
例 10 设 4 阶反对称阵 A=⎛⎜
⎜
⎜⎝0abc−a0de−b−d0f−c−e−f0⎞⎟
⎟
⎟⎠, 则 A4={(1,2,3,4),(1,3,2,4),(1,4,2,3)}, Pf(A)=af−be+cd, 于是由定理 9 可得 |A|=Pf(A)2=(af−be+cd)2.
注 3 利用反对称阵的 Pfaffian 多项式表示, 可以直接证明: 实反对称阵的行列式非负, 以及反对称整数矩阵的行列式是某个整数的平方, 这些都是反对称阵的常见结果. 另外, Pfaffian 还有一些常见的性质, 例如: Pf(P′AP)=det(P)Pf(A), 其中 A 是 2n 阶反对称阵, P 是同阶非异阵.
注 4 反对称阵的 Pfaffian 多项式表示还有其他的证明方法, 例如 [2]--[5]. 本文的证明方法仅利用了行列式的组合定义以及多元多项式的性质, 因此在适当地添补一些细节之后, 本文的结论也可以推广到带单位元的交换环 R 上, 有兴趣的读者可以自行完成相关的细节.
参考文献
[1] 高代教材: 姚慕生, 吴泉水, 谢启鸿 编著, 高等代数学 (第三版), 复旦大学出版社, 2014.
[2] 普罗斯库烈柯夫, 线性代数习题集, 问题 543--545.
[3] D. Serre, Matrices Theory and Applications, §3.9.
[4] S. Winitzki, Linear Algebra via Exterior Products, §5.8.
[5] H. W. Haber, Notes on Antisymmetric Matrices and the Pfaffian, Theorem 2.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决