行列式简介
行列式定义了矩阵的可逆性,可以衡量线性变换对几何体面积或体积的影响,是线性代数中的关键工具。它不仅用于判断线性方程组是否有唯一解,还在特征值问题、几何变换、物理和工程计算中有广泛应用。
1. 计算 3×3 矩阵的行列式
我们在
2.2 节矩阵的逆中讲解
二阶矩阵的可逆性判定时介绍过二阶行列式。
二阶矩阵 A=[acbd] 的行列式可以表示为:
detA=ad−bc。下面我们来推导如何求解
3×3 矩阵
A3×3=[aij] 的行列式,为了确保我们能够顺利地进行初等行变换,我们令
a11=0 ,请观察下面的推导过程:
经过上面的推导,可得三阶矩阵
A3×3 行列式为:
Δ=a11a22a33+a12a23a31+a13a21a32−a11a23a32−a12a21a33−a13a22a31(1) 对这个行列式进一步推导,可得:
Δ=a11(a22a33−a23a32)−a12(a21a33−a23a31)+a13(a21a32−a22a31)=a11det[a22a32a23a33]−a12det[a21a31a23a33]+a13det[a21a31a22a32]=a11⋅detA11−a12⋅detA12+a13⋅A13 其中,
A11,
A12 和
A13 是由
A 删去第一行和对应的列而得到的,请观察下面的过程:
2. n 阶矩阵的行列式递归定义
由上面的推导可知,三阶矩阵的行列式可以通过二阶矩阵的行列式递推得到。这个递推关系可推广到一般情况,即 n 阶矩阵的行列式可以由 n−1 阶矩阵的行列式递推得到。以下是行列式的一种递归定义:
定义
行列式定义
对于
n≥2 ,
n×n 矩阵
A=[aij] 的行列式是形如
±a1jdet(A1j) n 项的和,其中正负号交替,元素
a11,a12,…,a1n 是矩阵
A 第一行的元素。用符号表示为:
detA=a11detA11−a12detA12+⋯+(−1)1+na1ndetA1n=j=1∑n(−1)1+ja1jdet(A1j)(2) 其中,
A1j 表示
n 阶矩阵删除第
1 行、第
j 列后得到的
n−1 阶矩阵。
根据定义,我们通过递归展开法计算三阶矩阵的行列式:
方阵 A 的行列式通常用一对竖线来表示,例如二阶矩阵的行列式可表示为: detA=acbd=ad−bc 。
3. 行列式的代数余子式展开
在前面的描述中,我们令
Aij 表示删除矩阵
A 的第
i 行和第
j 列后得到的子矩阵,
detAij 则表示该子矩阵的行列式。矩阵
A 的第
(i,j) 元素的
代数余子式 (cofactor) ,记作
Cij ,定义如下:
Cij=(−1)i+jdetAij 那么对于
(2) ,我们可以用代数余子式来表示:
detA=a11C11+a12C12+⋯+a1nC1n(3) 公式
(3) 称为
按 A 的第一行的代数余子式展开式 (cofactor expansion across the first row) 。 对于式子
(1) ,我们可以从中提取不同的因子得到其它形式的结果,例如提取矩阵中第二行的元素可得:
Δ=a21(a12a33−a13a32)−a22(a11a33−a13a31)+a23(a11a32−a12a31)=a21C21+a22C22+a23C23 这样,我们就可以按照矩阵的第二行来展开计算。根据这个代数性质,我们可以推断从三阶矩阵的任意一行或一列来展开计算行列式,得到的结果是一致的。这个结论不仅适用于三阶矩阵,还可以推广到任意阶数的矩阵,有如下定理(也称为拉普拉斯定理):
定理 1
行列式的代数余子式展开定理
n×n 矩阵
A 的行列式可按任意行或列的代数余子式展开计算。按第
i 行的代数余子式展开公式为:
detA=ai1Ci1+ai2Ci2+⋯+ainCin 按第
j 列的代数余子式展开公式为:
detA=a1jC1j+a2jC2j+⋯+anjCnj 矩阵元素 (i,j) 的代数余子式的正负号只取决于它在矩阵中的位置,请观察下面的示例:
4. 任意行、列展开计算行列式
根据定理 1,我们可以选择矩阵的任意行或列来展开计算行列式。如果选中的行或列中含有大量零元素,那么在展开计算时就可以跳过这些零元素,从而简化计算,请观察下面的示例:
为了减少行列式的计算量,我们可以总是优先选择零元素最多的行或列进行展开。最理想的情况是矩阵呈现为三角矩阵形式(包括上三角矩阵和下三角矩阵),在这种情况下,行列式的值等于对角线元素的乘积,不需要进行复杂的余子式展开。有如下定理:
定理 2
三角矩阵的行列式
如果矩阵
A 是一个三角矩阵,那么
detA 等于矩阵
A 主对角线上所有元素的乘积。
为了更好地理解这个定理,我们来看一个具体的示例:
5. 行列式代数余子式展开的时间复杂度
对一个
n×n 的矩阵,代数余子式展开法需要递归地处理
n−1 阶的子矩阵。对于每个
n×n 的矩阵,我们需要对
n 个元素进行展开,并对每个展开的元素计算
(n−1)×(n−1) 矩阵的行列式。因此,时间复杂度可以表示为:
T(n)=n⋅T(n−1) 通过递推可以得到时间复杂度为
O(n!) 。也就是说,代数余子式展开法的复杂度随着矩阵阶数的增加呈现
阶乘增长。这是一个极高的复杂度,例如对一个
25×25 的矩阵,理论运算次数达到
25!=1.55×1025 ,这在实际应用中是不可能完成的。
TFLOPS 是衡量处理器性能的单位,表示每秒进行
万亿次浮点运算。NVIDIA A100 是当前人工智能领域中常用的高性能处理器,它可以在双精度 (FP64)下提供高达 19.5 TFLOPS 的浮点运算能力,以这样的性能进行
25! 次浮点运算需要大约
25 万年。而一个
25×25 的矩阵在工程领域中只是一个非常小的矩阵。
代数余子式展开法只适用于小型矩阵,在现代计算机中,通常会使用其他更高效的算法(如LU分解、高斯消元)来求解行列式。