[学习笔记] 行列式与矩阵树定理

[学习笔记] 行列式与矩阵树定理

行列式

线性代数真是好东西

定义

\(n\) 阶方阵 $ A$ 的行列式为 \(\det(A)\), 则:

\[\det(A)=\sum_{p\in P} ( -1)^{\delta(p)} \prod_{k=1}^nA_{k,p_k} \]

其中 \(P\) 为所有 \(n\) 阶排列组成的集合, \(\delta(p)\) 表示排列 \(p\) 中的逆序对个数.

本质上是 \(n\) 维欧氏空间应用线性变换 \(A\)\(n\) 维超体积产生的变化系数.

性质

只说几个比较显然比较常用的好了...

  1. \(|A|=|A^T|\). (定义式并没有行和列的区别)

  2. \(|AB|=|A|\times|B|\). (从本质理解. 矩阵乘法相当于连续应用两个线性变换, 体积变化应该相乘.)

  3. 行列式某一行/列都乘 \(k\), 行列式值变为原来 \(k\) 倍. (定义中的和式的每一项都恰好包含某一行中的一项, 于是刚好每一项都多了个 \(k\).)

    \[D={\begin{vmatrix}a_{11}&a_{12}&\dots &a_{1n}\\\vdots &\vdots &\dots &\vdots \\{\color {blue}k}a_{i1}&{\color {blue}k}a_{i2}&\dots &{\color {blue}k}a_{in}\\\vdots &\vdots &\ddots &\vdots \\a_{n1}&a_{n2}&\dots &a_{nn}\end{vmatrix}}={\color {blue}k}{\begin{vmatrix}a_{11}&a_{12}&\dots &a_{1n}\\\vdots &\vdots &\dots &\vdots \\a_{i1}&a_{i2}&\dots &a_{in}\\\vdots &\vdots &\ddots &\vdots \\a_{n1}&a_{n2}&\dots &a_{nn}\end{vmatrix}}={\color {blue}k}D_{1} \]

  4. 行列式某两行/列线性相关, 则行列式值为 \(0\). (从行列式的本质理解. 非满秩的矩阵会降维, 于是体积就被压没了.)

    \[{\begin{vmatrix}{\color {blue}2}&{\color {blue}2}&\dots &{\color {blue}2}\\{\color {blue}8}&{\color {blue}8}&\dots &{\color {blue}8}\\\vdots &\vdots &\ddots &\vdots \\a_{n1}&a_{n2}&\dots &a_{nn}\end{vmatrix}}=0 \]

  5. 交换行列式某两行/列, 行列式值变号. (定义式中的符号和逆序对有关.)

    \[{\begin{vmatrix}\vdots &\vdots &\vdots &\vdots \\{\color {blue}{a_{i1}}}&{\color {blue}{a_{i2}}}&\dots &{\color {blue}{a_{in}}}\\{\color {green}{a_{j1}}}&{\color {green}{a_{j2}}}&\dots &{\color {green}{a_{jn}}}\\\vdots &\vdots &\vdots &\vdots \\\end{vmatrix}}=-{\begin{vmatrix}\vdots &\vdots &\vdots &\vdots \\{\color {green}{a_{j1}}}&{\color {green}{a_{j2}}}&\dots &{\color {green}{a_{jn}}}\\{\color {blue}{a_{i1}}}&{\color {blue}{a_{i2}}}&\dots &{\color {blue}{a_{in}}}\\\vdots &\vdots &\vdots &\vdots \\\end{vmatrix}} \]

  6. 在行列式中, 某一行/列的每个元素是两数之和, 则此行列式可拆分为两个相加的行列式. (拆定义式, 把被更改的那一行中加起来的两个数拆开分配到两个和式中.)

    \[{\begin{vmatrix}a_{11}&a_{12}&\dots &a_{1n}\\\vdots &\vdots &\dots &\vdots \\{\color {blue}{a_{i1}}}+{\color {green}{b_{i1}}}&{\color {blue}{a_{i2}}}+{\color {green}{b_{i2}}}&\dots &{\color {blue}{a_{in}}}+{\color {green}{b_{in}}}\\\vdots &\vdots &\ddots &\vdots \\a_{n1}&a_{n2}&\dots &a_{nn}\end{vmatrix}}={\begin{vmatrix}a_{11}&a_{12}&\dots &a_{1n}\\\vdots &\vdots &\dots &\vdots \\{\color {blue}{a_{i1}}}&{\color {blue}{a_{i2}}}&\dots &{\color {blue}{a_{in}}}\\\vdots &\vdots &\ddots &\vdots \\a_{n1}&a_{n2}&\dots &a_{nn}\end{vmatrix}}+{\begin{vmatrix}a_{11}&a_{12}&\dots &a_{1n}\\\vdots &\vdots &\dots &\vdots \\{\color {green}{b_{i1}}}&{\color {green}{b_{i2}}}&\dots &{\color {green}{b_{in}}}\\\vdots &\vdots &\ddots &\vdots \\a_{n1}&a_{n2}&\dots &a_{nn}\end{vmatrix}} \]

  7. 结合性质 4/6 的推论: 某一行/列对位加上另一行/列的 \(k\) 倍, 行列式值不变. (先用性质 6 拆成两个行列式, 然后第二个行列式显然不满秩所以值为 0.)

    \[{\begin{vmatrix}\vdots &\vdots &\vdots &\vdots \\a_{i1}&a_{i2}&\dots &a_{in}\\a_{j1}&a_{j2}&\dots &a_{jn}\\\vdots &\vdots &\vdots &\vdots \\\end{vmatrix}}={\begin{vmatrix}\vdots &\vdots &\vdots &\vdots \\a_{i1}&a_{i2}&\dots &a_{in}\\a_{j1}{\color {blue}{+ka_{i1}}}&a_{j2}{\color {blue}{+ka_{i2}}}&\dots &a_{jn}{\color {blue}{+ka_{in}}}\\\vdots &\vdots &\vdots &\vdots \\\end{vmatrix}} \]

  8. 上下三角矩阵/对角矩阵的行列式为对角线上元素之积. (显然除了对角线上的情况其他的排列 \(p\) 都会造成 \(A_{i,p_i}\) 命中至少一个0.)

    \[{\begin{vmatrix}{\color {blue}{a_{11}}}&0&\dots &0\\0&{\color {blue}{a_{22}}}&\dots &0\\\vdots &\vdots &\ddots &\vdots \\0&0&\dots &\color {blue}{a_{nn}}\end{vmatrix}}=\prod_{k=1}^n\color {blue}{a_{kk}} \]

