线性代数_Part1
1 线性代数基础
1.1 方程组的几何解释基础
本节主要介绍线性代数的基础。首先从解方程开始,学习线性代数的应用之一就是求解复杂的方程问题,本节核心之一就是从row picture(行图像)和column picture(列图像)的角度解方程。
1.1.1 二维行图像
如下所示,一个普通的方程组:
按行将方程组写成矩阵形式:
分别可以记为:
-
系数矩阵(\(\boldsymbol A\)): 将方程组系数按行提取出来,构造完成的一个矩阵。
-
未知向量(\(\boldsymbol x\)): 将方程组的未知数提取出来,按列构成一个向量。
-
向量(\(\boldsymbol b\)): 将等号右侧结果按列提取,构成一个向量。
从行的角度来看,\(2x-y=0\)和\(-x+2y = 3\)分别表示两条二维平面中的直线,如果这两条直线相交,那么交点的坐标\((x^*, y^*)\)即为方程组的解。
更确切的讲,如果两条直线相交于一点,那么该方程组有且仅有一个解,即为交点的坐标;如果两条直线重合,那么说明这两条直线方程实际上是同一条直线,此时直线上的所有点的坐标均为方程组的解;如果两条直线平行但不重合,则说明不存在点的坐标同时满足这两条直线的方程,此时方程组无解。
1.1.2 二维列图像
从列图像的角度,再次求解上面的方程,即将方程按列提取,得到的矩阵为:
使用列向量构成系数矩阵,将问题转化为:将向量\(\boldsymbol \alpha=\left[\begin{array}{c}2 \\ -1\end{array}\right]\)与向量\(\boldsymbol \beta=\left[\begin{array}{c}-1 \\ 2\end{array}\right]\) 任意组合,使其结果构成\(\boldsymbol \gamma=\left[\begin{array}{c}0 \\ 3\end{array}\right]\),也就是“线性组合”,它是贯穿线性代数的基本方法。\(x, y\)称为线性组合的系数,因此线性方程组就可以理解为:
是否存在合适的线性组合系数\(x, y\),使得\(\boldsymbol \alpha, \boldsymbol \beta\)的线性组合 \(x\boldsymbol \alpha + y\boldsymbol \beta\)恰好等于\(\boldsymbol \gamma\)。如果存在,线性组合的系数为多少?
值得一提的是,从列的角度看待线性方程组是一种非常重要的理解方式,以后会经常用到这样的思想。
对于一般的\(n\)维线性方程组\(\boldsymbol{Ax = b}\),其中\(\boldsymbol A\)是\(n \times n\)维系数矩阵,\(\boldsymbol x\)是\(n\)维列向量。\(\boldsymbol b\)是方程组右端的\(n\)维列向量。不妨设\(\boldsymbol A\)由\(n\)个列向量\((\boldsymbol \alpha_1, \boldsymbol \alpha_2, \cdots, \boldsymbol \alpha_n)\)组成,\(\boldsymbol x=\left[\begin{array}{c}x_1 \\ x_2 \\ \vdots \\ x_n\end{array}\right]\),则方程组\(\boldsymbol{Ax = b}\)可以表示为:
即
由此可以看出,矩阵\(\boldsymbol A\)乘以向量\(\boldsymbol x\)相当于对\(\boldsymbol A\)的\(n\)个列向量作线性组合,线性组合的系数即为向量\(\boldsymbol x\)各对应的分量。因此对线性方程组可以理解为:是否存在合适的线性组合系数,使得\(\boldsymbol A\)的列向量的线性组合恰好为\(\boldsymbol b\)。如果存在,线性组合的系数为多少?这些线性组合的系数就构成了\(\boldsymbol{Ax = b}\)的解向量\(\boldsymbol x\)。
1.2 线性方程组有解情况
首先考虑对于任意的\(n\)维列向量\(\boldsymbol x\),当\(\boldsymbol x\)变动时,\(\boldsymbol{Ax}\)也在变动,当 \(\boldsymbol x\)取遍所有的\(n\)维列向量时,\(\boldsymbol{Ax}\)就能取遍所有\(\boldsymbol A\)的列向量的线性组合,也就是说,所有的\(\boldsymbol{Ax}\)就构成了\(\boldsymbol A\)的列向量张成的线性空间\(\boldsymbol{V} = \text{span} \begin{Bmatrix} \boldsymbol \alpha_1, \boldsymbol \alpha_2, \cdots, \boldsymbol \alpha_n \end{Bmatrix}\) (span是一组集合,它包含两个向量之间的全部线性组合),因此:
又由于
因此也就得出了
特别地,若\(\boldsymbol A\)的\(n\)个列向量线性无关,则这\(n\)个列向量就构成了\(n\)维向量空间的一组基。此时对任意的向量均可由\(\boldsymbol A\)的列向量线性表出,也即是一定有解。换言之,如果\(\boldsymbol A\)可逆/非奇异,则一定有解。
1.3 矩阵乘法理解
有了对线性方程组的这些认识,我们可以更好地理解矩阵乘法。
(一) 向量右乘矩阵
首先考虑列向量\(\boldsymbol x \in \mathbb{R}^n\)右乘矩阵\(\boldsymbol A \in \mathbb{R}^{n \times n}\)。先从行的角度考虑,不妨设:
则有:
由此可知,从行的角度来看,\(\boldsymbol{Ax}\)相当于分别用\(\boldsymbol A\)的行点乘\(\boldsymbol x\),这就是矩阵乘法的定义。
下面从列的角度考虑,这是一种非常重要的理解方式。不妨设:
则有:
由此即知,列向量\(\boldsymbol x\)右乘矩阵\(\boldsymbol A\)即是对\(\boldsymbol A\)的列向量作线性组合,\(\boldsymbol x\)的各分量即为线性组合的系数。
(二) 向量左乘矩阵
下面考虑行向量\(\boldsymbol y^{\mathrm T}\)左乘矩阵\(\boldsymbol A \in \mathbb{R}^{n \times n}\),其中\(\boldsymbol y \in \mathbb{R}^{n}\),不妨设:
则有:
由此即知,行向量\(\boldsymbol y^{\mathrm T}\)左乘矩阵\(\boldsymbol A\)相当于对\(\boldsymbol A\)的行向量作线性组合,\(\boldsymbol y^{\mathrm T}\)的各分量即为线性组合的系数。
综上所述,列向量\(\boldsymbol x\)右乘矩阵\(\boldsymbol A\)相当于对\(\boldsymbol A\)的列向量作线性组合,\(\boldsymbol x\)的各分量即为线性组合的系数;行向量\(\boldsymbol y^{\mathrm T}\)左乘矩阵\(\boldsymbol A\)相当于对\(\boldsymbol A\)的行向量作线性组合,\(\boldsymbol y^{\mathrm T}\)的各分量即为线性组合的系数。
(三) 矩阵乘以矩阵
对于矩阵与矩阵的乘法,只需把矩阵按行或列分块,即可按上述向量乘矩阵的方式理解。
也即是,矩阵\(\boldsymbol B\)右乘矩阵\(\boldsymbol A\)相当于对\(\boldsymbol A\)的列作线性组合,\(\boldsymbol B\)的各列的分量即为线性组合的系数;矩阵\(\boldsymbol A\)左乘矩阵\(\boldsymbol B\)相当于对\(\boldsymbol B\)的行作线性组合,\(\boldsymbol A\)的各行的分量即为线性组合的系数。这种理解方式也有助于我们更快地进行矩阵乘法的计算。
2 矩阵消元
对于线性方程组:
首先通过消元来简化方程组,再通过回代求得方程组的解。考虑方程组系数矩阵\(\boldsymbol A\)及其右端向量\(\boldsymbol b\):
我们称:
为增广矩阵(augmented matrix)。下面对增广矩阵\((\boldsymbol A,\boldsymbol b)\)进行消元:
其中,方框中框起来的元素1,2,5称为主元(pivot),注意主元不能为0。下面通过回代求得线性方程组的解。
首先由增广矩阵的第3行可知\(z = -2\),将\(z = -2\)代入第2行可得\(y = 1\),再将\(z = -2, y = 1\)代入第1行可得\(x = 2\)。因此方程组的解为\(x = 2, y = 1, z = 2\)。
我们将\(\boldsymbol A\)通过消元后得到的上三角矩阵(upper triangular)记为\(\boldsymbol U\),即:
下面从矩阵乘法的角度来说明\(\boldsymbol A\)是如何变成\(\boldsymbol U\)的。首先将\(\boldsymbol A\)的第1行的−3倍加到第2行得到了\(\boldsymbol A_1=\left(\begin{array}{ccc} 1 & 2 & 1 \\ 0 & 2 & -2 \\ 0 & 4 & 1 \end{array}\right)\),回忆一下矩阵乘法,一个矩阵左乘矩阵\(\boldsymbol A\)相当于对\(\boldsymbol A\)的行作线性组合,因此我们要找到一个合适的矩阵\(\boldsymbol X\)使得\(\boldsymbol{XA = A_1}\),由\(\boldsymbol A\)和\(\boldsymbol A_1\)的第1行和第3行相同可知,矩阵\(\boldsymbol X\)的第1行和第3行分别为\((1,0,0),(0,0,1)\)。 又由将\(\boldsymbol A\)的第1行的-3倍加到第2行得到\(\boldsymbol A_1\)可知,\(\boldsymbol X\)的第2行为\((−3,1,0)\),即:
我们将这个矩阵称为\(\boldsymbol E_{21}\),因为它把\(\boldsymbol A\)的\((2,1)\)位置的元素消成了0。这个矩阵称为初等矩阵或消元矩阵(elementary matrix or elimination matrix)。同理可知,第二次变换的矩阵为:
\(\boldsymbol E_{32}\)同样是初等矩阵。因此我们即得:
这就是矩阵消元的乘法表示。
3 矩阵乘法与逆
3.1 矩阵乘法的五种理解方式
3.1.1 定义的角度
设\(\boldsymbol{C = AB}\),则矩阵\(\boldsymbol A\)的\((i,j)\)处的元素为\(\boldsymbol A\)的第\(i\)行与\(\boldsymbol B\)的第\(j\)列的各元素相乘之和,即:
也即是\(\boldsymbol A\)的第\(i\)行与\(\boldsymbol B\)的第\(j\)列点乘所得到的结果。
3.1.2 列的角度
设矩阵\(\boldsymbol B\)为:
则:
因此,从列的角度来看,矩阵\(\boldsymbol B\)右乘矩阵\(\boldsymbol A\)所得到的矩阵的每一列都是\(\boldsymbol A\)的列的线性组合,线性组合的系数分别是\(\boldsymbol B\)的各列的分量。
3.1.3 行的角度
设矩阵\(\boldsymbol A\)为:
则有:
因此,从行的角度来看,矩阵\(\boldsymbol A\)左乘矩阵\(\boldsymbol B\)所得到的矩阵的每一行都是\(\boldsymbol B\)的行的线性组合,线性组合的系数分别是\(\boldsymbol A\)的各行的分量。
3.1.4 从列乘以行的角度
设矩阵\(\boldsymbol A\)、\(\boldsymbol B\)分别为:
则有:
由于列向量乘以行向量得到的是一个矩阵,因此从列乘以行的角度来看,矩阵\(\boldsymbol A\)乘以\(\boldsymbol B\)得到的是\(n\)个矩阵之和,其中第\(i\)个矩阵由\(\boldsymbol A\)的第\(i\)列乘以\(\boldsymbol B\)的第\(j\)行得到。
3.1.5 分块乘法(block multiplication)
矩阵乘法同样可以分块来乘,只要分块的大小能够使乘法有意义即可(分块的大小要相互匹配)如
3.2 矩阵的逆
3.2.1 矩阵逆的定义
如果存在矩阵\(\boldsymbol B\)使得\(\boldsymbol{A B} = \boldsymbol{B A} = \boldsymbol I\),则矩阵\(\boldsymbol B\)称为矩阵\(\boldsymbol A\)的逆矩阵(inverse matrix),记为\(\boldsymbol A^{-1}\)。一个矩阵可逆那么它是非奇异矩阵。
如果存在矩阵\(\boldsymbol B\)使得\(\boldsymbol{AB = I}\),我们称\(\boldsymbol B\)是\(\boldsymbol A\)的右逆(right inverse),事实上,可以证明\(\boldsymbol B\)还是\(\boldsymbol A\)的左逆(left inverse),即\(\boldsymbol{BA = I}\),因此,直接称满足\(\boldsymbol{A B} = \boldsymbol{B A} = \boldsymbol I\)的矩阵\(\boldsymbol B\)为\(\boldsymbol A\)的逆矩阵(inverse matrix),即为\(\boldsymbol A^{-1}\)。
3.2.2 判断矩阵是否存在逆
以矩阵\(\boldsymbol A\)为例:
为例,如果从行列式的角度来看,由于\(\boldsymbol A\)的行列式为零,显然\(\boldsymbol A\)不可逆。但是,有没有其他方式来说明\(\boldsymbol A\)不可逆呢?
注意到\(\boldsymbol A\)的两列是线性相关的(都是\(\left[\begin{array}{c}1 \\ 2\end{array}\right]\)的倍数),假设存在矩阵\(\boldsymbol B\)使得\(\boldsymbol{AB = I}\),再来回忆下矩阵的乘法可知,\(\boldsymbol{AB}\)的每一列都是\(\boldsymbol A\)的列的线性组合,因此\(\boldsymbol{AB}\)的每一列也都是\(\left[\begin{array}{c}1 \\ 2\end{array}\right]\)的倍数,显然是不可能等于单位矩阵\(\boldsymbol I\)的,因此\(\boldsymbol A\)不可逆。
- 或者我们可以再换一种方式来说明:
如果存在向量\(\boldsymbol x \neq \boldsymbol 0\)使得\(\boldsymbol{Ax = 0}\),那么\(\boldsymbol A\)不可逆。
这个结论的证明是显然的,假设\(\boldsymbol A\)可逆,那么\(\boldsymbol{Ax = 0}\)两边同时乘以\(\boldsymbol A^{-1}\),则得到\(\boldsymbol{x = 0}\),矛盾,因此\(\boldsymbol A\)不可逆。
显然,可取\(\boldsymbol x=\left[\begin{array}{c}-3 \\ 1\end{array}\right]\),则\(\boldsymbol{Ax = 0}\),因此,A 不可逆。
3.2.3 求矩阵的逆
利用Gauss-Jordan 消元法,对矩阵\((\boldsymbol{A, I})\)通过行变换消元,当\((\boldsymbol{A, I})\)中的\(\boldsymbol A\)变为\(\boldsymbol I\)时,\((\boldsymbol{A, I})\)中的矩阵\(\boldsymbol I\)就变成了\(\boldsymbol A^{-1}\),即:
这种方法的原理可以从矩阵线性变换来考虑,初等行变换就是线性变换,其实就是对矩阵\(\boldsymbol A\)、\(\boldsymbol I\)同时进行相同的线性变换,当\(\boldsymbol A\)变成了\(\boldsymbol I\),此时\(\boldsymbol I\)就变成了\(\boldsymbol A^{-1}\)。
发现矩阵的逆与线性相关/无关、矩阵的秩、矩阵行列式有很多相互关联关系。
4 矩阵的LU分解
从另一种角度来看待Gauss消元(本质上,LU分解是高斯消元的一种表达方式)。
首先考虑没有行交换的情形(也就是主元位置的元素不为0)。对矩阵\(\boldsymbol A\)进行Gauss消元相当于用一系列初等矩阵左乘\(\boldsymbol A\)从而得到上三角矩阵\(\boldsymbol U\)。
以\(3 \times 3\)矩阵为例。设\(\boldsymbol A\)是一个\(3 \times 3\)矩阵,\(\boldsymbol E_{21}\)、\(\boldsymbol E_{31}\)、\(\boldsymbol E_{32}\)是初等矩阵(将\(\boldsymbol E_{ij}\)位置的元素消为0),\(\boldsymbol U\)是消元后所得到的上三角矩阵,即:
因此:
记:
则以上两式即为:
而当我们写成\(\boldsymbol{A = LU}\)的形式时,显然\(\boldsymbol L\)是对角元素全为1的下三角矩阵(一般认为,下三角矩阵的左乘代表了对矩阵进行行变换),且\(\boldsymbol L\)下三角部分各位置的元素可通过消元过程快速确定。
因此,我们只需记录消元所用的乘数,就能快速地确定矩阵\(\boldsymbol L\)(注意我们这里所讨论的是没有行交换的情形),不需要进行任何计算,这就是我们使用形式\(\boldsymbol{A = LU}\)的好处。
数学家们喜欢0,喜欢1,喜欢对称,\(\boldsymbol{A = LU}\)显然不那么对称,\(\boldsymbol{U}\)对角线上是主元,\(\boldsymbol{L}\)对角线上是1,这太不美观了实际上,我们还可以进一步分解:
因此,有:
此处\(\boldsymbol{DW = U}\),\(\boldsymbol D\)是一个只有主对角线元素的矩阵,\(\boldsymbol W\)是对角元素全为1的上三角矩阵。
你一定跟我当时一样心中一万匹羊驼在奔腾,觉得折腾这玩意有啥用啊,折腾过来折腾过去,没啥用啊,这么弄的目的是啥嘛,但是当天晚上回家看数值分析的书,刚好也讲这个过程,原来这么做的目的是为了减轻计算,举个例子\(\boldsymbol{Ax = b}\)这种计算过程在工程应用里非常常见,而且多半时间是\(\boldsymbol A\)不变,不同的\(\boldsymbol b\)来解不同的\(\boldsymbol x\),那么按照高斯消元法,每次要从头消元,因为\(\boldsymbol b\)改变了增广矩阵,但是很多计算是冗余的,所以使用三角矩阵的好处就是可以大大减少冗余计算。
第一步:就是把矩阵分解成 LU 或者 LDU 形式(factor)
第二步:通过回代,把x求出来(solve)
过程(1)(2)并不需要求逆,而是通过回代的过程进行,根据计算时间复杂度(也就是计算量,计算次数),factor的时间复杂度是\(O(\dfrac{1}{3}n^3)\),solve的时间复杂度大概是\(O(n^2)\),如果你对时间复杂度不了解,可以去看《算法导论》的最开始那一章,这个理论还是非常有用的,尤其是对研究算法的童鞋。通过回代而不是消元,能够降低不少多余的计算。
5 转置、置换、空间\(\mathbb{R}^n\)
5.1 置换矩阵(permutation matrix)
置换矩阵可以用来行行交换。由上一节我们知道,一个矩阵若恰好不需要行变换就能完成\(\boldsymbol{A = LU}\)分解是十分简单,但是当被分解的矩阵的行主元有零时,则需要行变换才能完成分解,所以此时就变成了:
- 置换矩阵的每一行和每一列都恰好有一个1,其余的元素都是0;
- 置换矩阵可由单位矩阵经过行或列交换得到;
- 一个矩阵乘以置换矩阵,相当于对矩阵的行或列进行交换;
- 置换矩阵的性质:\(\boldsymbol P^{-1} =\boldsymbol P^{\mathrm T}\),即置换矩阵都是正交矩阵。
- 由于置换矩阵的每一行都可以看作取自单位矩阵的某一行,因此\(n \times n\)维置换矩阵共有\(n!\)个。
5.2 转置
矩阵\(\boldsymbol A\)的转置记为\(\boldsymbol A^{\mathrm T}\),满足:
若矩阵\(\boldsymbol A\)满足\(\boldsymbol A = \boldsymbol A^{\mathrm T}\),则称\(\boldsymbol A\)为对称矩阵。对于任何一个矩阵\(\boldsymbol A\),不管\(\boldsymbol A\)是长方形矩阵还是方阵,\(\boldsymbol {AA}^{\mathrm T}\)、\(\boldsymbol A^{\mathrm T}\boldsymbol A\)一定是对称矩阵,因为:
这也是构造对称矩阵的一种方法。
5.3 向量空间
向量空间必须对线性组合封闭,主要是“加法封闭和数乘封闭”。
- 矩阵的列空间
矩阵\(\boldsymbol{A}\)的列的所有线性组合构成一个线性空间,称为\(\boldsymbol{A}\)的列空间。
6 列空间和零空间
6.1 子空间(Subspace)
设非空集合\(\boldsymbol S ⊂ \mathbb{R}^n\),且\(\boldsymbol S\)中的元素对加法和数乘封闭(即对任意的\(\boldsymbol u, \boldsymbol v \in \boldsymbol S\),\(\boldsymbol{u+v} \in \boldsymbol S\),\(\lambda \boldsymbol u \in \boldsymbol S\),\(\lambda\)是常数),子空间中必须包含“0向量”,则\(\boldsymbol S\)是\(\mathbb{R}^n\)的子空间。
设\(\boldsymbol V, \boldsymbol W\)是\(\mathbb{R}^n\)的子空间,则\(\boldsymbol V \cap \boldsymbol W\)也是\(\mathbb{R}^n\)的子空间(显然对加法和数乘封闭),但\(\boldsymbol V \cup \boldsymbol W\)未必是\(\mathbb{R}^n\)的子空间,因为\(\boldsymbol V \cup \boldsymbol W\)中的元素未必对加法和数乘封闭。
“子空间”为包含于向量空间内的一个向量空间。它是原向量空间的一个子集,而且本身也满足向量空间的要求。但是“子空间”和“子集”的概念有区别,所有元素都在原空间之内就可称之为子集,但是要满足对线性运算封闭的子集才能成为子空间。
6.2 列空间(Column space)
矩阵\(\boldsymbol{A}\)的所有列向量的线性组合构成一个线性空间,称为\(\boldsymbol{A}\)的列空间,记为\(C(\boldsymbol{A})\)。
由此可知,线性方程组\(\boldsymbol{Ax = b}\)有解当且仅当\(\boldsymbol{b}\)在\(\boldsymbol{A}\)的列空间中,也即是当且仅当\(\boldsymbol{b}\)是\(\boldsymbol{A}\)的列向量的线性组合。
显然,列空间是线性空间。(存疑???)
6.3 零空间(Nullspace)
方程组\(\boldsymbol{Ax = 0}\)的所有解\(\boldsymbol x\)的集合称为\(\boldsymbol A\)的零空间,记为\(N(\boldsymbol{A})\)。
零空间也是线性空间,因为若\(\boldsymbol{u,v} \in N(\boldsymbol A)\),则\(\boldsymbol {A(u+v)=Au+Av=0}\),故\(\boldsymbol{u+v} \in N(\boldsymbol A)\),同理可知对数乘也封闭。
方程组\(\boldsymbol{Ax = b}\)的解构成的集合不是线性空间,因为其不含零向量(也可很容易地验证对加法和数乘不封闭)。
7 求解\(\boldsymbol{Ax = 0}\):主变量、特解
以:
为例,对\(\boldsymbol A\)进行消元(行变换,消元不改变\(\boldsymbol A\)的行空间和零空间,改变\(\boldsymbol A\)的列空间)得:
其中,1、2为主元(每个非零行的第一个非零元素就是主元),1、2所在的列第1列、第3列称为主元列,第2列、第4列称为自由列。主元的个数即为\(\boldsymbol A\)的秩,即\(\text{rank}(\boldsymbol A) = 2\)。
主元列和自由列的一个重要区别就是,自由列可以表示为其左侧所有主元列的线性组合,而主元列则不可以。具体参考:https://zhuanlan.zhihu.com/p/45815011
设\(\boldsymbol x=\left[\begin{array}{c}x_1 \\ x_2 \\ x_3 \\ x_4\end{array}\right]\),则\(x_1, x_3\)为主变量,\(x_2, x_4\)为自由变量。自由变量的个数为未知数的个数减去主元的个数(即减去\(\boldsymbol A\)的秩),即若\(\boldsymbol A\)是\(m \times n\)维矩阵,则自由变量的个数为\(n - \text{rank}(\boldsymbol A)\)。
由于消元不改变方程组的解,因此求解\(\boldsymbol{Ax = 0}\)就等价于求解\(\boldsymbol{Ux = 0}\)。分别取自由变量\((x_2, x_4) = (1, 0)\)、\((x_2, x_4) = (0, 1)\), 可得\(\boldsymbol{Ux = 0}\)的两个特解:
因此,零空间中的元素为:\(\boldsymbol{x} = a\boldsymbol{\xi} + b\boldsymbol{\eta}\),其中,\(a, b\)为任意常数。
进一步简化行阶梯形式,在简化行阶梯形式中,主元上下的元素都为0,且主元都为1。下面我们进一步将矩阵\(\boldsymbol U\)化为简化行阶梯形式\(\boldsymbol R\):
这样,求解\(\boldsymbol{Ax = 0}\)就等价于\(\boldsymbol{Ux = 0}\)再等价于\(\boldsymbol{Rx = 0}\),从而能够更快地写出方程组的解。
这一讲有点难以理解,可以多看几遍课程+参考笔记:MIT—线性代数笔记07 求解Ax=0:主变量,特解 - 三少爷的键的文章 - 知乎
8 \(\boldsymbol{Ax = b}\):可解性及解的结构
8.1 可解的条件 Solvability conditions on b
仍取:
则方程为:
矩阵\(\boldsymbol A\)的第3行为第1行和第2行的加和,因此\(\boldsymbol{Ax = b}\)中\(\boldsymbol b\)的第3个分量也要等于其第1和第2个分量的和。若\(\boldsymbol b\)不满足\(b_3 = b_1+b_2\)则方程组无解,下面取\(\boldsymbol b = \left(\begin{array}{l} 1 \\ 5 \\ 6 \end{array}\right)\)。
检验\(\boldsymbol{Ax = b}\)是否可解的方法是对增广矩阵进行行消元。如果矩阵\(\boldsymbol{A}\)的行被完全消去的话,则对应的\(\boldsymbol b\)的分量也要得0。在本例中,矩阵\(\boldsymbol{A}\)的第3行被消去。
可解的条件:如果\(\boldsymbol{Ax = b}\)有解的话,则\(\boldsymbol b\)应该处于矩阵\(\boldsymbol A\)的列空间\(C(\boldsymbol A)\) 里面。等价的另一种描述方式为:矩阵\(\boldsymbol A\)的行向量若经过线性组合为零向量时,则对应的\(\boldsymbol b\)经同样的线性组合后也为0(注意是单个0)。
8.2 特解A particular solution
求\(\boldsymbol{Ax = b}\)特解的方法是将自由变量均赋为0,求解其主变量。本例中,令\(x_2 = 0, x_4 = 0\)得到方程组:
可解得\(x_1 = -2, x_3 = \dfrac{3}{2}\),即特解为:\(\boldsymbol x_p=\left[\begin{array}{c}-2 \\ 0 \\ \dfrac{3}{2} \\ 0 \end{array}\right]\)。
8.3 通解Complete solution
为求得\(\boldsymbol{Ax = b}\)的所有解,我们首先检验方程是否可解,然后找到一个特解。将特解和矩阵零空间的向量相加即为方程的通解。
- 与零空间进行线性组合 Combined with nullspace:
即通解为:\(\boldsymbol x_{\text{complete}} = \boldsymbol x_p + \boldsymbol x_n\)。
将\(\boldsymbol A\)转换成rref(行最简),则结果如下所示:
将\(x_2, x_3\)进行互换,把主元列、自由列分别放在一起,则为:
互换后的\(\boldsymbol{Ax = 0} \stackrel{转变为}{\longrightarrow} \boldsymbol{Rx = 0}\)解应该为
再将\(x_2, x_3\)互换回来,即可得到原方程的解:
这是零空间解的一种简便算法,即通过行变换得到(必要时需要交换列,当然最后还要交换回来)得到\(\boldsymbol{I, F}\)后可直接写出零解。
8.4 秩Rank
假设矩阵的shape为\(m \times n\),如果矩阵的秩为\(r\),则必有\(r \leq m, r \leq n\)。
8.4.1 系数矩阵列满秩\(r = n(n \leq m)\)
零空间\(N(\boldsymbol A)\)内只有零向量。原因:每列都有主元,即也可以认为每列都是线性无关的,\(\boldsymbol x\)的每个分量都是主变量,没有自由变量。方程\(\boldsymbol{Ax = b}\)无解或者有唯一解\(\boldsymbol x_p\)。
8.4.2 系数矩阵行满秩\(r = m(m \leq n)\)
每行都有主元,无论\(\boldsymbol b\)取何值,方程\(\boldsymbol{Ax = b}\)都有解(因为\(\boldsymbol A\)是行满秩,所以\(\boldsymbol A\)的列向量能够线性组合充满整个\(\mathbb{R}^{m \times m}\)空间,而\(\boldsymbol b\)一定在\(\mathbb{R}^{m \times m}\)空间中)。主变量\(r = m\)个,自由变量\(n-r = n-m\)个,即也一定存在零空间解。
8.4.3 系数矩阵满秩\(r = n = m\)
满秩,矩阵可逆。零空间只有零向量(因为矩阵\(\boldsymbol A\)的列都是线性无关的,不可能组合出零向量),无论\(\boldsymbol b\)取何值,方程\(\boldsymbol{Ax = b}\)都有唯一解。\(\boldsymbol{R = I}\)。
8.5 小结
简单来说,\(\boldsymbol R\)的倒数行是否为零行决定了是否有解。如果没有零行,则一定有解。秩决定了方程组解的数量。
9. 线性无关,基和维度
向量的线性无关意味着什么?如何用线性无关的概念来帮助我们描述包括零空间在内的子空间。
首先我们需要注意的是,线性无关是针对向量组而言的,而不是对矩阵而言的。重要概念:线性无关(线性相关)、张成空间、基、维度。
9.1 复习
假设矩阵\(\boldsymbol R\)的shape为\(m \times n\),并且\(m < n\),其中\(m\)表示的是方程组的个数,而\(n\)表示的是未知数的个数。那么\(\boldsymbol{Ax = 0}\)一定包含非零解。其中解存在的原因在于一定存在自由变量,其中自由变量个数最少为\(n - m\)。
9.2 线性无关 Independence
若\(c_1 \boldsymbol x_1 + c_2 \boldsymbol x_2 + \cdots + c_n \boldsymbol x_n = \boldsymbol 0\)仅仅在\(c_1 = c_2 = \cdots = c_n = 0\)时成立,则称\(\boldsymbol x_1, \boldsymbol x_2, \cdots, \boldsymbol x_n\)是线性无关的。若这些向量作为列向量构成矩阵\(\boldsymbol A\),则方程\(\boldsymbol{A x = 0}\)只有零解\(\boldsymbol x = \boldsymbol 0\),或称矩阵\(\boldsymbol A\)的零空间只有零向量。换而言之,若存在非零向量\(\boldsymbol c\),使得\(\boldsymbol{Ac = 0}\),则这个矩阵的列向量线性相关。
- 思考:零向量和另外一个向量是线性相关还是线性无关呢?
答案是线性相关的。也就是说只要向量组中包含一个零向量,那么一定是线性相关的。
在\(\mathbb{R}^2\)中,两个向量只要不共线就是线性无关的。(在\(\mathbb{R}^3\)中,三个向量线性无关的条件是它们不在一个平面上)若选定空间\(\mathbb{R}^2\)中的三个向量,则他们必然是线性相关的。例如,如下的三个向量线性相关的:
此矩阵构成的方程\(\boldsymbol{Ax = 0}\)必有非零解,即三个向量线性相关。
向量组线性无关等价于将该向量组构成的矩阵\(\boldsymbol A\)的零空间中只有零向量。如果是线性相关的话,存在非零向量\(\boldsymbol c\)使得\(\boldsymbol{Ac=0}\)。
如果矩阵\(\boldsymbol A\)的列向量为线性无关,则\(\boldsymbol A\)所有的列均为主元列,没有自由列,\(\text{rank}(\boldsymbol A) = n\)。若\(\boldsymbol A\)的列向量为线性相关,则\(\text{rank}(\boldsymbol A) < n\),并且存在自由列。其中自由列的本质是主列的一种组合。
总结:向量组的线性相关性可转换成计算矩阵的零空间。
9.3 张成空间 Span a space
当一个空间是由向量\(\boldsymbol v_1, \boldsymbol v_2, \cdots, \boldsymbol v_k\)的所有线性组合组成时,我们称这些向量张成了这个空间。例如矩阵的列向量张成了该矩阵的列空间。
如果向量\(\boldsymbol v_1, \boldsymbol v_2, \cdots, \boldsymbol v_k\)张成空间\(\boldsymbol S\),则\(\boldsymbol S\)是包含这些向量的最小空间。
9.4 基 Basis
向量空间的基是具有如下两个性质的一组向量\(\boldsymbol v_1, \boldsymbol v_2, \cdots, \boldsymbol v_d\):
- \(\boldsymbol v_1, \boldsymbol v_2, \cdots, \boldsymbol v_d\)线性无关;
- \(\boldsymbol v_1, \boldsymbol v_2, \cdots, \boldsymbol v_d\)张成该向量空间;
在\(\mathbb{R}^3\)空间中,其中一组基为:
若以\(\mathbb{R}^n\)空间中的\(n\)个向量为列向量构成的矩阵为可逆矩阵,则这些向量可以构成\(\mathbb{R}^n\)空间中的一组基。
(一) 子空间的基 Basis for a subspace
向量\(\left[\begin{array}{c}1 \\ 1 \\ 0 \end{array}\right]\)、\(\left[\begin{array}{c}0 \\ 1 \\ 1 \end{array}\right]\)构成\(\mathbb{R}^3\)中的一个平面,但是它们无法成为\(\mathbb{R}^3\)空间的一组基。空间中的基并不是唯一的。
(二) 维度 Dimension
空间的每一组基都具有相同的向量数,这个数值就是空间的维度(dimension)。所以\(\mathbb{R}^n\)空间的每组基都包含\(n\)个向量。简单来说,向量空间的维度就是基向量的个数。对于一个向量空间而言,基向量可以是不同的,但是维度是相同的。
(三) 列空间的基
注意:矩阵具有秩rank而不是维数dimension,而空间有维数而不是秩。当知道了列空间的维数,可以从矩阵列向量中随意选取足够数量的线性无关的向量,它们每一组都可以构成列空间的一组基。其中一组基是第一列与第二列
(四) 零空间的基
本例中矩阵的列向量不是线性无关的,因此其零空间\(N(\boldsymbol A)\)不止包含零向量。因为可以看出第3列是第1列和第2列的和。所以向量\(\left[\begin{array}{c}-1 \\ -1 \\ 1 \\ 0 \end{array}\right]\)必然在零空间\(N(\boldsymbol A)\)之内。由于第1列和第4列相等,从而得到\(\left[\begin{array}{c}1 \\ 0 \\ 0 \\ -1 \end{array}\right]\)也在零空间之内。它们就是的两个特解。
零空间的维数=自由列的数目=\(n - r\)(列数减去秩),因此本例中\(N(\boldsymbol A)\)的维数为\(4-2=2\)。这两个特解就构成了零空间的一组基。
10 四个基本子空间
10.1 四个子空间 Four subspaces
任意的\(m \times n\)矩阵\(\boldsymbol A\)都定义了四个子空间。
10.1.1 列空间Column space
矩阵\(\boldsymbol A\)的列空间是\(\boldsymbol A\)的列向量的线性组合在空间中构成的子空间。如何表示列空间中的任意向量呢?很显然是\(\boldsymbol{Ax = b}\)。
10.1.2 零空间 Nullspace
矩阵\(\boldsymbol A\)的零空间\(\boldsymbol{Ax = 0}\)是的所有解\(\boldsymbol x\)在\(\mathbb{R}^n\)空间中成的子空间。
10.1.3 行空间 Row space
矩阵\(\boldsymbol A\)的行空间是\(\boldsymbol A\)的行向量的线性组合在\(\mathbb{R}^n\)空间中构成的子空间,也就是矩阵\(\boldsymbol A^{\mathrm T}\)的列空间。
10.1.4 左零空间 Left nullspace
我们称矩阵\(\boldsymbol A^{\mathrm T}\)的零空间为矩阵\(\boldsymbol A\)的左零空间,它是\(\mathbb{R}^m\)空间中的子空间。
10.2 基和维度 Basis& Dimension
10.2.1 列空间
矩阵\(\boldsymbol A\)的个主元列(pivot columns)构成了列空间\(C(\boldsymbol A)\)的一组基。
10.2.2 零空间
\(\boldsymbol{Ax = 0}\)的一组特解对应于矩阵\(\boldsymbol A\)的\(n - r\)个自由列,并构成了零空间的一组基。个人理解:自由列分别进行one-hot处理。
10.2.3 行空间
我们用矩阵\(\boldsymbol A\)的化简的行阶梯矩阵\(\boldsymbol R\)。
矩阵\(\boldsymbol A\)和矩阵\(\boldsymbol R\)的列空间不同\(C(\boldsymbol A) \neq C(\boldsymbol R)\),但两者行空间相同。\(\boldsymbol R\)的行向量来自于\(\boldsymbol A\)的行向量的线性组合,因为消元操作是可逆的,所以\(\boldsymbol A\)的向量也可以表示为\(\boldsymbol R\)行向量的线性组合。
\(\boldsymbol R\)的前\(r\)行向量就是矩阵\(\boldsymbol A\)行空间\(C(\boldsymbol A^{\mathrm T})\)的一组基。以\(\boldsymbol A\)为例,其中一组基是\(\boldsymbol R\)中的前两行。
为什么\(\dim C(\boldsymbol A^{\mathrm T}) = r\),可以重点关注中\(\boldsymbol R\)的\(\boldsymbol I\)。
10.2.4 左零空间
左零空间矩阵\(\boldsymbol A^{\mathrm T}\)有\(m\)列,而其秩为\(r\),因此其自由列数目为\(m-r\),故\(\dim N(\boldsymbol A^{\mathrm T}) = m - r\),左零矩阵是满足\(\boldsymbol A^{\mathrm T} \boldsymbol y = \boldsymbol 0\)的所有向量\(\boldsymbol y\)的集合。称之为左零矩阵是因为该式可写作\(\boldsymbol y^{\mathrm T} \boldsymbol A = \boldsymbol 0^{\mathrm T}\)此时右边为行向量,而\(\boldsymbol y\)出现在矩阵\(\boldsymbol A\)左侧。
为找到左零空间的基,我们应用增广矩阵:
我们将\(\boldsymbol A\)通过消元得到矩阵\(\boldsymbol R\),其消元矩阵记为\(\boldsymbol E\),即\(\boldsymbol{EA = R}\)。若为\(\boldsymbol A\)方阵,且\(\boldsymbol{R = I}\),则有\(\boldsymbol{E = A}^{-1}\)
以行操作的观点来看矩阵\(\boldsymbol E\)和\(\boldsymbol A\)的乘法,则矩阵\(\boldsymbol E\)最下面的\(m -r\)个行向量使得矩阵\(\boldsymbol A\)的行向量线性组合成为\(\boldsymbol 0\),也就是矩阵\(\boldsymbol R\)最下面的\(m-r\)个零向量。本例中,\(m -r = 1\)。
矩阵\(\boldsymbol E\)的这\(m-r\)个行向量满足\(\boldsymbol{y}^{\mathrm T} \boldsymbol{A} = \boldsymbol{0}^{\mathrm T}\),它组成了矩阵\(\boldsymbol A\)左零空间的一组基,在本例中的左零空间的一组基为\(\left[\begin{array}{c}-1 \\ 0 \\ 1 \end{array}\right]\)。即上图中左边的部分所示的内容。
10.3 新向量空间 New vector space
所有\(3 \times 3\)矩阵构成的集合是一个矩阵空间,符合对线性运算封闭,称之为\(\boldsymbol M\)。\(\boldsymbol M\)的子空间包括:
- 所有的上三角阵
- 所有的对称阵
- 所有的对角阵
对角阵是前两个子空间的交集,其维度为3,其中一组基为:
矩阵空间的概念参考链接:https://blog.csdn.net/suyimin2010/article/details/90338886
讨论:当最初告诉我说,矩阵的列秩等于主元数,并且主元列构成了列空间的一组基时,其实我是拒绝的。主元这个东西不是行变换消元得来的么,消元过程列空间不是已经改变了么,为什么所得出U的主元数和主元列的位置还能够反映出矩阵A列空间的状态呢?
这里需要说明的是两点,其一是关于秩的定义有很多在数学上等价但是描述差异很大的说法,在这里我们把“秩”理解为行(列)向量中最大的线性无关向量组的向量数即可,在矩阵A行变换消元成梯形阵后,很容易看到行空间内极大无关组之一就是主元所在的那前r行,这r个行向量可以张成行空间,因此行空间的维数与主元数相等都是r,并且前r行构成了行空间的一组基。
但是为什么列空间的维数也是r,并且主元列可以构成列空间的一组基呢?这就是要说明的第二点,初等行变换不会改变列向量的线性相关性。为了叙述方便起见,我们假定矩阵A列向量的极大无关组就是A前r’列的向量(若否可以通过列交换而达成,列交换不会改变线性关系)。
https://zhuanlan.zhihu.com/p/45826349
11 矩阵空间、秩1矩阵和小世界图
11.1 3∗3矩阵空间 3 by 3 matrices
空间\(\boldsymbol M\)是所有\(3 \times 3\)矩阵所构成的空间,\(\boldsymbol M\)的部分子空间包括:
- 所有的上三角阵
- 所有的对称阵
- 所有的对角阵
对于矩阵空间而言,矩阵空间的维度是基矩阵的个数。它的一组基即为多个基矩阵。空间\(\boldsymbol M\)的维数为9,与\(\mathbb{R}^9\)空间很类似。我们可以选定它的一组基:
对称阵构成的子空间\(\boldsymbol S\)维数为6,它的一组基为:
上三角阵构成的子空间\(\boldsymbol U\)维数也为6,它的一组基为:
对角阵构成的子空间\(\boldsymbol D\)维数为3,可以选定\(\boldsymbol S\)和\(\boldsymbol U\)的基的交集为\(\boldsymbol D\)的基,具体为:
\(\boldsymbol S\)和\(\boldsymbol U\)的并集,即\(3 \times 3\)矩阵中或为上三角阵或为对称阵的矩阵,构成\(\boldsymbol M\)的子空间么?答案是否定的。如下列矩阵加法所示:
显然最终结果并不在两者的并集中。这就如同在\(\mathbb{R}^2\)空间中找出两条直线,询问它们的并集是否构成一个子空间。如果我们将\(\boldsymbol S\)和\(\boldsymbol U\)中所有元素可能构成的加和作为一个集合,可以称为和集\(\boldsymbol{S+U}\),它是\(\boldsymbol M\)的一个子空间。实际上\(\boldsymbol{S+U}\)就是\(\boldsymbol M\)本身,其维数为9。
11.2 微分方程 Differential equations
对于给定的微分方程\(\dfrac{\text{d}^2y}{\text{d}x^2}\),求解该方程可以视为求它的零空间。可以得到解为:\(y = \cos(x), y = \sin(x), y = e^{ix}\),事实上通解为\(y = c_1\cos(x) + c_2\sin(x)\),其中\(c_1, c_2\)可以取任意实数。也将解的线性组合构成的空间称为解空间,其维数为2。\(\cos(x), \sin(x)\)可以成为解空间的一组基。它们是函数,而不是向量,但是可以对其进行线性运算,在线性代数的范畴内讨论之。
11.3 子空间的交,和与维数定理
接下来到关键的地方了,建议先阅读《线性代数-线性空间的知识梳理3》中子空间的交、和和维数定理等小节。
接下来我们研究矩阵空间\(\boldsymbol M\)的子空间\(\boldsymbol S\)和\(\boldsymbol U\)的交,即\(\boldsymbol S \cap \boldsymbol U\),这个比较简单,易知\(\boldsymbol S \cap \boldsymbol U\)即对角矩阵,其维数明显为3。
但若要直接研究\(\boldsymbol S\)和\(\boldsymbol U\) 的和,即\(\boldsymbol S + \boldsymbol U\) ,这个就没有\(\boldsymbol S \cap \boldsymbol U\)那么直观了:
一种方法是通过定义,即
那么可以发现,对于任何一个\(3 \times 3\)矩阵,它是可以表示成一个对称矩阵和一个上三角矩阵的和:
所以\(\boldsymbol S + \boldsymbol U = \boldsymbol M\) ,因此\(\dim(\boldsymbol S + \boldsymbol U) = 9\) 。
另一种方法,为了确定\(\boldsymbol S + \boldsymbol U\)的维数,可以利用维数定理,即:
这个公式中,\(\dim(\boldsymbol S \cap \boldsymbol U) = 3\) ,所以\(\dim(\boldsymbol S + \boldsymbol U) = 9\) ,而由\(\boldsymbol S + \boldsymbol U\)的定义可知,其本身就是\(\boldsymbol M\)的一个子空间,且\(\dim(\boldsymbol M) = 9\),所以\(\boldsymbol S + \boldsymbol U = \boldsymbol M\) ,即\(\boldsymbol S\)和\(\boldsymbol U\)的和刚好覆盖了整个矩阵空间\(\boldsymbol M\)。
这就是维数定理一个很好的应用,有时候直接分析两个子空间的和不容易,那么可以考虑通过维数定理先分别分析这两个子空间,再分析其交,这样就能得到\(\dim(\boldsymbol S + \boldsymbol U)\),一旦我们知道一个子空间的维数\(n\),那么只要找到这个子空间中\(n\)个线性无关的向量,那么这\(n\)个向量就是子空间的一个基。
本小节除了介绍子空间的交,和和维数定理,另一方面是给出线性空间中元素一般性的例子,当然课堂中,老师还讲到了线性微分方程的解空间也是一个线性空间,这里不做具体介绍。
11.4 秩1矩阵
对秩为1的矩阵,也可以进行研究,比如秩为1的矩阵:
我们从行向量的角度分解,可以等价表示为:
我们有所有秩为1的矩阵可以表示为一列乘以一行的形式,即:\(\boldsymbol A = \boldsymbol{uv}^{\mathrm T}\)。
之后的学习中,我们会认识到秩1矩阵行列式和特征值都会很简单。再讨论一下几个问题:
11.4.1 问题1
比如,一个\(s \times n\) 的矩阵的秩为\(r\),我们可以将其表示成\(r\)个秩1矩阵的组合,所以秩1矩阵很有用,它就像搭建其他矩阵的积木一样。
举个简单例子:
通过初等行变换:
所以\(\text{rank}(\boldsymbol A) = 2\) ,\(\boldsymbol A\)的1和3列是列空间的一个基,其零空间:
由原始\(\boldsymbol A\)第一列可知\(\vec{a}_{2}=2 \vec{a}_{1}, \vec{a}_{4}=-2 \vec{a}_{1}+2 \vec{a}_{3}\),则:
即:
这就将\(\boldsymbol A\) 分解成了两个秩1矩阵的和。
11.4.2 问题2
但\(s \times n\)型矩阵所有秩1矩阵所构成的子集显然不是一个子空间。
11.4.3 问题3
我们来看这样一个定义在数域\(\boldsymbol K\)上的列向量的集合\(\boldsymbol W\):
它是\(\boldsymbol K^4(\mathbb{K}^4)\)的子空间吗?
我们很容易验证它对加法和数乘运算都封闭,所以\(\boldsymbol W\)是\(\boldsymbol K^4\)的一个子空间。
那么,这个子空间结构是什么样子,换句话说,它的基和维数又是什么?
观察到\(v_{1}+v_{2}+v_{3}+v_{4}=0\),这很像求解\(\boldsymbol{Ax = 0}\) 时将化成的列向量组的形式,那么可以构造一个\(\boldsymbol A = [1, 1,1, 1]\)。这样,求\(\boldsymbol W\)的维数就变成了求 \(\boldsymbol A\)的零空间的维数。而\(\text{rank}(\boldsymbol A) = 1\)所以 \(\text{rank }N(\boldsymbol A) = 3\) ,即\(\text{rank}(\boldsymbol W) = 3\)。同理,我们可以求出\(\boldsymbol W\) 的一个基,即\(N(\boldsymbol A)\)的一个基为:
11.5小世界图 Small world graphs
介绍小世界图主要是引出图论和线性代数的联系。
在这里,“图”G是结点和边的集合\(G = \begin{Bmatrix} \text{node}, \text{edge} \end{Bmatrix}\) :
此图包含5个结点和6条边,我们可以利用一个\(5 \times 6\)矩阵完全描述它。
我们可以用图来描述一个实际问题,如果每个人是一个结点,两个人互相认识为一个边,那么整个美国可以以此构成一张大图。我们可以通过这张图来确认两个人之间的最短距离是多少,即两个人需要通过最少几个朋友才能建立联系。G本人和克林顿之间的距离为2,他的一个朋友是参议员,他认识这个参议员朋友,那个人认识克林顿。班里的学生跟克林顿的距离因此不会大于3。还可以继续算希拉里和莱温斯基之间的距离,哈哈。
所谓“六度分割理论”(six degrees of separation)猜想一个人和陌生人之间间隔的点不会超过六个。因此当陌生的两人聊起这种联系都会感叹:“世界真小啊!”这也是“小世界图”这个名字的由来。
12 图、网络、关联矩阵
本讲讨论线性代数在物理系统中的应用。可参考链接为:
12.1 图和网络 Graphs & Networks
图是结点(node)和边(edge)的一个集合。
边线上的箭头代表从结点流出的正方向。上图里包含4个结点,5条边,我们可以将每条边都指定参考方向用于区分正负,比如一个电路网络。在此例子中,将使用电势、回路、电流之类的词汇(当然这个模型还可以表示为液压系统、建筑结构等)。我们通过构造一个incidence matrix关联矩阵来解析这个图的含义。
12.2 关联矩阵(Incidence matrices)
构造一个矩阵来表示图的内在含义,此矩阵称为关联矩阵,图中每个结点代表一列,每边代表一行。则上图为\(5 \times 4\)矩阵。反过来从这个矩阵出发我们也能画出图。
第1行代表边①,从结点1流出记为-1,从结点2流入记为 1。也就是从结点1流向了结点2。
边①、边②和边③构成了一个回路,称为环(loop)。反映在矩阵上是这三个行向量线性相关。
源于现实问题的关联矩阵,通常描述了问题的结构。如果我们研究一个很大的图,则会构建一个很大的矩阵,但这个矩阵会是稀疏矩阵。
12.2.1 零空间
考察矩阵的零空间,即求\(\boldsymbol{Ax = 0}\)的解。零空间告诉我们列向量线性组合的状态。这里\(\boldsymbol x\)的分量表示的是每个节点。
如果\(\boldsymbol x\)为结点上的电势,则\(\boldsymbol{Ax}\)给出了每个边上的电势差。求解可以得到零空间为一维\(\dim N(\boldsymbol A) = 1\),它的基就是\(\left(\begin{array}{l}1 \\1 \\1 \\1 \end{array}\right)\),解集则是\(\boldsymbol x = c \left(\begin{array}{l}1 \\1 \\1 \\1 \end{array}\right)\)代表等电势,说明等电势条件下不会有电流产生。常数\(c\)的确定需要边界条件,比如我们将结点4接地,则\(x_4 = 0\) 。
12.2.2 列空间
若求\(\boldsymbol{Ax = b}\)的解,则相当于在给定了电压\(\boldsymbol b\)的情况下,求各点的电势,但实际上我们得不到电势的准确值,因为零空间有常数解\(c\) ,各点得到的电势需要加上常数\(c\),这很类似于求积分要加上常函数,常数值需要边界条件来确定。
矩阵的列数为4,而其零空间的维数为1,则矩阵的秩为3,矩阵第1列、第2列和第4列的列向量线性无关。
考察矩阵列空间,一个重要的问题就是对于什么样的\(\boldsymbol b\),\(\boldsymbol{Ax = b}\)有解。边①、边②和边③构成了环,这三个行向量线性相关,同样的情况还有边④、边⑤和边③构成的环。
我们沿着第一幅图中的一个环边\((1, 3, -2)\)对电势差求和:
所以\(\boldsymbol b\)的分量满足\(b_1+b_3-b_2 = 0\)和\(b_3-b_4+b_5 = 0\)。如果把边①、边②、边④、边⑤构成的大环也表示出来则还可以得到一个等式\(b_1-b_2+b_4-b_5 = 0\),但实际上这个等式就是之前这两个等式的组合。这两个等式就是基尔霍夫电压定律(Kirchhoff’s Voltage law),即环路电势差之和为零。
12.2.3 左零空间
矩阵的左零空间是满足\(\boldsymbol A^{\mathrm T} \boldsymbol y = 0\)的向量\(\boldsymbol y\)的集合。其中\(\boldsymbol y\)的每个分量表示的是每个边。因为矩阵$\boldsymbol A^{\mathrm T} $有5列,且矩阵的秩为3,因此矩阵的左零空间维数为2。这反应了行向量的线性关系,整个“图”中,环数为2。
其中\(\boldsymbol y\)的分量的值为“边”上的电流。在电势差和电流之间建立联系就是欧姆定律(Ohm’s Law)。
我们求解\(\boldsymbol A^{\mathrm T} \boldsymbol y = 0\)就是在求5个满足基尔霍夫电流定律(Kirchhoff’s Law)的电流值。
\(\boldsymbol A^{\mathrm T} \boldsymbol y = 0\)的方程形式\(\left\{\begin{array}{r}-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{array}\right.\),每一个方程关于一个结点,方程表示结点电流值为0,即流入等于流出。
从图上解方程,而不是采用消元法解方程。如果我们设定\(y_1 = 1\)组成的回路的“环流“为0,则有\(y_2 = 1, y_3 = -1\)可解得\(\boldsymbol y =\left[\begin{array}{c} 1 \\ 1 \\ -1 \\ 0 \\ 0\end{array}\right]\)。取另一个回路的环流为0,则有\(y_3 = 1, y_4 = -1, y_5 = 1\)可解得\(\boldsymbol y =\left[\begin{array}{c} 0 \\ 0 \\ 1 \\ -1 \\ 1\end{array}\right]\)。如果设定\(y_1, y_2, y_3, y_4, y_5\)组成的大回路环流为0,则可以得到另一个向量\(\boldsymbol y\),而该向量在零空间内,是前两个向量的线性组合。
12.2.4 行空间——对应边
考察矩阵的行空间,因为矩阵秩\(r = 3\),所以存在3个线性无关的向量。第1行、第2行和第4行为线性无关,在“图”中,边①、边②和边④构成了一张小图,这三个边没有形成回路。线性相关问题等价于形成回路。没有回路的小图包含4个结点和3条边,再添加一条边就会产生回路,在矩阵里表现为在第1行、第2行和第4行之上再添加一个行向量就会变为线性相关。没有回路的图称为“树”。
思考一下维数公式的在“图”中的意义:
- 左零空间维数\(\dim N(\boldsymbol A^{\mathrm T}) = m - r\)
- 等价于“环”数量 = “边”数量-(“结点”数量-1)
即Eular公式:
对所有图都成立。\(矩阵的秩r = 结点 − 1\),因为r表示了线性无关的边的数目,也就是“树”中“边”的数目。
之前的讨论都是针对于一个无源的电场,如果加入电源则情况又不同,例如加入电流源相当于将基尔霍夫定律的方程变为\(\boldsymbol A^{\mathrm T} \boldsymbol y = f\),\(f\)就是外部流入的电流。将\(\boldsymbol{e = Ax}, \boldsymbol y = c \boldsymbol e, \boldsymbol A^{\mathrm T} \boldsymbol y = f\) ,三个等式结合得到应用数学中的基本方程\(\boldsymbol A^{\mathrm T}c\boldsymbol A \boldsymbol x = f\)。
关于方程\(\boldsymbol A^{\mathrm T}c\boldsymbol A \boldsymbol x = f\)的更多内容可以阅读GS老先生08的书“Computational science and engineering”的第二章。
13 习题课1
具体内容参考:MIT—线性代数笔记13 复习一 - 三少爷的键的文章 - 知乎
资料链接:三少爷的MIT笔记,超强数学笔记!!!