重温线性代数(2)——向量空间

       线性代数是数学中的基础,也是十分重要的数学工具。在接触机器学习之后,我逐渐认识到了线性代数的重要性,矩阵运算,优化求解,都离不开线性代数的知识。同时,我也发现了自己数学基础的严重不足,急需好好重学一遍线性代数,为之后的学习打好基础。因此,“重温线性代数”这个系列就诞生了。或许大家会觉得这个系列的内容稍微基础了点,但学习就是如此,一遍又一遍,脚踏实地,温故知新,每次学习都会有新的收获。

        离开了大学的课堂,但还好现在有琳琅满目的网络公开课课程。我选择学习的是网上颇受赞赏的MIT "Introdution to Linear Algebra"课程,由Gilbert Strang主讲。参考书目为Strang编写的《Introduction to Linear Algebra》4th edition。目前为止,我觉得这门课给我提供了不少新的有趣的思路,是我之前学习线性代数的时候没有思考过的,值得一学。

——————————————————————————————————————————————————————————————————

        本文涉及的内容是课程视频中的第六到十课,对应书中的第三章 Vector Space and Subspaces。这章讲述了线性代数中非常重要的内容:向量空间。虽然之前上课的时候也学过这个概念,但当时学得非常抽象,也觉得它特别简单。。这番重温,让我仿佛进入了一个新的领域,的确十分有意思。由于这章内容较多较杂,我分三个大点进行介绍:

  1. 关于向量空间的各种概念和定义;
  2. 线性方程组Ax=b的求解;
  3. 4个基本子空间。
     本文中默认矩阵A的尺寸为

     以下逐一道来。

1、向量空间基本概念

  • 向量:在本章中,“向量”一词可以是一个狭义的对象(向量),也可以是一个抽象的概念。广义而言,只要能够对它进行相加或数乘运算的,都可以称为“向量”。因此,我们可以把一个3*3的矩阵看作一个向量,也可以把一个函数看作一个向量。

  • 向量空间:如果在一个空间中,任取若干个向量进行相加或数乘,其计算结果仍然在该空间中,则称这个空间为向量空间。换句话说,向量空间对于相加和数乘运算是封闭的(closed)。
        最常见的向量空间:实数向量空间  ,它包含了全部拥有n个分量的列向量v。

        当然,基于向量的广义定义,全部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。秩的理解有以下几种不同的角度,但他们其实都在说同一个概念:

        1、矩阵的秩等于消元后矩阵的主列(pivot columns)的个数:r = # pivot columns;

        2、矩阵的秩等于矩阵A列空间的维度:r = dim C(A);

2、求解线性方程组

2.1、求解Ax=0
       求解Ax=0,实际上就是求解矩阵A的零空间,因为每一个解x都属于A的零空间以内。因为解x包含n个分量,故零空间是一个在的子空间。Ax=0的求解可以用消元法求得,为了直观性,以下先给出求解的算法步骤:
  1. 通过消元法(行变换),得到主列和自由列,其对应主变量和自由变量;
  2. 逐个为自由变量赋值1,其余自由变量赋值0,通过回代求得各个特殊解(special solutions);
  3. 将特殊解进行线性组合,则得到零空间,也即方程组的解。
      其中有一些知识点:若消元后得到r个主列,则自由列的个数当为n-r;与之相对,主变量个数为r,自由变量个数为n-r。而特殊解的个数与自由变量的数目相同。另外,如前所述,主列的个数也是矩阵的秩rank(A)。

      以上消元法求解十分简单,也是一般线性代数课程必教的求解方法。然而,一般的教学往往止步于此,只关注其解法,忽略了很多有趣的地方。

      我们来看个例子:

      矩阵    ,我们尝试通过消元法得到其最简形式(reduced form)。所谓最简,就是主元为1,且主元的上下元素皆为0。(该求解过程能够用MATLAB中的指令:R=rref(A) 实现)

     得到最简形式为:

      

      从中我们可以看到代表主列的矩阵  ,它是一个r*r的单位阵;以及自由列的矩阵 ,一个r*(n-r)的矩阵F。因此,最简形式可以表示成以下形式:(注意,实际中有可能和F会相互“镶嵌”在一起)

       

       为了求得零向量空间,我们可以构建一个由特殊解作为列向量的零空间矩阵N,其满足:RN=0。可以求得:

       

      因此,,即算法中为自由变量逐个赋1的步骤;,即自由列矩阵的相反数。由此可以得到特殊解为:

       ,  

       故线性方程组的解为:

       