计算

按照定义算需要 \(O(n\times n!)\) 次乘法. 没有应用价值. 考虑行列式的性质.

利用上面性质 5/7 即可计算对行列式应用初等行变换后对原行列式值产生的影响.

再加上性质 8, 我们只要用初等行变换把行列式消成三角阵就可以算了. 使用高斯消元即可解决. 时间复杂度 \(O(n^3)\).

矩阵树定理

又称 Kirchhoff's Theorem.

FAQ: 为啥搜索 Kirchhoff 只能找到一个物理学家?

A: 没错这个定理就是物理学家 Gustav R. Kirchhhoff 研究电路的时候顺手证的.

内容

一个 \(n\) 个点的无向图 \(G\) 的生成树个数即为它的 Laplacian 矩阵的任一余子式的行列式值.

其中 Laplacian 矩阵在 \(A_{i,i}\) 处为点 \(i\) 的度数, \(A_{i,j}\) 处若点 \(i\)\(j\) 邻接则值为 \(-1\), 否则为 \(0\).

或者说 Laplacian 矩阵等于度数矩阵减去邻接矩阵.

这个定理也适用于多重图(非简单图), 只要把所有自环都丢掉然后把 \(-1\) 改为 \(i\)\(j\) 之间边的个数的相反数就好了.

于是直接用就完了qaq...

posted @ 2019-03-04 17:01  rvalue  阅读(833)  评论(0编辑  收藏  举报