矩阵行列式
对于一个 \(n\) 行 \(n\) 列的矩阵 \(A\),有矩阵的行列式(常用 \(\det(A),|A|\) )表示。
行列式的意义
如果将矩阵的每一行视为一个 \(n\)
维向量,则 \(n\)
阶行列式的意义可以看做是有向长度/面积/体积在 \(n\) 为空间下的扩展。
具体的例子:
\(n=1\) 时,\(|A|=A_{1,1}\),即有向长度。
\(n=2\) 时,\(|A|=A_{1,1}A_{2,2}-A_{1,2}A_{2,1}=\vec{A_1}\times
\vec{A_2}\)。
因此也可以得到常用的一个 3维向量外积的表达式
\[
\vec{a}\times \vec{b}=\begin{vmatrix} \vec{x}\ \ \vec{y}\ \ \vec{z} \\
a_1\ a_2\ a_3\\ b_1\ b_2\ b_3\end{vmatrix}
\] 其中 \(\vec{x},\vec{y},\vec{z}\)
是三维平面的三个维度的单位向量。
上式即将有向体积中的一个向量改为单位向量后压缩到一个平面上。
\[ \ \]
最基本的求法:
枚举 \(1,2,\cdots,n\) 的一个排列
\(p_i\),设排列 \(p\) 的逆序对为 \(f(p)\)。
则 \(\displaystyle |A|=\sum (-1)^{f(p)} \Pi
A_{i,p_i}\),其中 \((-1)^{f(p)}\) 也记作 \(\sigma(p),\text{sgn}(p)\)。
\[ \ \]
矩阵行列式的性质:
1.交换任意两行(列)得到矩阵 \(A'\),则 \(|A'|=-|A|\) (交换后每个排列 \(f(p)\) 的奇偶性改变)。
2.对于某一行(列)乘上一个值 \(k\)
得到矩阵 \(A'\),则 \(|A'|=k|A|\)。
3.某一行减去另一行的 \(k\)
倍得到矩阵 \(A'\),则 \(|A'|=|A|\)。
根据性质得到的快速求法
根据性质1,2,3 可以对于矩阵进行高斯消元。
而对于一个上三角/下三角矩阵,带入上面的基本求法,显然能够得到 非 0 值
的排列只有对角线 \(p_i=i\)。
因此得到上/下三角矩阵之后就可以快速求解,复杂度为高斯消元的 \(O(n^3)\)。