线代初步
向量空间
- 线性相关与线性无关(独立)
给定向量组 \(\mathcal{A}=\boldsymbol{a_1},\boldsymbol{a_2},...,\boldsymbol{a_m}\) ,如果存在不全为零的实数 \(k_1,k_2,...,k_m\),使:
\(k_1\boldsymbol{a_1}+k_2\boldsymbol{a_2}+...+k_m\boldsymbol{a_m}=\boldsymbol{0}\) 。
则称向量组 \(\mathcal{A}\) 是线性相关的,否则称它为线性无关。
注意到 \(\mathcal{A}\) 是一个向量组,也就是说里面的每个向量都有可能有很多维。
大概是下图这样。

- 线性空间与基
若一组向量可以生成整个 \(n\) 维空间,且线性无关,这组向量一定有 \(n\) 个,则称这组向量为这个 \(n\) 维空间的一组基 (bases)。
因为可以生成整个 \(n\) 维空间的 \(n\) 个线性无关的 \(n\) 维向量可以有无数组,所以一个空间可以有无数组基。
对于 \(n\) 维空间中的 \(m\) 个向量(\(m>n\)),则它们一定线性相关,注意到只是说线性相关,并不一定是每个向量都能被其他向量表示出。
行列式
本质是 \(n\) 维行或列向量所构成的超平行多面体的有向面积或有向体积。
但是总觉得这样不太能 get 到原理,所以再挑几个性质用感性理解说一说。
从定义入手,将矩阵与行列式枚举的每个排列联系起来,定义 \(f(i)=a_i\) 表示第 \(i\) 行选了第 \(a_i\) 个元素,与此同时它还代表排列第 \(i\) 个位置为 \(a_i\),所以对于矩阵中选出的点,位置为 \((i,f(i))\)。
-
Lemma 0.2.3. 交换矩阵两行,行列式变号。
Proof. 对于矩阵的两行 \(a,b\),交换它们相当于对于原来选的 \((a,f(a))\) 和 \((b,f(b))\) 变成了 \((a,f(b))\) 和 \((b,f(a))\) 才能保持权值乘积不变,相当于在排列中交换两个元素,而交换必然导致逆序对数量发生改变,所以变号。
-
Lemma 0.2.5. 若矩阵有相同的两行,则行列式为 \(0\)。
Proof. 考虑相同的两行 \(a,b\) ,钦定 \(f(a)<f(b)\) ,此时会有 \(\frac{n!}{2}\) 种选法,得到的权值为 \(val\),在每种选法的基础上交换 \(f(a)\) 与 \(f(b)\) ,得到剩下的 \(\frac{n!}{2}\) 种选法,逆序对数量与前一半刚好差一,奇偶性改变,所以权值为 \(-val\),相加为 \(0\)。
-
Lemma 0.2.6. 若矩阵有两行存在倍数关系,则行列式为 \(0\)。
Proof. 考虑与 Lemma 0.2.5. 采用相似的做法。假设 \(b=ka\),则 \(v_{a,f(a)}\times v_{b,f(b)}=v_{a,f(a)}\times v_{a,f(b)}\times k=v_{a,f(b)}\times v_{b,f(a)}\) ,交换后 \(val\) 绝对值不变,逆序对数量奇偶性改变,所以相加仍为 \(0\)。
-
Lemma 0.2.9. 原矩阵的行列式等于其转置矩阵的行列式。
Proof. 矩阵的转置操作,对于同一种选法,若原矩阵选取了 \((i,f(i))\),那么为了保持相同,其转置矩阵则选取了 \((f(i),i)\)。即对于一个排列,现取它的逆排列,求证原排列与逆排列逆序数相同(更弱的限制是奇偶性相同)。
考虑点对 \((x,y)\) 与 \((z,w)\) 有贡献(\(x<z\)),当且仅当 \(y>w\),逆排列将贡献点对转换为 \((w,z)\) 与 \((y,x)\),容易发现满足 \(w<y \wedge z>x\) ,所以二维偏序贡献点对不改变,逆序对数量不变。
有了这些性质,用高斯消元求解行列式才有正确性的保证。
而消元的过程又可以加深对性质的理解,比如 Lemma 0.2.6. 中的倍数关系就可以理解成,消元后一行为 \(0\) 那么行列式必然为 \(0\)。
Matrix-Tree 定理
有环一定线性相关,因为可以轮流消掉整个环使得一列是 \(0\),即 \(\det(M_0[S])=0\)。
否则则可以从叶子节点编号的一行开始,确定该行能选的位置 \(i\),用这个消掉他父亲行的 \(i\) ,这样一层一层把叶子剥掉,每个点会有确定选择的位置,且只能是 \(1\) 或 \(-1\),故 \(\det(M_0[S])=\pm 1\)。
剩下的博客里写的很清晰了。
- 应用
\(\sum_{T}\prod_{e\in T} w_e\) 类型的问题
考虑到生成树计数就相当于 \(w_e=1\) 。
那么对于一般形式的 \(w_e\) ,我们则可以将关联矩阵中的 \(1\) 和 \(-1\) 改成 \(\sqrt{w_e}\) 和 \(-\sqrt{w_e}\),手推一下可以推出拉普拉斯矩阵。
本质是求 \(\sum_{T}\prod_{e\in T} p_e \prod_{e\notin T} (1-p_e)\) 。
容易发现 \(\prod_e(1-p_e)\) 是一个常数,\(\frac{p_e}{1-p_e}\) 可以看做 \(w_e\)。
\(p_e\) 存在 \(1\) 的话就变成 \(1-eps\) ,不过更正确的做法是现将这些边用并查集并起来,如果存在环就无解,否则就缩成一个点做矩阵树。

浙公网安备 33010602011771号