作者 | 梁唐
出品 | 公众号:Coder梁(ID:Coder_LT)
大家好,日拱一卒,我是梁唐。
今天我们继续麻省理工的线性代数专题,这节课没有太多新知识,完全是之前学过的内容在实际应用的举例。通过今天的课程,可以进一步了解线性代数在实际当中的应用方式,对于这门课会有更深层的认识。
图和回路
上课时,老师画出了这么一张图。如果大家熟悉图论的话,对于类似的图应该非常熟悉。
我们用
n来表示图的节点数,用
m表示图的边数。
由于这是一张有向图,所以我们也可以用矩阵来表示。矩阵的行对应图中的一条边,起点标为-1,终点标为1,这样可以表示边的方向。一列表示的就是一个点的连接情况:
\begin{array}{c | c c c c} & node_1 & node_2 & node_3 & node_4 \\ \hline edge_1 & -1 & 1 & 0 & 0 \\ edge_2 & 0 & -1 & 1 & 0 \\ edge_3 & -1 & 0 & 1 & 0 \\ edge_4 & -1 & 0 & 0 & 1 \\ edge_5 & 0 & 0 & -1 & 1 \\ \end{array}
我们可以建立
5 \times 4矩阵
A= \begin{bmatrix} -1 & 1 & 0 & 0 \ 0 & -1 & 1 & 0 \ -1 & 0 & 1 & 0 \ -1 & 0 & 0 & 1 \ 0 & 0 & -1 & 1 \ \end{bmatrix}我们观察一下矩阵中的前三行,根据我们之前学过的知识,我们可以知道前三行向量线性相关。我们再观察一下图,前三行刚好是点1、2、3围成的闭环。在图论当中这样连通的环形结构称为回路(loop)。
从直观上我们可以获得一个推论:矩阵当中呈线性相关的若干行对应的图是一个回路。
物理意义
代入电势
接下来我们来看这个矩阵对应的零空间,也就是要求方程
Ax =0的解。
Ax= \begin{bmatrix} -1 & 1 & 0 & 0 \\ 0 & -1 & 1 & 0 \\ -1 & 0 & 1 & 0 \\ -1 & 0 & 0 & 1 \\ 0 & 0 & -1 & 1 \\ \end{bmatrix} \begin{bmatrix}x_1 \\ x_2 \\ x_3 \\ x_4\end{bmatrix}
将其展开,可以得到:
\begin{bmatrix}x_2-x_1 \\x_3-x_2 \\x_3-x_1 \\x_4-x_1 \\x_4-x_3 \\ \end{bmatrix}=\begin{bmatrix}0\\0\\0\\0\\0\\ \end{bmatrix}
这个式子有什么意义呢?我们可以引入物理意义。我们假设
x = \begin{bmatrix} x_1, x_2, x_3, x_4\end{bmatrix}看成是图中各个节点的电势。那么式子中的诸如
x_2 - x_1等式子就可以看成是对应边上的电势差。
我们可以使用之前学过的方法求解,当然也可以很容易看出来,方程的一个解是
x = \begin{bmatrix} 1 \\ 1 \\ 1 \\ 1 \\ 1 \end{bmatrix}。
化简
A可以得到
rank(A) = 3,所以零空间对应的维数是1,即
\begin{bmatrix} 1 \ 1 \ 1 \ 1 \ 1 \end{bmatrix}是方程的一组基。
那么对应的物理意义就是当各个节点电势相等的时候,对应各边的电势差为0,电流也为0。
接地
接着,我们把图中的节点4接地,此时节点4的电势为0。
A= \begin{bmatrix} -1 & 1 & 0 \\ 0 & -1 & 1 \\ -1 & 0 & 1 \\ -1 & 0 & 0 \\ 0 & 0 & -1 \\ \end{bmatrix}通过观察可以发现此时的
A各列线性无关,
rank(A)=3。我们再来看它的左零空间,
A^Ty = 0,展开得到:
A^Ty=0=\begin{bmatrix}-1 & 0 & -1 & -1 & 0 \\1 & -1 & 0 & 0 & 0 \\0 & 1 & 1 & 0 & -1 \\0 & 0 & 0 & 1 & 1 \\ \end{bmatrix}\begin{bmatrix}y_1\\y_2\\y_3\\y_4\\y_5\end{bmatrix}=\begin{bmatrix}0\\0\\0\\0\end{bmatrix}
对于左零空间,我们有
dim(N(A^T))=m-r= 5-3=2这里我们继续来看电势差,电流与电势差的关系服从欧姆定律:边上的电流是电势差的倍数,其实就是电压(电势差)除以电阻。
A^Ty=0还有一个名字叫做基尔霍夫电流定律,简称KCL。由于我不是学电气的,所以不太熟悉,我去维基百科查询了相关词条,摘录如下:
我们来将方程列出来:
\left\{ \begin{aligned} -y_1 - y_3 - y_4 &= 0 \\ y_1 - y_2 &= 0 \\ y_2 + y_3 - y_5 &= 0 \\ y_4 + y_5 &= 0 \\ \end{aligned}\right.
我们来看下其中第一个方程:
-y_1 - y_3 - y_4 = 0,这其实就是描述的节点1的电流情况。表明了节点1的流出和流入的电流相等,这就符合KCL第一定律。
对于
A^T来说,我们在上文知道它零空间的维数是2,那么它的零空间将会有两个向量。现在我们假设
y_1=1,即令1A的电流在
edge_1上流动。由图可以看出
y_2=1,再令
y_3=-1,即令1A的电流流回节点1,再令
y_4 = y_5=0这样通过KCL我们得到了一个方程组的一个解:
\begin{bmatrix}1\\1\\-1\\0\\0\end{bmatrix}
再基于同样的思路,利用节点1,3,4组成的回路来找另外一个解。令
y_1=y_2=0,再令
y_3=1,由图可以得到
y_5= 1,根据KCL得到
y_4=-1,所以得到了另外一个解:
\begin{bmatrix}0\\0\\1\\-1\\1\end{bmatrix}
这样我们就找到了
N(A^T)的一组基。
再看图,利用节点1,2,3,4组成的大回路,令
y_3=0,y_1=1,根据KCL可以得到
y_2=1, y_5=1, y_4=-1同样可以得到一组解:
\begin{bmatrix}1\\1\\0\\-1\\1\end{bmatrix}
对比刚才找到的解,可以发现当前向量是之前两个向量的和。
也就是说同样的问题,我们基于线性代数和基于电路学原理得到的答案是相同的。不得不说数理化真的太多的知识是想通的了。
图论
最后,我们来看下
A的行空间,即
A^T的列空间
A^T=\begin{bmatrix}-1 & 0 & -1 & -1 & 0 \\1 & -1 & 0 & 0 & 0 \\0 & 1 & 1 & 0 & -1 \\0 & 0 & 0 & 1 & 1 \\ \end{bmatrix}
观察一下可以发现,第三列是前两列的和,而第1,2,4列线性无关。可以发现在图中这三条边没有组成回路。这里我们可以说线性无关等价于没有回路。由4个节点与三条边组成的图没有回路,就表明
A^T对应的列向量线性无关。没有回路的图在数据结构当中称作树。
有四个节点和三条边,我们再加上一条边必然会得到回路。
我们再看下维度公式:
dim N(A^T) = m -r这里的维数即是相互无关的回路数量,
m是边的数量,
r=n-1,所以代入之后我们得到#loops=#edges - (#nodes - 1)。整理可以得到节点数-边数+回路数=1。
这就是图论领域大名鼎鼎的欧拉公式。
线性代数就像是穿针引线一样把这些知识点都串联在了一起,构成了应用数学的基础。本人才疏学浅,对于应用数学理解不深,建议有能力的小伙伴观看视频,体会更深。
喜欢本文的话不要忘记三连~