下面介绍两种行列式的计算方法
之前说过三个基本性质:
- 单位阵的 d e t ( I ) = 1 det(\mathbf I)=1 det(I)=1
- 交换行列式的两行,行列式正负反号
- 关于“线性性质”
①矩阵某一行元素乘以k,行列式变为k倍: ∣ t a t b c d ∣ = t ∣ a b c d ∣ \left|\right|=t\left|" role="presentation" style="position: relative;"> t a t b c d \right| ∣ ∣tactbd∣ ∣=t∣ ∣acbd∣ ∣" role="presentation" style="position: relative;"> a b c d
②行列式的“行”有线性性(强调一行,而非整个行列式有线性性): ∣ a + a ′ b + b ′ c d ∣ = ∣ a b c d ∣ + ∣ a ′ b ′ c d ∣ \left|\right|=\left|" role="presentation" style="position: relative;"> a + a ′ b + b ′ c d \right|+\left|" role="presentation" style="position: relative;"> a b c d \right| ∣ ∣a+a′cb+b′d∣ ∣=∣ ∣acbd∣ ∣+∣ ∣a′cb′d∣ ∣" role="presentation" style="position: relative;"> a ′ b ′ c d
由此,一般 n × n n\times n n×n行列式的计算,可以拆分为 n n n^n nn个[含有 n n n个非零元素]的行列式(这些行列式通过行交换,可以轻易计算出其值,就是所有对角线元素相乘,最多需要前面添一个负号)
具体而言,由性质3②,先是拆分第一行(得到 n n n个行列式),在拆分第二行(之前的每个行列式又拆分出 n n n个行列式)…
例如:
∣
a
b
c
d
∣
=
∣
a
0
c
d
∣
+
∣
0
b
c
d
∣
=
∣
a
0
c
0
∣
+
∣
a
0
0
d
∣
+
∣
0
b
c
0
∣
+
∣
0
b
0
d
∣
=
0
+
a
d
−
b
c
+
0
=
a
d
−
b
c
提炼一般规律:最终分解后,有全零行/全零列的行列式都必然为0,故拆分时只需要关注「每行/每列都有非零元素」的“有用”行列式
根据上面的讨论,
n
×
n
n\times n
n×n行列式的计算,最终可以拆分为
n
!
n!
n!个[含有
n
n
n个非零元素]的行列式
(通过拆分本来可以得到
n
n
n^n
nn个行列式,但其中有很多必然为0,只有
n
!
n!
n!个行列式是「每行/每列都有非零元素」的“有用”行列式,也就是说其值不是一定为0)
具体而言,选取其中某个行列式时,先从第一行确定一个非零元素(第一行拆分出 n n n个行列式),然后从第二行确定一个非零元素(不能与之前非零元素处于同一列,从而每个行列式又拆分出 n − 1 n-1 n−1个行列式),以此类推
行列式的公式表示为
det
(
A
)
=
∑
n
!
±
a
1
α
a
2
β
a
3
γ
⋯
a
n
ω
\det (\boldsymbol{A}) = \sum\limits_{n!} { \pm {a_{1\alpha }}} {a_{2\beta }}{a_{3\gamma }} \cdots {a_{n\omega }}
det(A)=n!∑±a1αa2βa3γ⋯anω
其中
(
α
,
β
,
γ
,
.
.
.
,
ω
)
(\alpha,\beta,\gamma,...,\omega)
(α,β,γ,...,ω)为列号
(
1
,
2
,
3
,
.
.
.
,
n
)
(1,2,3,...,n)
(1,2,3,...,n)的一个排列,每一项
±
\pm
±取正号/负号 取决于 通过偶数次/奇数次行交换能够得到对角阵
例如下面的行列式,只可能拆分出两个“有用”行列式,第一个需要一次行交换得到对角阵,第二个需要两次行交换得到对角阵:
∣ 0 0 1 1 0 1 1 0 1 1 0 0 1 0 0 1 ∣ = ∣ 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 ∣ + ∣ 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 ∣ = − 1 + 1 = 0 \left|\right|= \left|" role="presentation" style="position: relative;"> 0 0 1 1 0 1 1 0 1 1 0 0 1 0 0 1 \right| +\left|" role="presentation" style="position: relative;"> 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 \right|=-1+1=0 ∣ ∣0011011011001001∣ ∣=∣ ∣0010010010000001∣ ∣+∣ ∣0001001001001000∣ ∣=−1+1=0" role="presentation" style="position: relative;"> 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0
代数余子式将 n n n列行列式的计算转化为多个 n − 1 n-1 n−1阶行列式的计算,同时也从另一角度表述了上面进行的拆分
本质上还是利用上面的思想,若从第一行开始拆分,一旦选定第一行的某个元素 a 1 α a_{1\alpha } a1α,(将要与 a 1 α a_{1\alpha } a1α相乘的)剩余因子只能从剩下的 n − 1 n-1 n−1行和 n − 1 n-1 n−1列中选出,按照之前的做法实施进一步拆分后得到若干行列式,即 ∑ ( n − 1 ) ! ± a 1 α a 2 β a 3 γ ⋯ a n ω \sum\limits_{(n-1)!}{ \pm {a_{1\alpha }}} {a_{2\beta }}{a_{3\gamma }} \cdots {a_{n\omega }} (n−1)!∑±a1αa2βa3γ⋯anω,提取公因子 a 1 α a_{1\alpha } a1α,另一部分称为代数余子式Cofactor,其值具体是什么呢?
这里直接给出结论:
剩余的
n
−
1
n-1
n−1行和
n
−
1
n-1
n−1列的行列式是
a
i
j
a_{ij}
aij的余子式minor
将要与
a
i
j
a_{ij}
aij相乘的另一部分因子就是 [余子式+正负号] 称为
a
i
j
a_{ij}
aij的代数余子式
C
i
j
C_{ij}
Cij,
C
i
j
C_{ij}
Cij在
i
+
j
i+j
i+j为偶数/奇数时取正/负
行列式的代数余子式表示为
det
(
A
)
=
a
11
C
11
+
a
12
C
12
+
⋯
+
a
1
n
C
1
n
\operatorname{det}(\boldsymbol{A})=a_{11} \mathrm{C}_{11}+a_{12} \mathrm{C}_{12}+\cdots+a_{1 \mathrm{n}} \mathrm{C}_{1 \mathrm{n}}
det(A)=a11C11+a12C12+⋯+a1nC1n
上式是沿第一行展开的结果,实际上可以沿任意一行/一列展开
之前说过,最简单的方法是主元表达式