线性代数之——图和网络

Posted seniusen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线性代数之——图和网络相关的知识,希望对你有一定的参考价值。

1. 图

一个图由一系列节点以及连接它们的边组成,关联矩阵(incidence matrix)则告诉我们 (n) 个顶点是怎么被 (m) 条边连接的。关联矩阵中的每个元素都是 0,1 或者 -1,在消元过程中这也依然成立,所有的主元和乘数都是 (pm1)。因此分解 (A=LU) 也只包含 0,1 或者 -1,零空间矩阵亦是如此。四个基本子空间的基向量都只包含这些特别简单的元素。

我们来看第一个关联矩阵。注意到每一行都有一个 -1 和 1,这个矩阵在求一个图中六条边上的电压差。

技术图片

零空间是一条穿过 (oldsymbol x=(1,1,1,1)) 的直线,列空间的维度为 3,主行是行空间的一个基。每个零空间中的向量垂直于行空间中的任意向量。

技术图片

上面展示了一个有 6 条边 4 个顶点的图,所以矩阵是 6×4 大小的,元素 -1 和 1 告诉我们每个箭头的方向,从节点流出为负,流入节点为正,这是一个有向图。比如,第一行告诉我们有一条边从节点 1 指向节点 2。矩阵的行数为边的数目,列数为顶点的数目。看到一个图后,你就可以直接写出对应的关联矩阵。

技术图片

第一个图是完全的——每一对节点都有边连接,第二个图是一个树——图中没有回路。它们分别是两个极端,最大的边数为 (frac{1}{2}n(n-1)),最小的边数为 (n-1)

可以看到,B 和之前我们之前得到的 U 中的非零行相匹配,消元会使得每一个图变成一个树。回路会在 U 中产生零行,可以看第一个图中由边 1,2,3 组成的环是怎么产生一个零行的。

技术图片

行是相关的如果它们对应的边组成了一个回路,不相关的行来自于树,这是行空间的核心。

而列空间则来自于 (Ax),是一个差异向量。

技术图片

未知数代表节点的电位或者电压,然后 (Ax) 告诉我们沿着某条边的电位差或者电压差,是这些差异带来了流动。

  • 零空间是 (Aoldsymbol x=oldsymbol 0) 的解,这就是说六个电位差都为零,意味着四个节点的电位相同。因此,零空间包含常向量 ((c,c,c,c)),维度为 1 ,是 (oldsymbol R^n) 空间中的一条直线。我们可以同时提高或者降低所有节点的电位而不会改变电位差。如果我们将第四个节点接地,第四个未知数就被移除,零空间就只有零向量了。

  • 行空间的维度为 4-1=3,通过行空间和零空间正交我们可以快速地判断一个向量是否属于行空间,也即它是否和 (oldsymbol x=(1,1,1,1)) 垂直。

  • 列空间包含所有列的线性组合。(Aoldsymbol x) 是一个差异向量,如果我们在图中的一个回路上对差异向量求和,它们将会互相消去得到零。比如我们沿着边 1,3,-2 组成的最大的三角形回路求和,那么有

技术图片

也就是说 (Aoldsymbol x) 沿着所有回路的元素相加都为零。所以一个向量如果位于列空间,那么它也必须满足这个特性,

技术图片

  • 左零空间包含所有 (A^Toldsymbol y=oldsymbol 0) 的解,维度为 6-3=3。

技术图片

第一个方程告诉我们流出节点 1 的总量为 0,第二个方程告诉我们流入节点 2 的减去流出节点 2 的总量为 0,第四个方程告诉我们流入节点 4 的总量为 0。

技术图片

每一个回路电流都是一个解。比如最大的三角形回路,单位电流向前通过边 1,边 3,再向后通过边 2 组成一个回路,那么 (oldsymbol y=(1,-1,1,0, 0, 0)) 是一个解。一个小的回路向前通过边 1,边 5,再向后通过边 4,那么 (oldsymbol y=(1,0,0,-1, 1, 0)) 也是一个解。我们需要三个不相关的解,图中的三个小回路是独立的,它们对应的解给出了左零空间的一组基。大的三角形回路则是三个小回路的求和。

技术图片

总结

关联矩阵 (A) 来自于一个有 (n) 个顶点和 (m) 条边的图,行空间和列空间的维度为 (n-1),零空间和左零空间的维度分别为 (1)(m-n+1)

  1. 常向量 ((c,c,c,c)) 组成零空间。
  2. (n-1) 个不相关的行来自于任意树中的边。
  3. 每个回路中 (Ax) 的元素相加都为零。
  4. (A^Ty=0) 可以通过回路电流来求解,左零空间的维度为 (m-r),在图中有 (m-r=m-n+1) 个独立的回路。

对于平面中的每个图,线性代数告诉我们欧拉公式:

技术图片

2. 网络

在一个真实的网络中,沿着边上的电流是两个数字的乘积。一个数字是这条边两个节点之间的电位差,由 (Ax) 给出,它带来电流的流动;另一个数字是电导 (c),衡量电流流动的难易。

通过连接矩阵 (A) 我们可以知道一个图,它告诉了我们边和节点之间的连接关系。一个网络则更进一步,它为每一条边分配一个电导 (c),这些数字 (c_1,cdots,c_m) 放入到一个对角矩阵 (C)。针对一个电阻网络,电导等于电阻的倒数。欧姆定律将边上的电流和电位差联系在一起。

技术图片

所以电流 (y=-CAx)(Ax) 告诉我们电位差,然后再乘以电导。注意这里的负号是因为,在电路理论中,电流是从高电位流向低电位,而我们得到的节点 1 和节点 2 之间的电位差是 (x_2-x_1)。再结合基尔霍夫电流定律 (A^Ty=0),我们有 (A^TCAx=0),这是一个关键的方程,右边的零告诉我们需要外界的能量——电压源或者电流源,网络才能发挥作用。

技术图片

在引入外接电流源的情况下,基尔霍夫定律变成了 (A^Ty=f),假设所有的电导为 1 ,我们有 (C=I o A^TIA=f)

技术图片

获取更多精彩,请关注「seniusen」!
技术图片

以上是关于线性代数之——图和网络的主要内容,如果未能解决你的问题,请参考以下文章

Python 绘制线性回归散点图和置信区间线

Python 绘制线性回归散点图和置信区间线

Python 绘制线性回归散点图和置信区间线

seaborn 的 lmplot 的输出没有绘制散点图和线性回归

Python 绘制线性回归散点图和置信区间线2

Python 绘制线性回归散点图和置信区间线2