2.2、求解Ax=b
       有了2.1小节的基础,求解Ax=b就简单多了。首先,该方程组可解的条件为:向量b处于A的列空间当中。原因很简单:因为A的列空间包含了其列向量所有的线性组合,若要找到一个组合(即解x)使其结果为b,则b首先必须在A的列空间当中。
       同样我们首先列出算法:
  1. 通过消元法(行变换),得到主列和自由列,其对应主变量和自由变量;
  2. 将全部自由变量设为0,回代求解所有主变量,得到一个特解 
  3. 令b=0,用上节方法求得A的零空间 
  4. Ax=b的全解为:
        算法中有几个重要的知识点:全解=特解+零空间,这是一个非常重要的公式,也称为线性方程组的解结构。另外,我们可以用几何方法对此进行理解:全解是一个穿过特解  的“平面”,即由零空间从原点平移至点得到。(因此全解不是一个子空间)
2.3、矩阵的秩
        本小节的内容是矩阵A的秩与线性方程组解的关系,包括方程组的可解性以及解个数的多少。对于一个行数为m、列数为n的矩阵A,首先其秩必须同时满足:。其中,r的取值有以下几种情况:
  1. 满列秩,即 r=n<m。这种情况下,矩阵没有自由列和自由变量,即 。因此,矩阵A的零空间只有零向量,即线性方程组的全解只包含特解:。这时,方程组将有0个或1个解(取决于方程组是否可解,即b是否在A的列空间当中)。
  2. 满行秩,即 r=m<n。在这种情况下,由于 r=m,其列空间为整个m维向量空间,因此m维向量b必然处于矩阵A的列空间当中,故方程组必定有解。另外,矩阵必定会存在自由列和自由向量,即。因此,矩阵A的零空间必然有非零向量,所以方程组必定有无数个解
  3. 满秩,即 r=m=n。这时,矩阵A为可逆矩阵,且R=I。因此,方程组必然有且仅有一个解
  4. 非满秩,即 r<m, r<n。这时,,由上述分析可见,方程组有0个或无数个解

3、4个基本子空间

       4个基本子空间是这章的核心,理解了4个基本子空间的维度、基,便可以理解这一章所述的内容。4个基本子空间分别是:
  1. 列空间(Column Space) 
  2. 零空间(Nullspace) 
  3. 行空间(Row Space) 
  4. 左零空间(Nullsapce of 
       它们的一些性质可以由下图很好的总结:



        注意,图中下方的dimension分别是 n-r 和 m-r。
        其中,有几点值得关注的地方:
  • 矩阵A行空间的维度与列空间相同,都等于矩阵的秩 r。我们来看看为什么:
        首先看行空间。需要指出的是,矩阵A经过消元后得到最简形式R,这个过程是通过行变换实现的,即行向量的线性组合,因此不会改变矩阵A的行空间,即。而行空间是由行向量线性组合而成,因此R中的非零行的线性组合可以生成行空间,其个数为主元个数,即为矩阵的秩r。另外,我们也找到了矩阵A行空间的基,即R中r个主元所在的行(非零行)。
         再来看列空间。需要指出的是,经过行变换后,矩阵A的列空间已经发生改变,即。但是,它们具有相同的零空间,即具有相同使列向量组合为零的组合,因此相对应的r个主列都是独立。所以矩阵A的列空间的维度也是矩阵的秩r,列空间的基为A中的主列(注意不是R中的!)。
  • 矩阵A零空间的维度为n-r,左零空间的维度为m-r。这是为什么呢?它们的基又是什么呢?
        先来看零空间。矩阵A零空间的维度等于自由变量的个数,因此为n-r。由3.2小节可以看到,零空间由特殊解的线性组合得到,因此零空间的基即为n-r个特殊解。
        再来看左零空间。为什么被称为左零空间?很显然,因为它是满足的解构成的空间。左零空间的维度类比于零空间。由于,因此,即维度为m-r。左零空间的基可以通过下面方法得到:
        对矩阵A消元时我们有消元矩阵E满足:,对应3.2小节中的矩阵A,即:
        
         因为我们要找的就是使矩阵A行向量的线性组合为零的组合,因此R中的零行所对应的E中的行向量(上例中的行3)即为左零空间的基。总而言之,矩阵A左零空间的基为:与R中的m-r个零行所对应的E中的行向量。

5、总结

        向量空间和子空间是线性代数里十分重要的概念。通过这次重温,我对向量空间的重要性有了更深的认识,也学习了4个基本子空间的性质与相互之间的关系。总的来说,熟练掌握4个基本子空间,并且能够将其与线性方程组的求解联系起来,那么这章应该就算学懂了。
        最后,留下两道比较有趣的判断题供大家动动脑:
  1. 如果有方阵,那么是否一定有 ?
  2. 如果矩阵A、B拥有相同的4个基本子空间,那么是否一定有 (c为任意常数) ?
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值