线性代数是数学中的基础,也是十分重要的数学工具。在接触机器学习之后,我逐渐认识到了线性代数的重要性,矩阵运算,优化求解,都离不开线性代数的知识。同时,我也发现了自己数学基础的严重不足,急需好好重学一遍线性代数,为之后的学习打好基础。因此,“重温线性代数”这个系列就诞生了。或许大家会觉得这个系列的内容稍微基础了点,但学习就是如此,一遍又一遍,脚踏实地,温故知新,每次学习都会有新的收获。
离开了大学的课堂,但还好现在有琳琅满目的网络公开课课程。我选择学习的是网上颇受赞赏的MIT "Introdution to Linear Algebra"课程,由Gilbert Strang主讲。参考书目为Strang编写的《Introduction to Linear Algebra》4th edition。目前为止,我觉得这门课给我提供了不少新的有趣的思路,是我之前学习线性代数的时候没有思考过的,值得一学。
——————————————————————————————————————————————————————————————————
本文涉及的内容是课程视频中的第六到十课,对应书中的第三章 Vector Space and Subspaces。这章讲述了线性代数中非常重要的内容:向量空间。虽然之前上课的时候也学过这个概念,但当时学得非常抽象,也觉得它特别简单。。这番重温,让我仿佛进入了一个新的领域,的确十分有意思。由于这章内容较多较杂,我分三个大点进行介绍:
- 关于向量空间的各种概念和定义;
- 线性方程组Ax=b的求解;
- 4个基本子空间。
以下逐一道来。
1、向量空间基本概念
- 向量:在本章中,“向量”一词可以是一个狭义的对象(向量),也可以是一个抽象的概念。广义而言,只要能够对它进行相加或数乘运算的,都可以称为“向量”。因此,我们可以把一个3*3的矩阵看作一个向量,也可以把一个函数看作一个向量。
- 向量空间:如果在一个空间中,任取若干个向量进行相加或数乘,其计算结果仍然在该空间中,则称这个空间为向量空间。换句话说,向量空间对于相加和数乘运算是封闭的(closed)。
当然,基于向量的广义定义,全部2*2的实数矩阵也是一个向量空间,记作M。
- 子空间:在一个向量空间V中,如果存在一个空间S,其中任取若干个向量进行相加或数乘,其计算结果仍然在空间S中,则该空间S称为向量空间V的子空间。
- 矩阵A的列空间(Column space) C(A):矩阵A中列向量的所有线性组合,构成矩阵A的列空间。
- 矩阵A的零空间(Nullspace) N(A):满足Ax=0的所有解集合,构成矩阵A的零空间。
- 线性独立:若能找到一组非零系数,使一组向量的线性组合 ,则该组向量为线性相关,否则为线性独立。
令 ,即矩阵A中的每一列看作一个列向量。那么,如果矩阵A的零空间仅包含零向量,则这三个向量是独立的;若包含非零向量,则这三个向量是相关的。
- 生成(Span)空间:向量生成了一个空间,意味着该空间由这些向量的全部线性组合组成。如:矩阵A的列向量生成了矩阵A的列空间。
- 基(Basis):一个空间的基,是具有以下两个性质的一组向量:1、线性独立;2、能够生成这个空间。换句话说,一个空间的基便是能够生成该空间的“最小”的向量集合。
- 维度(Dimension):一个空间的维度,是该空间的基中向量的个数。因此,对于一个空间,其基向量可以不同,但其数量必定是一样的。
- 矩阵的秩(Rank):为了概念的完整性,我们提前说明一下矩阵的秩,这是矩阵一个非常重要的量,记作 rank(A)=r。秩的理解有以下几种不同的角度,但他们其实都在说同一个概念:
2、矩阵的秩等于矩阵A列空间的维度:r = dim C(A);
2、求解线性方程组
2.1、求解Ax=0
- 通过消元法(行变换),得到主列和自由列,其对应主变量和自由变量;
- 逐个为自由变量赋值1,其余自由变量赋值0,通过回代求得各个特殊解(special solutions);
- 将特殊解进行线性组合,则得到零空间,也即方程组的解。
以上消元法求解十分简单,也是一般线性代数课程必教的求解方法。然而,一般的教学往往止步于此,只关注其解法,忽略了很多有趣的地方。
我们来看个例子:
矩阵 ,我们尝试通过消元法得到其最简形式(reduced form)。所谓最简,就是主元为1,且主元的上下元素皆为0。(该求解过程能够用MATLAB中的指令:R=rref(A) 实现)
得到最简形式为:
从中我们可以看到代表主列的矩阵 ,它是一个r*r的单位阵;以及自由列的矩阵 ,一个r*(n-r)的矩阵F。因此,最简形式可以表示成以下形式:(注意,实际中有可能和F会相互“镶嵌”在一起)
为了求得零向量空间,我们可以构建一个由特殊解作为列向量的零空间矩阵N,其满足:RN=0。可以求得:
因此,,即算法中为自由变量逐个赋1的步骤;,即自由列矩阵的相反数。由此可以得到特殊解为:
,
故线性方程组的解为:
2.2、求解Ax=b
- 通过消元法(行变换),得到主列和自由列,其对应主变量和自由变量;
- 将全部自由变量设为0,回代求解所有主变量,得到一个特解 ;
- 令b=0,用上节方法求得A的零空间 ;
- Ax=b的全解为:。
2.3、矩阵的秩
- 满列秩,即 r=n<m。这种情况下,矩阵没有自由列和自由变量,即 。因此,矩阵A的零空间只有零向量,即线性方程组的全解只包含特解:。这时,方程组将有0个或1个解(取决于方程组是否可解,即b是否在A的列空间当中)。
- 满行秩,即 r=m<n。在这种情况下,由于 r=m,其列空间为整个m维向量空间,因此m维向量b必然处于矩阵A的列空间当中,故方程组必定有解。另外,矩阵必定会存在自由列和自由向量,即。因此,矩阵A的零空间必然有非零向量,所以方程组必定有无数个解。
- 满秩,即 r=m=n。这时,矩阵A为可逆矩阵,且R=I。因此,方程组必然有且仅有一个解。
- 非满秩,即 r<m, r<n。这时,,由上述分析可见,方程组有0个或无数个解。
3、4个基本子空间
- 列空间(Column Space)
- 零空间(Nullspace)
- 行空间(Row Space)
- 左零空间(Nullsapce of )
- 矩阵A行空间的维度与列空间相同,都等于矩阵的秩 r。我们来看看为什么:
- 矩阵A零空间的维度为n-r,左零空间的维度为m-r。这是为什么呢?它们的基又是什么呢?
5、总结
- 如果有方阵,那么是否一定有 ?
- 如果矩阵A、B拥有相同的4个基本子空间,那么是否一定有 (c为任意常数) ?