从行列式到矩阵树定理(含高斯消元)
没写完。不知道啥时候写完。
高斯消元
此为前置知识。
高斯消元为工具,而不是难点所在。就像网络流难点不在跑网络流一样。此处只讲算法的实现,而关于如何根据题目列出方程,以后有机会会单独写博客。
一元一次方程,只要一次项系数不为 \(0\),就一定有解。
二元一次方程组,\(2\) 个方程,可能会无解,可能会有无穷多解,也可能只有唯一解。
\(n\) 元一次方程组, \(n\) 个方程,也只有 \(3\) 种情况:无解,无穷多解和唯一解。
如何求解?感性理解:\(2\) 个方程之间可以通过一个方程减去另一个方程的几倍,从而消除一些未知数。假设第 \(i\) 个方程求得第 \(i\) 个未知数,那么对于这个方程后面的方程,都去掉第 \(i\) 个未知数。如何去掉?假设第 \(i\) 个方程的第 \(i\) 个未知数的系数为 \(a_{i,i}\),第 \(j\) 个方程的第 \(i\) 个未知数的系数为 \(a_{j,i}\),其中 \(i<j\)。第 \(j\) 个方程的第 \(k\) 项减去 \(a_{i,k}\times \frac{a_{j,i}}{a_{i,i}}\)。当 \(k\) 为 \(i\) 时,\(a_{j,i}\) 要减去 \(a_{j,i}\),变成 \(0\) 了,就消掉了。至于其它项消不掉也没关系,以后总会消掉的。而 \(i\) 之前的项一定会被之前的其它方程消掉。
消完之后,会形成一个上直角三角型有系数,剩下位置系数为 \(0\) 的方程组。最后一个方程就是 \(x=\) 某个值的形式。然后倒推回来,每个方程就可以算出一个未知数的值。
可能会存在无解和无穷多解的情况,属于特殊情况,在此不作讨论,比较复杂。
行列式
先定义 \(\pi(p)\) 表示一个排列 \(p\) 的逆序对数量(\(p_i>p_{j}\) 且 \(i<j\) 的 \((i,j)\) 二元组数量)。
设 \(\sum_{p}\) 表示枚举全排列。
行列式可以简单地看成,用一个方阵描述一个数字。记号为 \(\det\)。相当于一个函数,参数为方阵。
设给定 \(n\) 阶方阵 \(A\)(下标从 \(1\) 开始),\(p\) 为长度为 \(n\) 的排列,则:
-
定理 \(1\):\(A\) 的行列式跟 \(A^T\) 的行列式相等
证明:\(A^T\) 表示 \(A\) 的转置,可以理解为 \(A\) 的行列互换,但相对顺序不变。类似于矩阵斜着翻了个面?即:\(A_{i,j}=A^T_{j,i}\)。
设 \(b_i\) 表示 \(p\) 中 \(i\) 出现的位置。即 \(p_{b_i}=i\)。考虑逆序对的图像意义,即二分图,上下各 \(n\) 个点,上面的第 \(i\) 个点连向下面的第 \(p_i\) 个点,这个图的线段交点个数就是 \(p\) 的逆序对个数(假设都是直着连线的,上面第 \(i\) 个点和下面第 \(i\) 个点对齐)。\(b\) 相当于 \(p\) 的逆操作,即刚才描述的图也可以说成,下面的第 \(i\) 个点连向上面的第 \(b_i\) 个点。也就是说,每一个 \(p\) 都唯一对应一个 \(b\),且它们的逆序对数量相等。
\[\det A^T =\sum_{p} \prod_{i=1}^{n}A^T_{i,p_i}\times(-1)^{\pi(p)} \\ =\sum_{p} \prod_{i=1}^{n}A_{p_i,i}\times(-1)^{\pi(p)} \\ =\sum_{p} \prod_{i=1}^{n}A_{p_{b_i},b_i}\times(-1)^{\pi(p)} \\ =\sum_{b} \prod_{i=1}^{n}A_{i,b_i}\times(-1)^{\pi(b)} \]上文已经证明了 \(b\) 的唯一性和 \(\pi(b)=\pi(p)\)。所以 \(\det A=\det A^T\)。
-
定理 \(2\):把某行或某列的所有元素同时乘一个数,等价于这个行列式的值乘上这个数
证明:每一次 \(\prod\) 都会用到每一行的一个数和每一列的一个数,所以可以把同时乘的这个数提出来。
-
定理 \(3\):交换一个行列式的两行或两列,行列式的值取反。
证明:只需要证明交换两列,行列式的值取反就行。因为通过定理 \(1\) 即可把行变成列。设 \(p'\) 为 \(p\) 交换 \(p_i\) 和 \(p_j\) 得到的,首先对于每一个 \(p\),都唯一对应一个 \(p'\)。跟上文的 \(p\) 和 \(b\) 的关系类似,只需要证明 \(\pi(p')\) 和 \(\pi(p)\) 的奇偶性相反即可。
假设 \(i<j\)。
对于 \(<i\) 的位置,交换后不影响。
对于 \(>j\) 的位置,交换后不影响。
对于 \(>i\) 且 \(<j\) 的位置:
- 比 \(\min(p_i,p_j)\) 小的数,不影响。
- 比 \(\max(p_i,p_j)\) 大的数,不影响。
- 比 \(\min(p_i,p_j)\) 大,比 \(\max(p_i,p_j)\) 小的数,交换 \(p_i\) 和 \(p_j\) 之后 \(\pi\) 的变化量为偶数,对奇偶性不影响。(\(p_i\) 和 \(p_j\) 都会同时对这个数产生或失去逆序对)
交换 \(p_i\) 和 \(p_j\) 后,若原先 \((i,j)\) 不为逆序对,则此时逆序对数增加 \(1\),否则逆序对数减少 \(1\)。
所以 \(\pi(p')\) 跟 \(\pi(p)\) 的奇偶性相反。
也就是行列式的值取反了。
-
定理 \(4\):一行的所有数对位加上另一行所有数的几倍,行列式的值不变。就是高斯消元时最为关键的一步不会改变行列式的值。
存个档。
本文来自博客园,作者:0htoAi,转载请注明原文链接:https://www.cnblogs.com/0htoAi/p/17053353.html