# 何为行列式
行列式,是我们通过一个方阵矩阵能够计算出的一个值。在几何上,它代表对应矩阵所表示的线性变换对单位面积 / 体积的缩放的比例。
我们可以将矩阵 A 的行列式表示为:
det(A),detA,∣A∣
注意其中最后一种表示方式和绝对值表示方式的相似。
行列式可以被用于求解线性方程组,并且在微积分等领域均有相应应用。
# 行列式的计算
# 一阶行列式
我们规定,一阶行列式∣∣∣a∣∣∣=a。
# 二阶行列式
二阶行列式记作如下形式:
∣∣∣∣∣acbd∣∣∣∣∣
其对应的矩阵为:
[acbd]
矩阵对应的线性变换是将列空间从
[1001]
变换为i^=(a,c),j^=(b,d)。
所以,行列式的值为该线性变换所导致的单位面积的变化:ad−bc
# 推导
下述在某轴正方向上移动的距离,均指该向量除原点外的另一个端点的移动。首先,线性变换代表的仅仅是基的替换,它们的起始点仍为原点;其次,线性变换规定原点不能移动,换言之,如果原点移动了,那么该变换不是线性变换。
在此,
a 代表i^ 在x 轴正方向上移动的距离;
c 代表i^ 在y 轴正方向上移动的距离。
类似地,
b 代表j^ 在x 轴正方向上移动的距离;
d 代表j^ 在y 轴正方向上移动的距离。
显然,在变换后,我们可以发现原本由基向量i^,j^ 围成的面积为 1 的正方形被挤压或拉伸,而通过计算并化简之后,可以得出变换后得到的相应的平行四边形的面积为∣∣∣∣∣acbd∣∣∣∣∣,即ad−bc。
具体的内容见 3b1b 的线性代数的本质系列视频。
# 三阶行列式
三阶行列式如:
∣∣∣∣∣∣∣adgbehcfi∣∣∣∣∣∣∣
类似地,其对应矩阵为:
⎣⎢⎡adgbehcfi⎦⎥⎤
类似地,该矩阵也对应一个线性变换。只不过因为显然该矩阵对应的基向量是三维空间中的向量,所以该变换对应的是三维空间中的变换,同时行列式对应的是原体积为 1 的正方体的体积在变换后被放大或缩小成的平行六面体的体积。
由于描述上的麻烦,在此不作推导的解释,但推导原理和二阶行列式的推导原理类似。
总之,三阶行列式的值为
a∣∣∣∣∣ehfi∣∣∣∣∣−b∣∣∣∣∣dgfi∣∣∣∣∣+c∣∣∣∣∣dgeh∣∣∣∣∣
此处使用了行列式的按行展开。
# n 阶行列式
# 推导:排列
为了推导方便,我们将行列式中的元素均替换为aij。其中,i 代表该元素所在的行数,j 代表该元素所在的列数。如下:
∣∣∣∣∣∣∣a11a21a31a12a22a32a13a23a33∣∣∣∣∣∣∣
经过展开并计算,我们可以得出结论:一个n∗n 的行列式的计算中,不合并同类项的情况下,会有n! 个单项式。其中,每个单项式都是n 个元素的乘积。每个单项式中的元素均来自不同行和不同列;换言之,每行 / 每列中只能有一个元素在同一项中。
如果固定列标为标准排序,即1,2,...,n,则各项行标的排列的逆序数决定该项的正负:逆序数为偶,该项为正;逆序数为奇,该项为负。 固定行标同理。
所以,n 阶行列式
∣∣∣∣∣∣∣∣∣a11a21...an1a12a22...an2............a1na2n...ann∣∣∣∣∣∣∣∣∣
的值可以通过Σ(−1)ta1p1a1p2...a1pn 来计算,其中t 是排列p1p2...pn 的逆序数。
# 计算
从上述结论中,我们可以推得上(下)三角行列式的值为a11a22...ann,如下:
∣∣∣∣∣∣∣∣∣a110...0a12a220............0a1na2n...ann∣∣∣∣∣∣∣∣∣=a11a22...ann
此为上三角行列式。
∣∣∣∣∣∣∣∣∣a11a21...an10a22...an2...0......0...0ann∣∣∣∣∣∣∣∣∣=a11a22...ann
下三角行列式同理。
另外,显然对角行列式的值也为a11a22...ann。
∣∣∣∣∣∣∣∣∣a110...00a22...............00...0ann∣∣∣∣∣∣∣∣∣=a11a22...ann
基本上,大多数行列式都可以通过对行(列)的操作将其变换为上述上(下)三角行列式。具体操作方式见下一节。
# 行列式的性质
# 性质 1
行列式与其转置行列式相等。
∣∣∣∣∣∣∣∣∣a11a21...an1a12a22...an2............a1na2n...ann∣∣∣∣∣∣∣∣∣=∣∣∣∣∣∣∣∣∣a11a12...a1na21a22...a2n............an1an2...ann∣∣∣∣∣∣∣∣∣
左侧为原行列式D,右侧为转置后的行列式DT。
由此性质可知,行列式中的行与列具有同等的地位,行列式的性质凡是对行成立的对列同样成立,反之亦然。
# 性质 2
对换行列式的两行(列),行列式变号。
# 推论
如果行列式有两行(列)完全相同,该行列式等于 0。
# 性质 3
行列式的某一行(列)中所有的元素都乘以同一数k,等于用数k 乘以此行列式。
# 推论
行列式中某一行(列)中所有元素的公因子可以提到行列式记号的外面。
# 性质 4
行列式中如果有两行(列)的元素成比例,则此行列式等于 0。
# 性质 5
若行列式的某一行(列)的元素都是两数之和,例如第i 行的元素都是两数之和:
D=∣∣∣∣∣∣∣∣∣∣∣∣∣a11a21...ai1+ai1′...an1a12a22...ai2+ai2′...an2..................a1na2n...ain+ain′...ann∣∣∣∣∣∣∣∣∣∣∣∣∣
则D 等于下列两个行列式之和:
D=∣∣∣∣∣∣∣∣∣∣∣∣∣a11a21...ai1...an1a12a22...ai2...an2..................a1na2n...ain...ann∣∣∣∣∣∣∣∣∣∣∣∣∣+∣∣∣∣∣∣∣∣∣∣∣∣∣a11a21...ai1′...an1a12a22...ai2′...an2..................a1na2n...ain′...ann∣∣∣∣∣∣∣∣∣∣∣∣∣
# 性质 6
把行列式的某一行(列)的各元素乘同一数然后加到另一行(列)对应的元素上去,行列式不变。
# 行列式按行(列)展开
一般来说,低阶行列式的计算比高阶行列式的计算更简便。为了使用低阶行列式来表示高阶行列式的问题,我们引入余子式和代数余子式的概念。
# 余子式和代数余子式
在n 阶行列式中,把(i,j) 元aij 所在的第i 行和第j 列划去后,留下来的n−1 阶行列式叫做(i,j) 元aij 的余子式,记作Mij;记
Aij=(−1)i+jMij
其中Aij 叫做(i,j) 元aij 的代数余子式。
例如一个四阶方阵的行列式是:
∣∣∣∣∣∣∣∣∣1000011000100011∣∣∣∣∣∣∣∣∣
其中,元a23 的余子式M23 是:
∣∣∣∣∣∣∣100010011∣∣∣∣∣∣∣
元a23 的代数余子式A23=(−1)2+3M23。
# 展开为含代数余子式的多项式
通过使用代数余子式,我们可以计算行列式的值。具体而言,对于n 阶行列式,有:
D=∣∣∣∣∣∣∣∣∣∣∣∣∣a11a21...ai1...an1a12a22...ai2...an2..................a1na2n...ain...ann∣∣∣∣∣∣∣∣∣∣∣∣∣=ai1Ai1+ai2Ai2+...+ainAin
上例为行列式的对行展开。对列展开同理。
容易看出,该行(列)中等于 0 的元素个数越多,使用该方法的计算越简单,如:
D=∣∣∣∣∣∣∣∣∣∣∣∣∣a11a21...0...an1..................a1ja2j...aij...anj..................a1na2n...0...ann∣∣∣∣∣∣∣∣∣∣∣∣∣=aijAij
另外,使用其他行(列)的相应元素乘以该行元素对应的代数余子式,得到的结果为 0。即:
∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣a11a21...ai1...aj1...an1a12a22...ai2...aj2...an2........................a1na2n...ain...ajn...ann∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣(i=j)
aj1Ai1+aj2Ai2+...+ajnAin=0
使用上方性质 2 推论可以证明。
# 部分特殊行列式化简技巧
此处提到的特殊行列式指元素排布等性质符合一定特点的行列式。在实际计算中,可以通过适当变换将行列式化为下列行列式之一进行计算,例如升阶法等。
由于KATEX 的排版貌似只支持等号上下分别给一行公式,所以以下计算过程中略写格式均非标准格式。
本节引自此处。
对公式和说明做了一定修改。
# 爪型
指形如
∣∣∣∣∣∣∣∣∣∣∣∣∣a111⋮11a20⋮010⋱⋱………⋱an−1010⋮0an∣∣∣∣∣∣∣∣∣∣∣∣∣
的行列式,即除主对角线、第一列和第一行上元素均不为 0 之外,其余元素均等于 0。
对于该形状的行列式,有固定的化简技巧:
∣∣∣∣∣∣∣∣∣∣∣∣∣a111⋮11a20⋮010⋱⋱………⋱an−1010⋮0an∣∣∣∣∣∣∣∣∣∣∣∣∣=a2a3...an∣∣∣∣∣∣∣∣∣∣∣∣∣a1a21a31⋮an1110⋮010⋱⋱………⋱1010⋮01∣∣∣∣∣∣∣∣∣∣∣∣∣
r1−rii=2,3,...,na2a3...an∣∣∣∣∣∣∣∣∣∣∣∣∣a1−a21−a31−⋯−an1a21a31⋮an1010⋮000⋱⋱………⋱1000⋮01∣∣∣∣∣∣∣∣∣∣∣∣∣
=a2a3...an(a1−a21−a31−⋯−an1)
# 两三角型
指形如
∣∣∣∣∣∣∣∣∣∣∣∣∣a1bb⋮bca2b⋮bcc⋱⋱………⋱an−1bcc⋮can∣∣∣∣∣∣∣∣∣∣∣∣∣
的行列式。
当b=c 时,可以化为上述爪形行列式:
∣∣∣∣∣∣∣∣∣∣∣∣∣a1bb⋮bba2b⋮bbb⋱⋱………⋱an−1bbb⋮ban∣∣∣∣∣∣∣∣∣∣∣∣∣ri−r1i=2,3,...,n∣∣∣∣∣∣∣∣∣∣∣∣∣a1b−a1b−a1⋮b−a1ba2−b0⋮0b0⋱⋱………⋱an−1−b0b0⋮0an−b∣∣∣∣∣∣∣∣∣∣∣∣∣
当b=c 时,使用拆行(列)法:
∣∣∣∣∣∣∣∣∣∣∣∣∣a1bb⋮bca2b⋮bcc⋱⋱………⋱an−1bcc⋮can∣∣∣∣∣∣∣∣∣∣∣∣∣=∣∣∣∣∣∣∣∣∣∣∣∣∣a1bb⋮bca2b⋮bcc⋱⋱………⋱an−1bc+0c+0⋮c+0an+b−b∣∣∣∣∣∣∣∣∣∣∣∣∣
=∣∣∣∣∣∣∣∣∣∣∣∣∣a1bb⋮bca2b⋮bcc⋱⋱………⋱an−1bcc⋮cb∣∣∣∣∣∣∣∣∣∣∣∣∣+∣∣∣∣∣∣∣∣∣∣∣∣∣a1bb⋮bca2b⋮bcc⋱⋱………⋱an−1b00⋮0an−b∣∣∣∣∣∣∣∣∣∣∣∣∣(1)
=∣∣∣∣∣∣∣∣∣∣∣∣a1−cb−c⋮b−c00a2−c⋱…000⋱b−c………⋱an−1−c0cc⋮cb∣∣∣∣∣∣∣∣∣∣∣∣+(an−b)Dn−1
化简得
Dn=b(a1−c)(a2−c)...(an−1−c)+(an−b)Dn−1(2)
如果将(1) 中两行列式第 n 列上的 b 用 c 替换,则可得
Dn=c(a1−b)(a2−b)...(an−1−b)+(an−c)Dn−1(3)
由(2)(3) 整理可得
Dn=b−c1[bi=1∏n(ai−c)−ci=1∏n(ai−b)]
若每行(列)上有公因子,可以尝试将之提出后转化为两三角形行列式;若无法在保持行列式不变的基础上提出,采用升阶法:
∣∣∣∣∣∣∣∣∣∣∣1+x12x2x1x3x1…xnx1x1x21+x22x3x2…xnx2x1x3x2x31+x32…xn+x3……………x1xnx2xnx3xn…1+xn2∣∣∣∣∣∣∣∣∣∣∣
加边升阶可得
∣∣∣∣∣∣∣∣∣∣∣∣∣100000x11+x12x2x1x3x1…xnx1x2x1x21+x22x3x2…xnx2x3x1x3x2x31+x32…xn+x3………………xnx1xnx2xnx3xn…1+xn2∣∣∣∣∣∣∣∣∣∣∣∣∣
ri−xi−1r1i=2,3,...,n+1∣∣∣∣∣∣∣∣∣∣∣∣∣1−x1−x2−x3…−xnx1100…0x2010…0x3001…0………………xn000…1∣∣∣∣∣∣∣∣∣∣∣∣∣
# 两条线型
指形如
∣∣∣∣∣∣∣∣∣∣∣∣∣a1bnb1a2b2a3⋱⋱an−1bn−1an∣∣∣∣∣∣∣∣∣∣∣∣∣(空白处均为0)
按照第一列两个非 0 元素展开即可。
# 范德蒙德型
指有逐行(列)元素按幂递增(减),可以将其转化为范德蒙德行列式来计算,如:
∣∣∣∣∣∣∣∣∣∣∣∣a1na1n⋮a1na1na1n−1b1a1n−1b1⋮a1n−1b1a1n−1b1…………a1b1n−1a1b1n−1⋮a1b1n−1a1b1n−1b1nb1n⋮b1nb1n∣∣∣∣∣∣∣∣∣∣∣∣
=i=1∏n+1ain∣∣∣∣∣∣∣∣∣∣∣∣∣11⋮11a1b1a2b2⋮a1b1a1b1…………(a1b1)n−1(a2b2)n−1⋮(a1b1)n−1(a1b1)n−1(a1b1)n(a2b2)n⋮(a1b1)n(a1b1)n∣∣∣∣∣∣∣∣∣∣∣∣∣
上述行列式即范德蒙德行列式,公式为:
Dn=1≤i<j≤n+1∏(aibj−biaj)
# Hessenberg 型
指除了主(次)对角线及于其相邻的斜线,再加上第一行(列)或第 n 行(列)外,其余元素均为 0。
一般可以将某一行(列)都化简到只有一个非 0 元素,便于降阶计算,如:
∣∣∣∣∣∣∣∣∣∣∣∣∣112−123−2⋱…⋱n−1n−12−nn−1n1−n∣∣∣∣∣∣∣∣∣∣∣∣∣
c1+cii=2,3,...,n∣∣∣∣∣∣∣∣∣∣∣∣∣∣2n(n+1)00⋮002−12⋱…3−2⋱…⋱n−20n−12−nn−1n1−n∣∣∣∣∣∣∣∣∣∣∣∣∣∣
降阶后重复上述步骤可得通式 $$D_n=(-1)^{n-1}\frac {(n+1)!}{2}$$
需要说明的是,上面举的例子比较容易看出如何实施累加消点法就可以实现将某一行 (列) 都化简到只有一个非 0 元素从而达到降阶的目的,但是还有很多 Hessenberg 型行列式并不这么容易就做到,还需要大家找找技巧稍微变换一下,只要始终记得你要用累加消点法来消元来降阶就可以了。
# 三对角型
指形如
∣∣∣∣∣∣∣∣∣∣∣acbacb⋱⋱⋱⋱cba∣∣∣∣∣∣∣∣∣∣∣
的行列式。除上述三条斜线上元素外,其他元素均为 0。展开最后一列,将所得n−1 阶行列式再展开即可得到递推公式:
Dn=aDn−1−bcDn−2
# 各行(列)元素和相等型
例如
∣∣∣∣∣∣∣∣∣∣1+x1x2⋮xnx11+x2⋮xn………x1x2⋮1+xn∣∣∣∣∣∣∣∣∣∣
r1+rii=2,3,...,n∣∣∣∣∣∣∣∣∣∣1+∑i=1nxix2⋮xn1+∑i=1nxi1+x2⋮xn………1+∑i=1nxix2⋮xn∣∣∣∣∣∣∣∣∣∣
=(1+i=1∑nxi)∣∣∣∣∣∣∣∣∣∣1x2⋮xn11+x2⋮xn………1x2⋮xn∣∣∣∣∣∣∣∣∣∣
=1+i=1∑nxi
# 相邻两行对应元素相差 k 倍型
大部分元素为数字,且相邻两行对应元素相差为 1,采用逐步作差的方法,即可出现大量±1 元素,进而出现大量 0 元素
若相邻两行相差 K 倍,采用逐步作 k 倍差得方法,即可出现大量 0 元素
例如
∣∣∣∣∣∣∣∣∣∣∣∣∣∣012⋮n−2n−1101⋮n−3n−2210⋮n−4n−3……………n−2n−3n−4⋮01n−1n−2n−3⋮10∣∣∣∣∣∣∣∣∣∣∣∣∣∣
ri−ri+1i=1,2,...,n−1∣∣∣∣∣∣∣∣∣∣∣∣∣∣−1−1−1⋮−1n−11−1−1⋮−1n−211−1⋮−1n−3……………111⋮−11111⋮10∣∣∣∣∣∣∣∣∣∣∣∣∣∣
ci+c1i=2,...,n∣∣∣∣∣∣∣∣∣∣∣∣∣∣−1−1−1⋮−1n−10−2−2⋮−22n−300−2⋮−22n−4……………000⋮−2n000⋮0n−1∣∣∣∣∣∣∣∣∣∣∣∣∣∣
得
Dn=(−1)n−1(−2)n−2(n−1)
又例如
∣∣∣∣∣∣∣∣∣∣∣∣∣∣1an−1an−2⋮a2aa1an−1⋮a3a2a2a1⋮a4a3……………an−2an−3an−4⋮1an−1an−1an−2an−3⋮a1∣∣∣∣∣∣∣∣∣∣∣∣∣∣
ri−(−a)ri+1i=1,2,...,n−1∣∣∣∣∣∣∣∣∣∣∣∣∣∣1−an00⋮0a01−an0⋮0a2001−an⋮0a3……………000⋮1−anan−1000⋮01∣∣∣∣∣∣∣∣∣∣∣∣∣∣
得
Dn=(1−an)n−1
# 参考资料
- 3Blue1Brown - 线性代数的本质
- 高等教育出版社 - 《线性代数(第六版)》
- 中国人民大学出版社 - 《经济应用数学基础(二)线性代数(第五版)》
- 八大类型行列式及其解法