矩阵|矩阵的行列式的计算及其源码

维基百科的定义:
行列式(Determinant),记作 d e t ( A ) det(\bm{A}) det(A)或者 ∣ A ∣ |\bm{A}| ∣A∣,它是矩阵上计算得到的标量。定义如下:
d e t ( A ) = ∑ σ ∈ S n s g n ( σ ) ∏ i = 1 n a i , σ ( i ) det(\bm{A}) = \sum_{\sigma \in \bm{S}_n}sgn(\sigma) \prod^{n}_{i=1}a_{i,\sigma(i)} det(A)=σ∈Sn?∑?sgn(σ)i=1∏n?ai,σ(i)?
其中, S n \bm{S}_n Sn?是集合 { 1 , 2 , 3 , . . . , n } \begin{Bmatrix} 1,2,3,...,n\end{Bmatrix} {1,2,3,...,n?}上置换的全体,即集合 { 1 , 2 , 3 , . . . , n } \begin{Bmatrix} 1,2,3,...,n\end{Bmatrix} {1,2,3,...,n?}到自身上的一一映射(双射)的全体; ∑ σ ∈ S n \sum_{\sigma \in \bm{S}_n} ∑σ∈Sn??表示对 S n \bm{S}_n Sn?全部元素的求和,即如果每个 σ ∈ S n \sigma \in \bm{S}_n σ∈Sn?出现一次, s g n ( σ ) ∏ i = 1 n a i , σ ( i ) sgn(\sigma) \prod^{n}_{i=1}a_{i,\sigma(i)} sgn(σ)∏i=1n?ai,σ(i)?就在加法中出现一次;对每一个满足 1 ≤ i , j ≤ n 1 \le i, j \le n 1≤i,j≤n的数据对 ( i , j ) (i,j) (i,j), a i , j a_{i,j} ai,j?都是矩阵 A \bm{A} A的第 i i i行,第 j j j列的元素。
s g n ( σ ) sgn(\sigma) sgn(σ)是 σ ∈ S n \sigma \in \bm{S}_n σ∈Sn?的符号差,具体说,如果满足 1 ≤ i , j ≤ n 1 \le i, j \le n 1≤i,j≤n但是 σ ( i ) > σ ( j ) \sigma(i) \gt \sigma(j) σ(i)>σ(j)的有序数对 ( i , j ) (i,j) (i,j)称为 σ \sigma σ的一个逆序。一个序列有多个逆序,它的数量,可以定义为 N σ N_{\sigma} Nσ?。这个符号差满足下面公式:
s g n ( σ ) = 1 ; ( N σ 为偶数 ) s g n ( σ ) = ? 1 ; ( N σ 为奇数 ) sgn(\sigma)=1; (N_{\sigma}为偶数) sgn(\sigma)=-1; (N_{\sigma}为奇数) sgn(σ)=1; (Nσ?为偶数)sgn(σ)=?1; (Nσ?为奇数)
在日常的空间几何的计算中,遇到的都是 3 × 3 3 \times 3 3×3的矩阵,它可以表示为:
【矩阵|矩阵的行列式的计算及其源码】 A = [ a 11 a 12 a 13 a 21 a 22 a 23 a 31 a 32 a 33 ] \bm{A}=\begin{bmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \\ a_{31} & a_{32} & a_{33} \end{bmatrix} A=? ??a11?a21?a31??a12?a22?a32??a13?a23?a33??? ??
通过定义,可以简化为如下:
d e t ( A ) = ∣ a 11 a 12 a 13 a 21 a 22 a 23 a 31 a 32 a 33 ∣ = a 11 a 22 a 33 + a 12 a 23 a 31 + a 13 a 21 a 32 ? a 13 a 22 a 31 ? a 11 a 23 a 32 ? a 12 a 21 a 33 det(\bm{A}) = \begin{vmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \\ a_{31} & a_{32} & a_{33} \end{vmatrix}=a_{11}a_{22}a_{33} +a_{12}a_{23}a_{31}+a_{13}a_{21}a_{32}-a_{13}a_{22}a_{31}-a_{11}a_{23}a_{32}-a_{12}a_{21} a_{33} det(A)=∣ ∣?a11?a21?a31??a12?a22?a32??a13?a23?a33??∣ ∣?=a11?a22?a33?+a12?a23?a31?+a13?a21?a32??a13?a22?a31??a11?a23?a32??a12?a21?a33?
代码后续更新补上。
参考资料:
https://zh.m.wikipedia.org/zh-sg/%E8%A1%8C%E5%88%97%E5%BC%8F

    推荐阅读