zoukankan      html  css  js  c++  java
  • [行列式与矩阵树定理]【学习笔记】

     为什么查基尔霍夫只能查到物理学家?


    参考资料:

    1.生成树的计数及其应用

    2.http://blog.csdn.net/werkeytom_ftd/article/details/54914530


    行列式

    排列 Permutation

    对换:相邻两项交换
    对换会使逆序对的个数改变1
    $delta(i_1i_2...i_n)=(-1)^{t}$
    $t$是逆序对的个数,可以将排列分为奇排列和偶排列

    行列式 Determinant

    $n$阶行列式:
    $det(A)=sumlimits_{(i_1i_2...i_n)}delta(i_1i_2...i_n)a_{1,i_1}a_{2,i_2}...a_{n,i_n}=|A|$

    就是每行每列只选一个元素乘起来的所有情况的和

    我不对打矩阵我不画了...长得和矩阵一样只不过用$||$括起来

    性质:

    $1.quad det(A)=det(A^T)$
    证明:考虑定义式...
    这告诉我们行列式的行和列是平等的,行满足列也满足


    $2.quad$两行互换,行列式变号
    证明:两行互换后相当于排列中两个元素交换,逆序对必定改变奇数个,正负改变
    证明:设交换的两个元素为$i,j$,则相当于对换了$2*(j-i)-1$次
    推论:行列式两行相同时值为0


    $3.quad$一行乘上$k$,行列式乘上$k$
    推论:行列式两行成比例或一行全0,值为0


    $4.quad$两个行列式只有一行不同,他们的行列式和等于不同的行相加后的行列式

    证明:考虑定义式,把加的那一行展开
    推论:将行列式的任意行乘以实数$k$,再相应地加到另一行上去,行列式的值不变
    证明推论:拆成两个行列式的和,一个有两行成比例...
    这样就可以高斯消元$get$


    $5.quad$每行每列和均为0的矩阵行列式为0。
    证明:
    高斯消元过程中这一性质仍然存在。
    最后消出来,最后一行前$n-1$一定为$0$,又因和为$0$,所以最后一项也是$0$,出现全$0$行,行列式即为$0$。

    计算行列式的值

    $det(B)=(-1)^S det(B')=(-1)^S prodlimits_{i=1}^n{b'_{i,i}}$

    $B'$为$B$转换为上三角形式
    证明:显然上三角形式的行列式的值为对角线乘起来....考虑行列式就是每行每列选一个,第一列只有选$a_{1,1}$有贡献并且这样就选了第一行剩下的不用选了,然后数学归纳法下去

    $K$阶子式

    选了k行和k列组成的行列式

    主子式

    $n-1$阶主子式,就是对于$r$,第r行、第r列同时去掉后得到的新行列式

    Binet-Cauchy公式

    $A p*qquad B q*p$

    $det(A*B)=$

    $0 , p>q$

    $det(A)*det(B) , p=q$

    q中选p个然后1..p和j1...jp分别作为行和列A和B的p阶子式相乘$ , p<q$

    $det(AA^T)=(det(A))^2$


    矩阵树定理 Kirchhoff Matrix-Tree

    $1.quad G$的度数矩阵D[G]是一个$n*n$的矩阵当$i eq j$时,$d_{ij}=0$;当$i=j$时,$d_{ij}$等于$i$的度数;
    $2.quad G$的邻接矩阵A[G];

    我们定义G的Kirchhoff矩阵(也称为拉普拉斯算子)$C[G]=D[G]-A[G]$,则Matrix-Tree定理可以描述为:

    G的所有不同的生成树的个数等于其Kirchhoff矩阵$C[G]$任何一个$n-1$阶主子式的行列式的绝对值。

    证明:

    $1.quad C[G]=0$ 因为每行每列和都是0,由推论

    $2.quad G$不连通,任一主子式$det=0$,证明考虑把每个连通块对角线排起来,每个连通分量是独立的图

    $3.quad G$是树,任一主子式$det=1$,证明考虑构造一个对角线为1的上三角行列式(其实我没认真想构造感觉正确)

    构造图$G$关联矩阵$B$,用上面那个公式变形

    直接copy论文啦,感觉说的很清楚

     

    如果$B_r^x$存在环那么可以构造出一个行列和为$0$的子式,所以$det(B_r^x)=0$。

    显然,可以看成是仅由所有的顶点和属于x的边构成的新图的Kirchhoff矩阵的一个n-1阶主子式。

    根据图的Kirchhoff矩阵的性质,如果将所有属于x的n-1条边加入图中后形成一颗树,那么$det(B_r^xB_r^{xT})=1$;

    而如果没有形成树,则必然存在一个环,那么 $det(B_r^x)=0$。

    也就是说,我们考察边集所有大小为n-1的子集,如果这个子集中的边能够形成一颗树,那么我们的答案加1,否则不变。

    这就恰好等于原图生成树的个数!

    最后来自werkeytom_ftd的一个有趣的粟子

    我们来常识用矩阵树定理解决一个简单问题。 
    求n个点组成的无根带标号树有多少个。 
    可以看做是无向完全图的生成树计数。 
    它的基尔霍夫矩阵主对角线都是n-1,其余全都是-1。 
    那余子式,也是一样,不过规模变成了$(n-1)*(n-1)$ 
    现在求它的行列式 
    让第一行加上每行,第一行变成全都是1。 
    用第一行去加其余行,每个其余行除了在主对角线上是n全都变成0。 
    于是最后显然变成了一个上三角矩阵,行列式为主对角线元素相乘。 
    因此是$n^{n-2}$

     

  • 相关阅读:
    硬盘任性丢数据,但分布式存储一定可靠吗?
    Service的基本组成
    固定cell.imageView.image的大小
    剪贴板服务
    取得正在运行的Activity
    取得正在运行的服务
    C#.NET学习笔记1---C#.NET简介
    取得手机的网络信息
    四、cocos2dx动画Animation介绍
    C#.NET学习笔记2---C#.第一个C#程序
  • 原文地址:https://www.cnblogs.com/candy99/p/6420935.html
Copyright © 2011-2022 走看看