线性代数_Part1

1 线性代数基础

1.1 方程组的几何解释基础

本节主要介绍线性代数的基础。首先从解方程开始,学习线性代数的应用之一就是求解复杂的方程问题,本节核心之一就是从row picture(行图像)和column picture(列图像)的角度解方程。

1.1.1 二维行图像

如下所示,一个普通的方程组:

{2xy=0x+2y=3

按行将方程组写成矩阵形式:

[2112][xy]=[03]

分别可以记为:

  • 系数矩阵(A): 将方程组系数按行提取出来,构造完成的一个矩阵。

  • 未知向量(x): 将方程组的未知数提取出来,按列构成一个向量。

  • 向量(b): 将等号右侧结果按列提取,构成一个向量。

从行的角度来看,2xy=0x+2y=3分别表示两条二维平面中的直线,如果这两条直线相交,那么交点的坐标(x,y)即为方程组的解。

更确切的讲,如果两条直线相交于一点,那么该方程组有且仅有一个解,即为交点的坐标;如果两条直线重合,那么说明这两条直线方程实际上是同一条直线,此时直线上的所有点的坐标均为方程组的解;如果两条直线平行但不重合,则说明不存在点的坐标同时满足这两条直线的方程,此时方程组无解。

1.1.2 二维列图像

从列图像的角度,再次求解上面的方程,即将方程按列提取,得到的矩阵为:

x[21]+y[12]=[03]

使用列向量构成系数矩阵,将问题转化为:将向量α=[21]与向量β=[12] 任意组合,使其结果构成γ=[03],也就是“线性组合”,它是贯穿线性代数的基本方法。x,y称为线性组合的系数,因此线性方程组就可以理解为:
是否存在合适的线性组合系数x,y,使得α,β的线性组合 xα+yβ恰好等于γ。如果存在,线性组合的系数为多少?

值得一提的是,从列的角度看待线性方程组是一种非常重要的理解方式,以后会经常用到这样的思想。

对于一般的n维线性方程组Ax=b,其中An×n维系数矩阵,xn维列向量。b是方程组右端的n维列向量。不妨设An个列向量(α1,α2,,αn)组成,x=[x1x2xn],则方程组Ax=b可以表示为:

(α1,α2,,αn)(x1x2xn)=b

x1α1+x2α2++xnαn=b

由此可以看出,矩阵A乘以向量x相当于对An个列向量作线性组合,线性组合的系数即为向量x各对应的分量。因此对线性方程组可以理解为:是否存在合适的线性组合系数,使得A的列向量的线性组合恰好为b。如果存在,线性组合的系数为多少?这些线性组合的系数就构成了Ax=b的解向量x

1.2 线性方程组有解情况

首先考虑对于任意的n维列向量x,当x变动时,Ax也在变动,当 x取遍所有的n维列向量时,Ax就能取遍所有A的列向量的线性组合,也就是说,所有的Ax就构成了A的列向量张成的线性空间V=span{α1,α2,,αn} (span是一组集合,它包含两个向量之间的全部线性组合),因此:

Ax=bbV=span{α1,α2,,αn}

又由于

bV=span{α1,α2,,αn}

因此也就得出了

Ax=bRank(A)=Rank(A,b)

特别地,若An个列向量线性无关,则这n个列向量就构成了n维向量空间的一组基。此时对任意的向量均可由A的列向量线性表出,也即是一定有解。换言之,如果A可逆/非奇异,则一定有解。

1.3 矩阵乘法理解

有了对线性方程组的这些认识,我们可以更好地理解矩阵乘法。

(一) 向量右乘矩阵

首先考虑列向量xRn右乘矩阵ARn×n。先从行的角度考虑,不妨设:

A=(a1Tα2TαnT),x=(x1x2xn)

则有:

Ax=(α1Tα2TαnT)x=(α1Txα2TxanTx)=(α1xα2xαnx)

由此可知,从行的角度来看,Ax相当于分别用A的行点乘x,这就是矩阵乘法的定义。
下面从列的角度考虑,这是一种非常重要的理解方式。不妨设:

A=(β1,β2,,βn)

则有:

Ax=(β1,β2,,βn)(x1x2xn)=x1β1+x2β2++xnβn

由此即知,列向量x右乘矩阵A即是对A的列向量作线性组合,x的各分量即为线性组合的系数。

(二) 向量左乘矩阵

下面考虑行向量yT左乘矩阵ARn×n,其中yRn,不妨设:

yT=(y1,y2,,yn)

则有:

yTA=(y1,y2,,yn)(α1Tα2TanT)=y1α1T+y2α2T+ynαnT

由此即知,行向量yT左乘矩阵A相当于对A的行向量作线性组合,yT的各分量即为线性组合的系数。

综上所述,列向量x右乘矩阵A相当于对A的列向量作线性组合,x的各分量即为线性组合的系数;行向量yT左乘矩阵A相当于对A的行向量作线性组合,yT的各分量即为线性组合的系数。

(三) 矩阵乘以矩阵

对于矩阵与矩阵的乘法,只需把矩阵按行或列分块,即可按上述向量乘矩阵的方式理解。

AB=A(β1,β2,,βn)=(Aβ1,Aβ2,,Aβn)=(α1Tα2TαnT)B=(α1TBα2TBαnTB)

也即是,矩阵B右乘矩阵A相当于对A的列作线性组合,B的各列的分量即为线性组合的系数;矩阵A左乘矩阵B相当于对B的行作线性组合,A的各行的分量即为线性组合的系数。这种理解方式也有助于我们更快地进行矩阵乘法的计算。

2 矩阵消元

对于线性方程组:

{x+2y+z=23x+8y+z=124y+z=2

首先通过消元来简化方程组,再通过回代求得方程组的解。考虑方程组系数矩阵A及其右端向量b

A=(121381041),b=(2122)

我们称:

(A,b)=(1212381120412)

为增广矩阵(augmented matrix)。下面对增广矩阵(A,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

我们将A通过消元后得到的上三角矩阵(upper triangular)记为U,即:

U=(121022005)

下面从矩阵乘法的角度来说明A是如何变成U的。首先将A的第1行的−3倍加到第2行得到了A1=(121022041),回忆一下矩阵乘法,一个矩阵左乘矩阵A相当于对A的行作线性组合,因此我们要找到一个合适的矩阵X使得XA=A1,由AA1的第1行和第3行相同可知,矩阵X的第1行和第3行分别为(1,0,0),(0,0,1)。 又由将A的第1行的-3倍加到第2行得到A1可知,X的第2行为(3,1,0),即:

X=(100310001)

我们将这个矩阵称为E21,因为它把A(2,1)位置的元素消成了0。这个矩阵称为初等矩阵或消元矩阵(elementary matrix or elimination matrix)。同理可知,第二次变换的矩阵为:

E32=(100010021)

E32同样是初等矩阵。因此我们即得:

E32E21A=U

这就是矩阵消元的乘法表示。

3 矩阵乘法与逆

3.1 矩阵乘法的五种理解方式

3.1.1 定义的角度

C=AB,则矩阵A(i,j)处的元素为A的第i行与B的第j列的各元素相乘之和,即:

cij=ai1b1j+ai2b2j++ainbnj=k=1naikbkj

也即是A的第i行与B的第j列点乘所得到的结果。

3.1.2 列的角度

设矩阵B为:

B=(β1,β2,,βn)

则:

AB=A(β1,β2,,βn)=(Aβ1,Aβ2,,Aβn)

因此,从列的角度来看,矩阵B右乘矩阵A所得到的矩阵的每一列都是A的列的线性组合,线性组合的系数分别是B的各列的分量。

3.1.3 行的角度

设矩阵A为:

A=(a1Tα2TαnT)

则有:

AB=(a1TBα2TBαnTB)

因此,从行的角度来看,矩阵A左乘矩阵B所得到的矩阵的每一行都是B的行的线性组合,线性组合的系数分别是A的各行的分量。

3.1.4 从列乘以行的角度

设矩阵AB分别为:

A=(α1,α2,αn),B=(β1Tβ2TβnT)

则有:

AB=α1β1T+α2β2T++αnβnT=k=1nαkβkT

由于列向量乘以行向量得到的是一个矩阵,因此从列乘以行的角度来看,矩阵A乘以B得到的是n个矩阵之和,其中第i个矩阵由A的第i列乘以B的第j行得到。

3.1.5 分块乘法(block multiplication)

矩阵乘法同样可以分块来乘,只要分块的大小能够使乘法有意义即可(分块的大小要相互匹配)如

AB=(A1A2A3A4)(B1B2B3B4)=(A1B1+A2B3A1B2+A2B4A3B1+A4B3A3B2+A4B4)

3.2 矩阵的逆

3.2.1 矩阵逆的定义

如果存在矩阵B使得AB=BA=I,则矩阵B称为矩阵A的逆矩阵(inverse matrix),记为A1。一个矩阵可逆那么它是非奇异矩阵
如果存在矩阵B使得AB=I,我们称BA的右逆(right inverse),事实上,可以证明B还是A的左逆(left inverse),即BA=I,因此,直接称满足AB=BA=I的矩阵BA的逆矩阵(inverse matrix),即为A1

3.2.2 判断矩阵是否存在逆

以矩阵A为例:

A=(1326)

为例,如果从行列式的角度来看,由于A的行列式为零,显然A不可逆。但是,有没有其他方式来说明A不可逆呢?
注意到A的两列是线性相关的(都是[12]的倍数),假设存在矩阵B使得AB=I,再来回忆下矩阵的乘法可知,AB的每一列都是A的列的线性组合,因此AB的每一列也都是[12]的倍数,显然是不可能等于单位矩阵I的,因此A不可逆。

  • 或者我们可以再换一种方式来说明:
    如果存在向量x0使得Ax=0,那么A不可逆。
    这个结论的证明是显然的,假设A可逆,那么Ax=0两边同时乘以A1,则得到x=0,矛盾,因此A不可逆。
    显然,可取x=[31],则Ax=0,因此,A 不可逆。
3.2.3 求矩阵的逆

利用Gauss-Jordan 消元法,对矩阵(A,I)通过行变换消元,当(A,I)中的A变为I时,(A,I)中的矩阵I就变成了A1,即:

(A,I) 行变换消元, 相当于在左边乘以矩阵 X 当 XA=I 时, X 即为 A1,I 就变为 A1(I,A1)

这种方法的原理可以从矩阵线性变换来考虑,初等行变换就是线性变换,其实就是对矩阵AI同时进行相同的线性变换,当A变成了I,此时I就变成了A1
发现矩阵的逆与线性相关/无关、矩阵的秩、矩阵行列式有很多相互关联关系。

4 矩阵的LU分解

从另一种角度来看待Gauss消元(本质上,LU分解是高斯消元的一种表达方式)。

首先考虑没有行交换的情形(也就是主元位置的元素不为0)。对矩阵A进行Gauss消元相当于用一系列初等矩阵左乘A从而得到上三角矩阵U

3×3矩阵为例。设A是一个3×3矩阵,E21E31E32是初等矩阵(将Eij位置的元素消为0),U是消元后所得到的上三角矩阵,即:

E32E31E21A=U

因此:

A=E211E311E321U

记:

E=E32E31E21,L=E211E311E321

则以上两式即为:

EA=U,A=LU

而当我们写成A=LU的形式时,显然L是对角元素全为1的下三角矩阵(一般认为,下三角矩阵的左乘代表了对矩阵进行行变换),且L下三角部分各位置的元素可通过消元过程快速确定。
因此,我们只需记录消元所用的乘数,就能快速地确定矩阵L(注意我们这里所讨论的是没有行交换的情形),不需要进行任何计算,这就是我们使用形式A=LU的好处。
数学家们喜欢0,喜欢1,喜欢对称,A=LU显然不那么对称,U对角线上是主元,L对角线上是1,这太不美观了实际上,我们还可以进一步分解:

U=DW=[d1d2dn][1u12/d1u13/d11u23/d21]

因此,有:

A=LDW

此处DW=UD是一个只有主对角线元素的矩阵,W是对角元素全为1的上三角矩阵。

你一定跟我当时一样心中一万匹羊驼在奔腾,觉得折腾这玩意有啥用啊,折腾过来折腾过去,没啥用啊,这么弄的目的是啥嘛,但是当天晚上回家看数值分析的书,刚好也讲这个过程,原来这么做的目的是为了减轻计算,举个例子Ax=b这种计算过程在工程应用里非常常见,而且多半时间是A不变,不同的b来解不同的x,那么按照高斯消元法,每次要从头消元,因为b改变了增广矩阵,但是很多计算是冗余的,所以使用三角矩阵的好处就是可以大大减少冗余计算。
第一步:就是把矩阵分解成 LU 或者 LDU 形式(factor)
第二步:通过回代,把x求出来(solve)

过程(1)(2)并不需要求逆,而是通过回代的过程进行,根据计算时间复杂度(也就是计算量,计算次数),factor的时间复杂度是O(13n3),solve的时间复杂度大概是O(n2),如果你对时间复杂度不了解,可以去看《算法导论》的最开始那一章,这个理论还是非常有用的,尤其是对研究算法的童鞋。通过回代而不是消元,能够降低不少多余的计算。

5 转置、置换、空间Rn

5.1 置换矩阵(permutation matrix)

置换矩阵可以用来行行交换。由上一节我们知道,一个矩阵若恰好不需要行变换就能完成A=LU分解是十分简单,但是当被分解的矩阵的行主元有零时,则需要行变换才能完成分解,所以此时就变成了:

PA=LU

  • 置换矩阵的每一行和每一列都恰好有一个1,其余的元素都是0;
  • 置换矩阵可由单位矩阵经过行或列交换得到;
  • 一个矩阵乘以置换矩阵,相当于对矩阵的行或列进行交换;
  • 置换矩阵的性质:P1=PT,即置换矩阵都是正交矩阵
  • 由于置换矩阵的每一行都可以看作取自单位矩阵的某一行,因此n×n维置换矩阵共有n!个。

5.2 转置

矩阵A的转置记为AT,满足:

AijT=Aji

若矩阵A满足A=AT,则称A为对称矩阵。对于任何一个矩阵A,不管A是长方形矩阵还是方阵,AATATA一定是对称矩阵,因为:

(AAT)T=(AT)TAT=AAT,(ATA)T=ATA

这也是构造对称矩阵的一种方法。

5.3 向量空间

向量空间必须对线性组合封闭,主要是“加法封闭和数乘封闭”。

  • 矩阵的列空间
    矩阵A的列的所有线性组合构成一个线性空间,称为A的列空间。

6 列空间和零空间

6.1 子空间(Subspace)

设非空集合SRn,且S中的元素对加法和数乘封闭(即对任意的u,vSu+vSλuSλ是常数),子空间中必须包含“0向量”,则SRn的子空间。

V,WRn的子空间,则VW也是Rn的子空间(显然对加法和数乘封闭),但VW未必是Rn的子空间,因为VW中的元素未必对加法和数乘封闭。

“子空间”为包含于向量空间内的一个向量空间。它是原向量空间的一个子集,而且本身也满足向量空间的要求。但是“子空间”和“子集”的概念有区别,所有元素都在原空间之内就可称之为子集,但是要满足对线性运算封闭的子集才能成为子空间。

6.2 列空间(Column space)

矩阵A的所有列向量的线性组合构成一个线性空间,称为A的列空间,记为C(A)

由此可知,线性方程组Ax=b有解当且仅当bA的列空间中,也即是当且仅当bA的列向量的线性组合。

显然,列空间是线性空间。(存疑???)

6.3 零空间(Nullspace)

方程组Ax=0的所有解x的集合称为A的零空间,记为N(A)

零空间也是线性空间,因为若u,vN(A),则A(u+v)=Au+Av=0,故u+vN(A),同理可知对数乘也封闭。

方程组Ax=b构成的集合不是线性空间,因为其不含零向量(也可很容易地验证对加法和数乘不封闭)。

7 求解Ax=0:主变量、特解

以:

A=(1222246836810)

为例,对A进行消元(行变换,消元不改变A的行空间和零空间,改变A的列空间)得:

(122200240000)U

其中,1、2为主元(每个非零行的第一个非零元素就是主元),1、2所在的列第1列、第3列称为主元列,第2列、第4列称为自由列。主元的个数即为A的秩,即rank(A)=2

主元列和自由列的一个重要区别就是,自由列可以表示为其左侧所有主元列的线性组合,而主元列则不可以。具体参考:https://zhuanlan.zhihu.com/p/45815011

x=[x1x2x3x4],则x1,x3为主变量,x2,x4为自由变量。自由变量的个数为未知数的个数减去主元的个数(即减去A的秩),即若Am×n维矩阵,则自由变量的个数为nrank(A)

由于消元不改变方程组的解,因此求解Ax=0就等价于求解Ux=0。分别取自由变量(x2,x4)=(1,0)(x2,x4)=(0,1), 可得Ux=0的两个特解:

ξ=(2100),η=(2021)

因此,零空间中的元素为:x=aξ+bη,其中,a,b为任意常数。

进一步简化行阶梯形式,在简化行阶梯形式中,主元上下的元素都为0,且主元都为1。下面我们进一步将矩阵U化为简化行阶梯形式R

R=(120200120000)

这样,求解Ax=0就等价于Ux=0再等价于Rx=0,从而能够更快地写出方程组的解。

这一讲有点难以理解,可以多看几遍课程+参考笔记:MIT—线性代数笔记07 求解Ax=0:主变量,特解 - 三少爷的键的文章 - 知乎

8 Ax=b:可解性及解的结构

8.1 可解的条件 Solvability conditions on b

仍取:

A=(1222246836810)

则方程为:

Ax=(1222246836810)(x1x2x3x4)=(b1b2b3)

矩阵A的第3行为第1行和第2行的加和,因此Ax=bb的第3个分量也要等于其第1和第2个分量的和。若b不满足b3=b1+b2则方程组无解,下面取b=(156)

检验Ax=b是否可解的方法是对增广矩阵进行行消元。如果矩阵A的行被完全消去的话,则对应的b的分量也要得0。在本例中,矩阵A的第3行被消去。

可解的条件:如果Ax=b有解的话,则b应该处于矩阵A的列空间C(A) 里面。等价的另一种描述方式为:矩阵A的行向量若经过线性组合为零向量时,则对应的b经同样的线性组合后也为0(注意是单个0)。

8.2 特解A particular solution

Ax=b特解的方法是将自由变量均赋为0,求解其主变量。本例中,令x2=0,x4=0得到方程组:

x1+2x3=12x2=3

可解得x1=2,x3=32,即特解为:xp=[20320]

8.3 通解Complete solution

为求得Ax=b的所有解,我们首先检验方程是否可解,然后找到一个特解。将特解和矩阵零空间的向量相加即为方程的通解。

  • 与零空间进行线性组合 Combined with nullspace:

Axp=b

Axn=0

A(xp+xn)=b

即通解为:xcomplete=xp+xn

A转换成rref(行最简),则结果如下所示:

R=(x1x2x3x4120200120000)

x2,x3进行互换,把主元列、自由列分别放在一起,则为:

R=(x1x2x3x4102201020000)=(IF00)

互换后的Ax=0Rx=0解应该为

(FI)=(22021001)

再将x2,x3互换回来,即可得到原方程的解:

x=(22100201)

这是零空间解的一种简便算法,即通过行变换得到(必要时需要交换列,当然最后还要交换回来)得到I,F后可直接写出零解。

8.4 秩Rank

假设矩阵的shape为m×n,如果矩阵的秩为r,则必有rm,rn

8.4.1 系数矩阵列满秩r=n(nm)

零空间N(A)内只有零向量。原因:每列都有主元,即也可以认为每列都是线性无关的,x的每个分量都是主变量,没有自由变量。方程Ax=b无解或者有唯一解xp

8.4.2 系数矩阵行满秩r=m(mn)

每行都有主元,无论b取何值,方程Ax=b都有解(因为A是行满秩,所以A的列向量能够线性组合充满整个Rm×m空间,而b一定在Rm×m空间中)。主变量r=m个,自由变量nr=nm个,即也一定存在零空间解。

8.4.3 系数矩阵满秩r=n=m

满秩,矩阵可逆。零空间只有零向量(因为矩阵A的列都是线性无关的,不可能组合出零向量),无论b取何值,方程Ax=b都有唯一解。R=I

8.5 小结

简单来说,R的倒数行是否为零行决定了是否有解。如果没有零行,则一定有解。秩决定了方程组解的数量。

9. 线性无关,基和维度

向量的线性无关意味着什么?如何用线性无关的概念来帮助我们描述包括零空间在内的子空间。

首先我们需要注意的是,线性无关是针对向量组而言的,而不是对矩阵而言的。重要概念:线性无关(线性相关)、张成空间、基、维度。

9.1 复习

假设矩阵R的shape为m×n,并且m<n,其中m表示的是方程组的个数,而n表示的是未知数的个数。那么Ax=0一定包含非零解。其中解存在的原因在于一定存在自由变量,其中自由变量个数最少为nm

9.2 线性无关 Independence

c1x1+c2x2++cnxn=0仅仅在c1=c2==cn=0时成立,则称x1,x2,,xn是线性无关的。若这些向量作为列向量构成矩阵A,则方程Ax=0只有零解x=0,或称矩阵A的零空间只有零向量。换而言之,若存在非零向量c,使得Ac=0,则这个矩阵的列向量线性相关。

  • 思考:零向量和另外一个向量是线性相关还是线性无关呢?
    答案是线性相关的。也就是说只要向量组中包含一个零向量,那么一定是线性相关的。

R2中,两个向量只要不共线就是线性无关的。(在R3中,三个向量线性无关的条件是它们不在一个平面上)若选定空间R2中的三个向量,则他们必然是线性相关的。例如,如下的三个向量线性相关的:

v1v2v3(212.5121)

此矩阵构成的方程Ax=0必有非零解,即三个向量线性相关。

向量组线性无关等价于将该向量组构成的矩阵A的零空间中只有零向量。如果是线性相关的话,存在非零向量c使得Ac=0
如果矩阵A的列向量为线性无关,则A所有的列均为主元列,没有自由列,rank(A)=n。若A的列向量为线性相关,则rank(A)<n,并且存在自由列。其中自由列的本质是主列的一种组合。

总结:向量组的线性相关性可转换成计算矩阵的零空间。

9.3 张成空间 Span a space

当一个空间是由向量v1,v2,,vk的所有线性组合组成时,我们称这些向量张成了这个空间。例如矩阵的列向量张成了该矩阵的列空间。
如果向量v1,v2,,vk张成空间S,则S是包含这些向量的最小空间。

9.4 基 Basis

向量空间的基是具有如下两个性质的一组向量v1,v2,,vd

  • v1,v2,,vd线性无关;
  • v1,v2,,vd张成该向量空间;

R3空间中,其中一组基为:

(100)(010)(001)

若以Rn空间中的n个向量为列向量构成的矩阵为可逆矩阵,则这些向量可以构成Rn空间中的一组基。

(一) 子空间的基 Basis for a subspace

向量[110][011]构成R3中的一个平面,但是它们无法成为R3空间的一组基。空间中的基并不是唯一的。

(二) 维度 Dimension

空间的每一组基都具有相同的向量数,这个数值就是空间的维度(dimension)。所以Rn空间的每组基都包含n个向量。简单来说,向量空间的维度就是基向量的个数。对于一个向量空间而言,基向量可以是不同的,但是维度是相同的。

(三) 列空间的基

A=(123111211231)

rank(A)=pivot numbers=dimension C(A)=2

注意:矩阵具有秩rank而不是维数dimension,而空间有维数而不是秩。当知道了列空间的维数,可以从矩阵列向量中随意选取足够数量的线性无关的向量,它们每一组都可以构成列空间的一组基。其中一组基是第一列与第二列

(四) 零空间的基

本例中矩阵的列向量不是线性无关的,因此其零空间N(A)不止包含零向量。因为可以看出第3列是第1列和第2列的和。所以向量[1110]必然在零空间N(A)之内。由于第1列和第4列相等,从而得到[1001]也在零空间之内。它们就是的两个特解。

零空间的维数=自由列的数目=nr(列数减去秩),因此本例中N(A)的维数为42=2。这两个特解就构成了零空间的一组基。

10 四个基本子空间

10.1 四个子空间 Four subspaces

任意的m×n矩阵A都定义了四个子空间。

10.1.1 列空间Column space

矩阵A的列空间是A的列向量的线性组合在空间中构成的子空间。如何表示列空间中的任意向量呢?很显然是Ax=b

10.1.2 零空间 Nullspace

矩阵A的零空间Ax=0是的所有解xRn空间中成的子空间。

10.1.3 行空间 Row space

矩阵A的行空间是A的行向量的线性组合在Rn空间中构成的子空间,也就是矩阵AT的列空间。

10.1.4 左零空间 Left nullspace

我们称矩阵AT的零空间为矩阵A的左零空间,它是Rm空间中的子空间。

10.2 基和维度 Basis& Dimension

10.2.1 列空间

矩阵A的个主元列(pivot columns)构成了列空间C(A)的一组基。

dimC(A)=rank(A)=r

10.2.2 零空间

Ax=0的一组特解对应于矩阵Anr个自由列,并构成了零空间的一组基。个人理解:自由列分别进行one-hot处理。

dimN(A)=nr

10.2.3 行空间

我们用矩阵A的化简的行阶梯矩阵R

矩阵A和矩阵R的列空间不同C(A)C(R),但两者行空间相同。R的行向量来自于A的行向量的线性组合,因为消元操作是可逆的,所以A的向量也可以表示为R行向量的线性组合。

R的前r行向量就是矩阵A行空间C(AT)的一组基。以A为例,其中一组基是R中的前两行。

dimC(AT)=r

为什么dimC(AT)=r,可以重点关注中RI

10.2.4 左零空间

左零空间矩阵ATm列,而其秩为r,因此其自由列数目为mr,故dimN(AT)=mr,左零矩阵是满足ATy=0的所有向量y的集合。称之为左零矩阵是因为该式可写作yTA=0T此时右边为行向量,而y出现在矩阵A左侧。

为找到左零空间的基,我们应用增广矩阵:

[Am×nIm×n][Rm×nEm×n]

我们将A通过消元得到矩阵R,其消元矩阵记为E,即EA=R。若为A方阵,且R=I,则有E=A1

以行操作的观点来看矩阵EA的乘法,则矩阵E最下面的mr个行向量使得矩阵A的行向量线性组合成为0,也就是矩阵R最下面的mr个零向量。本例中,mr=1

矩阵E的这mr个行向量满足yTA=0T,它组成了矩阵A左零空间的一组基,在本例中的左零空间的一组基为[101]。即上图中左边的部分所示的内容。

10.3 新向量空间 New vector space

所有3×3矩阵构成的集合是一个矩阵空间,符合对线性运算封闭,称之为MM的子空间包括:

  • 所有的上三角阵
  • 所有的对称阵
  • 所有的对角阵

对角阵是前两个子空间的交集,其维度为3,其中一组基为:

[100000000][000010000][000000001]

矩阵空间的概念参考链接: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

空间M是所有3×3矩阵所构成的空间,M的部分子空间包括:

  • 所有的上三角阵
  • 所有的对称阵
  • 所有的对角阵

对于矩阵空间而言,矩阵空间的维度是基矩阵的个数。它的一组基即为多个基矩阵。空间M的维数为9,与R9空间很类似。我们可以选定它的一组基:

[100000000],[010000000],[001000000],,[000000010],[000000001]

对称阵构成的子空间S维数为6,它的一组基为:

[100000000],[000010000],[000000001],[010100000],[001000100],[000001010]

上三角阵构成的子空间U维数也为6,它的一组基为:

[100000000],[000010000],[000000001],[010000000],[001000000],[000001000]

对角阵构成的子空间D维数为3,可以选定SU的基的交集为D的基,具体为:

[100000000],[000010000],[000000001]

SU的并集,即3×3矩阵中或为上三角阵或为对称阵的矩阵,构成M的子空间么?答案是否定的。如下列矩阵加法所示:

[110110001]+[033004000]=[123114001]

显然最终结果并不在两者的并集中。这就如同在R2空间中找出两条直线,询问它们的并集是否构成一个子空间。如果我们将SU中所有元素可能构成的加和作为一个集合,可以称为和集S+U,它是M的一个子空间。实际上S+U就是M本身,其维数为9。

dim(S)+dim(U)=dim(SU)+dim(S+U)dim(S+U)=dim(S)+dim(U)dim(SU)

11.2 微分方程 Differential equations

对于给定的微分方程d2ydx2,求解该方程可以视为求它的零空间。可以得到解为:y=cos(x),y=sin(x),y=eix,事实上通解为y=c1cos(x)+c2sin(x),其中c1,c2可以取任意实数。也将解的线性组合构成的空间称为解空间,其维数为2。cos(x),sin(x)可以成为解空间的一组基。它们是函数,而不是向量,但是可以对其进行线性运算,在线性代数的范畴内讨论之。

11.3 子空间的交,和与维数定理

接下来到关键的地方了,建议先阅读《线性代数-线性空间的知识梳理3》中子空间的维数定理等小节。

接下来我们研究矩阵空间M的子空间SU的交,即SU,这个比较简单,易知SU即对角矩阵,其维数明显为3。

但若要直接研究SU 的和,即S+U ,这个就没有SU那么直观了:

一种方法是通过定义,即

S+U={α+βαS,βU}

那么可以发现,对于任何一个3×3矩阵,它是可以表示成一个对称矩阵和一个上三角矩阵的和:

[a11a12a13a21a22a23a31a32a33]=[a11a21a31a21a22a32a31a32a33]+[0a12a21a13a3100a23a32000]

所以S+U=M ,因此dim(S+U)=9

另一种方法,为了确定S+U的维数,可以利用维数定理,即:

dim(S+U)=dim(S)+dim(U)dim(SU)

这个公式中,dim(SU)=3 ,所以dim(S+U)=9 ,而由S+U的定义可知,其本身就是M的一个子空间,且dim(M)=9,所以S+U=M ,即SU的和刚好覆盖了整个矩阵空间M

这就是维数定理一个很好的应用,有时候直接分析两个子空间的和不容易,那么可以考虑通过维数定理先分别分析这两个子空间,再分析其交,这样就能得到dim(S+U)一旦我们知道一个子空间的维数n,那么只要找到这个子空间中n个线性无关的向量,那么这n个向量就是子空间的一个基

本小节除了介绍子空间的交,和和维数定理,另一方面是给出线性空间中元素一般性的例子,当然课堂中,老师还讲到了线性微分方程的解空间也是一个线性空间,这里不做具体介绍。

11.4 秩1矩阵

对秩为1的矩阵,也可以进行研究,比如秩为1的矩阵:

A=(1452810)

我们从行向量的角度分解,可以等价表示为:

A=(1452810)=(12)(145)

我们有所有秩为1的矩阵可以表示为一列乘以一行的形式,即:A=uvT

之后的学习中,我们会认识到秩1矩阵行列式和特征值都会很简单。再讨论一下几个问题:

11.4.1 问题1

比如,一个s×n 的矩阵的秩为r,我们可以将其表示成r个秩1矩阵的组合,所以秩1矩阵很有用,它就像搭建其他矩阵的积木一样。

举个简单例子:

A=[1222246836810]=(a1,a2,a3,a4)

通过初等行变换:

A=[1222246836810][122200240000][120200120000]

所以rank(A)=2A的1和3列是列空间的一个基,其零空间:

Nn×(nr)=[Fr×(nr)Inr]=N4×2=[22100201]

由原始A第一列可知a2=2a1,a4=2a1+2a3,则:

A=(a1,2a1,a3,2a1+2a3)=(a1,2a1,0,2a1)+(0,0,a3,2a3)

即:

A=[120224043606]+[00240061200816]

这就将A 分解成了两个秩1矩阵的和。

11.4.2 问题2

s×n型矩阵所有秩1矩阵所构成的子集显然不是一个子空间。

11.4.3 问题3

我们来看这样一个定义在数域K上的列向量的集合W

{[v1,v2,v3,v4]Tv1+v2+v3+v4=0,v1,v2,v3,v4K}

它是K4(K4)的子空间吗?

我们很容易验证它对加法和数乘运算都封闭,所以WK4的一个子空间。

那么,这个子空间结构是什么样子,换句话说,它的基和维数又是什么?

观察到v1+v2+v3+v4=0,这很像求解Ax=0 时将化成的列向量组的形式,那么可以构造一个A=[1,1,1,1]。这样,求W的维数就变成了求 A的零空间的维数。而rank(A)=1所以 rank N(A)=3 ,即rank(W)=3。同理,我们可以求出W 的一个基,即N(A)的一个基为:

Nn×(nr)=[Fr×(nr)Inr]=N4×3=[111100010001]

11.5小世界图 Small world graphs

介绍小世界图主要是引出图论和线性代数的联系。

在这里,“图”G是结点和边的集合G={node,edge}

此图包含5个结点和6条边,我们可以利用一个5×6矩阵完全描述它。

我们可以用图来描述一个实际问题,如果每个人是一个结点,两个人互相认识为一个边,那么整个美国可以以此构成一张大图。我们可以通过这张图来确认两个人之间的最短距离是多少,即两个人需要通过最少几个朋友才能建立联系。G本人和克林顿之间的距离为2,他的一个朋友是参议员,他认识这个参议员朋友,那个人认识克林顿。班里的学生跟克林顿的距离因此不会大于3。还可以继续算希拉里和莱温斯基之间的距离,哈哈。

所谓“六度分割理论”(six degrees of separation)猜想一个人和陌生人之间间隔的点不会超过六个。因此当陌生的两人聊起这种联系都会感叹:“世界真小啊!”这也是“小世界图”这个名字的由来。

12 图、网络、关联矩阵

本讲讨论线性代数在物理系统中的应用。可参考链接为:

12.1 图和网络 Graphs & Networks

图是结点(node)和边(edge)的一个集合。

边线上的箭头代表从结点流出的正方向。上图里包含4个结点,5条边,我们可以将每条边都指定参考方向用于区分正负,比如一个电路网络。在此例子中,将使用电势、回路、电流之类的词汇(当然这个模型还可以表示为液压系统、建筑结构等)。我们通过构造一个incidence matrix关联矩阵来解析这个图的含义。

12.2 关联矩阵(Incidence matrices)

构造一个矩阵来表示图的内在含义,此矩阵称为关联矩阵,图中每个结点代表一列,每边代表一行。则上图为5×4矩阵。反过来从这个矩阵出发我们也能画出图。

第1行代表边①,从结点1流出记为-1,从结点2流入记为 1。也就是从结点1流向了结点2。

边①、边②和边③构成了一个回路,称为(loop)。反映在矩阵上是这三个行向量线性相关。

源于现实问题的关联矩阵,通常描述了问题的结构。如果我们研究一个很大的图,则会构建一个很大的矩阵,但这个矩阵会是稀疏矩阵

12.2.1 零空间

考察矩阵的零空间,即求Ax=0的解。零空间告诉我们列向量线性组合的状态。这里x的分量表示的是每个节点。

Ax=[x2x1x3x2x3x1x4x1x4x3]=[00000]

如果x为结点上的电势,则Ax给出了每个边上的电势差。求解可以得到零空间为一维dimN(A)=1,它的基就是(1111),解集则是x=c(1111)代表等电势,说明等电势条件下不会有电流产生。常数c的确定需要边界条件,比如我们将结点4接地,则x4=0

12.2.2 列空间

若求Ax=b的解,则相当于在给定了电压b的情况下,求各点的电势,但实际上我们得不到电势的准确值,因为零空间有常数解c ,各点得到的电势需要加上常数c,这很类似于求积分要加上常函数,常数值需要边界条件来确定。

矩阵的列数为4,而其零空间的维数为1,则矩阵的秩为3,矩阵第1列、第2列和第4列的列向量线性无关。

考察矩阵列空间,一个重要的问题就是对于什么样的bAx=b有解。边①、边②和边③构成了环,这三个行向量线性相关,同样的情况还有边④、边⑤和边③构成的环。

我们沿着第一幅图中的一个环边(1,3,2)对电势差求和:

(x2x1)+(x3x2)(x3x1)=0x2x1=b1,x3x2=b3,x3x1=b2

所以b的分量满足b1+b3b2=0b3b4+b5=0。如果把边①、边②、边④、边⑤构成的大环也表示出来则还可以得到一个等式b1b2+b4b5=0,但实际上这个等式就是之前这两个等式的组合。这两个等式就是基尔霍夫电压定律(Kirchhoff’s Voltage law),即环路电势差之和为零。

12.2.3 左零空间

矩阵的左零空间是满足ATy=0的向量y的集合。其中y的每个分量表示的是每个边。因为矩阵AT有5列,且矩阵的秩为3,因此矩阵的左零空间维数为2。这反应了行向量的线性关系,整个“图”中,环数为2。

ATy=[10110110000110100011][y1y2y3y4y5]=[0000]

其中y的分量的值为“边”上的电流。在电势差和电流之间建立联系就是欧姆定律(Ohm’s Law)。

我们求解ATy=0就是在求5个满足基尔霍夫电流定律(Kirchhoff’s Law)的电流值。

ATy=0的方程形式{y1y3y4=0y1y2=0y2+y3y5=0y4+y5=0,每一个方程关于一个结点,方程表示结点电流值为0,即流入等于流出。

从图上解方程,而不是采用消元法解方程。如果我们设定y1=1组成的回路的“环流“为0,则有y2=1,y3=1可解得y=[11100]。取另一个回路的环流为0,则有y3=1,y4=1,y5=1可解得y=[00111]。如果设定y1,y2,y3,y4,y5组成的大回路环流为0,则可以得到另一个向量y,而该向量在零空间内,是前两个向量的线性组合。

12.2.4 行空间——对应边

考察矩阵的行空间,因为矩阵秩r=3,所以存在3个线性无关的向量。第1行、第2行和第4行为线性无关,在“图”中,边①、边②和边④构成了一张小图,这三个边没有形成回路。线性相关问题等价于形成回路。没有回路的小图包含4个结点和3条边,再添加一条边就会产生回路,在矩阵里表现为在第1行、第2行和第4行之上再添加一个行向量就会变为线性相关。没有回路的图称为“树”

思考一下维数公式的在“图”中的意义:

  • 左零空间维数dimN(AT)=mr
  • 等价于“环”数量 = “边”数量-(“结点”数量-1)

Eular公式

+=1

对所有图都成立。r=1,因为r表示了线性无关的边的数目,也就是“树”中“边”的数目。

之前的讨论都是针对于一个无源的电场,如果加入电源则情况又不同,例如加入电流源相当于将基尔霍夫定律的方程变为ATy=ff就是外部流入的电流。将e=Ax,y=ce,ATy=f ,三个等式结合得到应用数学中的基本方程ATcAx=f

关于方程ATcAx=f的更多内容可以阅读GS老先生08的书“Computational science and engineering”的第二章。

13 习题课1

具体内容参考:MIT—线性代数笔记13 复习一 - 三少爷的键的文章 - 知乎


资料链接:三少爷的MIT笔记,超强数学笔记!!!

资料链接:MIT 公开课:Gilbert Strang《线性代数》课程笔记(汇总)

posted @   博客侦探  阅读(236)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示