精华内容
下载资源
问答
  • 判断集合是否为向量空间
    千次阅读
    2021-11-15 14:33:22

    线性代数之 向量空间,基,子空间,列空间,零空间,秩

    前言

    本篇介绍向量空间的有关内容。向量空间实际上是一个群。

    向量空间

    定义:向量空间是由向量构成的非空集合 V V V,该集合上定义了两种运算,即加法和标量乘法,并且存在一个零向量 0 ⃗ \vec 0 0 ;向量空间中所有向量的运算都是封闭的,即向量空间中的运算不会超出空间外( u + v ∈ V , a 1 u ∈ V u+v\in V, a_1u\in V u+vV,a1uV)。

    举例: R n R^{n} Rn是一个向量空间,包含了所有n维向量。

    向量空间 V V V中的所有向量如果能够被一组线性无关的向量 v ⃗ 1 , v ⃗ 2 , … , v ⃗ k \vec v_1,\vec v_2,\dots, \vec v_k v 1,v 2,,v k的线性表示,则称该向量组是向量空间 V V V的一个基。一个向量空间可以有很多组基,但是基的维度是相同的。

    子空间

    定义:由向量构成的非空集合 H H H中,存在向量空间 V V V中的零向量,并且 H H H中任意的向量加法和标量乘法都是封闭的,则 H H H V V V的一个子空间。

    可以看出, H H H是自身的子空间, H H H V V V的子空间, V V V R n R^n Rn的子空间。

    生成子空间

    定义:向量 v ⃗ 1 , v ⃗ 2 , … , v ⃗ k \vec v_1,\vec v_2,\dots, \vec v_k v 1,v 2,,v k在向量空间 V V V中,则 v ⃗ 1 , v ⃗ 2 , … , v ⃗ k \vec v_1,\vec v_2,\dots, \vec v_k v 1,v 2,,v k的所有线性组合表示的向量的集合 H H H V V V的一个子空间,记 H = S p a n { v ⃗ 1 , v ⃗ 2 , … , v ⃗ k } H=Span\{\vec v_1,\vec v_2,\dots, \vec v_k \} H=Span{v 1,v 2,,v k},称 H H H { v ⃗ 1 , v ⃗ 2 , … , v ⃗ k } \{\vec v_1,\vec v_2,\dots, \vec v_k \} {v 1,v 2,,v k}生成的 V V V的子空间。

    生成集定理:如果 S = { v ⃗ 1 , v ⃗ 2 , … , v ⃗ k   } ∈ V , H = S p a n { v ⃗ 1 , v ⃗ 2 , … , v ⃗ k } S=\{\vec v_1,\vec v_2,\dots, \vec v_k \ \}\in V, H=Span\{\vec v_1,\vec v_2,\dots, \vec v_k \} S={v 1,v 2,,v k }V,H=Span{v 1,v 2,,v k} S S S中的某个向量 v ⃗ i \vec v_i v i是其它向量的线性组合,则将 v ⃗ i \vec v_i v i去除后的 S S S仍然能够生成向量空间 H H H,并且如果 H ≠ { 0 } H \ne \{0\} H={0},则 S S S的某一子集是向量空间 H H H的基。

    列空间

    定义:矩阵 A A A的列向量生成的向量空间称为 A A A的列空间,记为 C o l A Col A ColA C o l A Col A ColA A A A的列向量的所有线性组合的集合。

    结合上一篇矩阵乘法的本质可知,方程 A x = b Ax=b Ax=b是否有解,就是判断向量 b b b是否在 A A A的列空间中。

    如果 A ∈ R m × n A\in R^{m\times n} ARm×n,则 C o l A ∈ R n Col A\in R^n ColARn

    零空间

    定义:满足矩阵方程 A x = 0 Ax=0 Ax=0的所有解向量的集合称为 A A A的零空间,记为 N u l A Nul A NulA

    如果 A ∈ R m × n A\in R^{m\times n} ARm×n,则 N u l A ∈ R m Nul A\in R^m NulARm

    向量空间的维数

    向量空间 V V V的一个基中包含的向量个数称为向量空间的维数,记为 d i m V dim V dimV

    C o l A Col A ColA的维数是矩阵 A A A的列向量的主元列数。
    N u l A Nul A NulA的维数是方程 A x = 0 Ax=0 Ax=0 的自由变量的个数。

    矩阵的秩

    对于矩阵 A ∈ R m × n A\in R^{m\times n} ARm×n A A A的秩即 A A A的列空间的维数,即 r a n k ( A ) = d i m C o l A rank(A)=dim Col A rank(A)=dimColA,并且有 r a n k A + d i m N u l A = n rank A+dim Nul A=n rankA+dimNulA=n

    更多相关内容
  • 空间: 在上一次https://www.cnblogs.com/webor2006/p/14306046.html...在之前的学习中用到了很多的“空间”这俩词,比如二维空间、三维空间,n维空间,但是一直还木有严谨的对它进行定义,而数学又是一门非常讲究...

    空间:

    在上一次https://www.cnblogs.com/webor2006/p/14306046.html学习了诸多在线性代数中非常核心的概念(线性组合、线性相关、线性无关、生成空间,空间的基...),这次则继续学习重要的核心概念(空间、维度、四大子空间)。在之前的学习中用到了很多的“空间”这俩词,比如二维空间、三维空间,n维空间,但是一直还木有严谨的对它进行定义,而数学又是一门非常讲究严谨的学科,所以这次专门针对“空间”的概念进行一个学习。

    什么是空间?

    空间是一个集合,通常叫这些空间为欧几里得空间,它是有序实数元组的集合,比如:

    (6,666)属于二维欧几里得空间【对于上面的”有序“这个修饰词也很好理解,因为(666,6)表示的是二维空间的另一个点】,其中用这个符合来表示:

    (3.14,0,sqrt(2))属于三维欧几里得空间,其中用这个符合来表示:

    如果是n维欧几里得空间,则表示为:

    其中对于欧几里得空间概念中的"有序实数元组"有点绕,所以也可以简单说欧几里得空间是点集;而以向量的视角来理解又可以说欧几里得空间是起点到原点的向量集合

    什么是向量空间?

    由于空间【为了叙述方便,通常将欧几里得这四个字给省略掉】是一个集合,对于线性代数而言不关心杂乱无章的集合,而只关心具有某些特殊性质的空间---向量空间。向量空间就是指空间中的元素是"向量",关于向量咱们已经非常熟悉了,不过这里还是以严谨的态度对它再做出一个定义【当然是数学科学家们给出的】,对于向量而言:

    我们必须定义两种运算:加法和数量乘法,回忆一下之前所学向量基本运算:

    另外只定义这俩运算还不够,因为有可能胡乱定义的对吧,所以还必须满足十条性质【不需要记,有个了解既可,因为本身我们在线性代数中所学的向量本身就具备有这十条性质了】:

    1、如果u,v都属于v,则u+v属于v;

    2、如果u属于v,k是一个实数,则ku属于v;

    这两条是向量的核心性质,通常在数学上又被称为封闭(closure),对于这个封闭也很好理解,也就是对于上面两个操作之后的向量还是在该空间中,不管怎么算都逃不过这个空间。举一个简单不满足封闭性的空间例子,比如对于一个整数集合的加法是满足封闭性的,因为整数+整数一定还是整数,但是对于除法是不满足的封闭性,整数/整数可能会是小数。

    在此基础上,其它剩余的性质就比较好理解了:

    3、加法交换律:u + v = v + u;

    4、加法结合律:(u + v) + w = u + (v + w);

    5、存在O【零向量】属于向量空间,使得u + O = u;

    6、对于每一个u存在-u,使得u + (-u) = O;

    7、如果u属于V,k是一个整数,则ku属于V;

    8、数量乘结合律:(kc)u = k (cu);

    9、数量乘分配律:k(u + v) = ku + kv;

    10、1 * u = u;

    而对于我们所说的欧几里得空间:

    就是向量空间,因为它满足向量空间的定义,因为本身对于向量的两个基本运算【向量的加法和数量乘法】就已经满足了,对于剩下的8条性质也可以由这俩基本运算推导出来,其实在之前向量的学习过程中已经推导过的,其中对于十条性质中有两个稍特殊一点,第一个是在欧几里得空间中一定是有一个零向量,如下:

    有序实数元组中每一个元素都为0,另一条性质中的第6条【对于每一个u存在-u,使得u + (-u) = O】,它长这样:

    这里要注意:向量空间不仅仅只有欧几里得空间,世界上有无数的向量空间,每一个不同的向量空间其中所对应的元素也是不一样的,所以对于不同的向量空间的基本运算其实也是不一样的,所以下面来对非欧几里得空间进行一个了解。 

    广义向量空间【了解】:

    先来回忆一下向量空间的定义:

    向量空间是指一个集合,集合中的元素可以定义两种运算:加法和数量乘法,使得满足十条性质。

    其中欧几里得空间就是向量空间,我们通常说起向量,就是指欧几里得空间中的元素。为了区别,通常把非欧几里得空间的向量空间,称为广义向量空间。那这些广义的向量空间长啥样呢?下面举个例子:

    方阵:

    对于所有的2*2方阵,其实就构成了一个向量空间,因为它的加法就是满足矩阵加法,而数量乘法就是矩阵的数量乘法, 另外还遵行另外的8个向量空间的性质的,所以说这个向量空间中的元素不再是向量了,而是一个2*2的方阵了,同样的可以上升到n阶也是满足的,也就是所有的n阶方阵其实都可以构成一个向量空间,注意:这个向量空间中的n阶的n必须是一样的,如果像2*2和方阵和3*3的方阵构成的空间就不是向量空间了。

    矩阵:

    其实进一步的,像所有的2*3的矩阵,也可以构成一个向量空间。同样的对于所有的n*m的矩阵也可以构成一个向量空间。

    多项式:

    所有的多项式,也可以构成一个向量空间,如:

    其中加法就是多项式的加法;而乘法就是多项式乘以一个数。其中要注意这里对阶数没有要求,上面式子是一个p阶的多项式,而它可以跟非p阶的一起构成向量空间的。

    函数:

    所有的某类函数,也可以构成一个向量空间,这块就不举例子了,了解一下。

    那有木有不能形成一个向量空间的例子呢?有!!!看下面:

    很显然这样的矩阵【主对角线之外都是0】可以形成一个向量空间。但是!!

    它形成不了向量空间的,因为如果这样的矩阵相加第一个元素就变为2了,也就是不在是同一个空间上了,所以就不满足向量空间的定义了。

    子空间:

    先来看一下子空间的定义:假设V是一个向量空间,如果S是V的子集,且S还是一个向量空间,则称S是V的一个子空间。 比如:

    所有的2阶方阵都形成了一个向量空间,我们用V表示,而所有如下形式的方阵也可以形成一个向量空间,我们用S来表示:

    很明显S就是V的子空间。但是!!在上面也举了一个这样的方阵是构成不了向量空间的,将其记为S:

    此时S就不是V的子空间了。所以对于子空间的定义可以是如下:

    假设V是一个向量空间,如果S是V的子集,且S还是一个向量空间,则称S是V的一个子空间;

    但是标红的S要判断它是否是向量空间则需要看向量空间的十条性质啊,其实不用这么麻烦,可以简化成下面这个定义:

    假设V是一个向量空间,如果S是V的子集,且S对加法和数量乘法封闭【满足这两条就一定满足向量空间的十大性质】,则称S是V的子空间;

    那为啥只要S对加法和数量乘法封闭满足就能说明这个S就能满足向量空间的十大性质呢?下面证明一下,目前对于十大性质已经满足了这两条:

    其中根据2个基本运算其实是可以很自然的推出其它6个性质,因为本身V是一个向量空间就已经满足各个加法和数量乘法的各个运算的性质了,而由于S是V的子集,所以对于S上的加法和数量乘法是没有变化的,依然是满足剩下的6个性质,所以最后只剩下对于5、6条进行证明就可以说S这个子集就满足向量空间的十大特性了,不过要来证明最后的这俩特性得先绕一下小弯,先来看下面的东东。

    向量空间的性质:

    这里先回到向量空间的性质上来,若V是一个向量空间,则满足:

    • 存在O零向量属于向量空间,使得u + O = u;
    • 如果向量u属于V,k是一个实数,则ku属于V;
      那如果k=0,是不是0u = O(零向量)?如果O零向量用欧几里得空间来理解就是向量里面的元素全为0,这个等式很容易推出来,但是!!!目前是站在更一般的空间角度来思考这个问题,所以下面来证明一下0u = O:
      若V是一个向量空间,则:0u = O:
      证明:
      1、0 = 0 + 0,这个没啥可说的;
      2、此时等式两边同时乘以u,就有:0u = (0 + 0)u;
      3、而根据分配率【向量空间十大性质第9点】,右边的又可以变为:0u = 0u + 0u;
      4、根据向量空间的第6条性质:向量空间V中的每一个向量u,都存在-u,使得u + (-u) = O,所以可以假设对于0u,存在-0u,使得0u + (-0u) = 0,所以等式两边都可以加上-0u,如下:0u + (-0u) = 0u + 0u + (-0u),之前的要这么绕,就是为了往0u = O这个待论证的等式上靠,所以此时就可以变为:

      5、而等于右边的(0u + O)= 0u,所以等式就可以化为O = 0u,而左右交换一下,不就是0u = O了么?
      这样求出来的这个等式有啥意义呢?就可以很轻松的求解出向量空间中的O零向量了,也就是用0乘以空间中的任何一个向量就可以得到O零向量了。

     下面再来看一个性质,对于V是一个向量空间,则满足:

    • 对于每一个u存在-u,使得u + (-u) = O;
    • 如果向量u属于V,k是一个实数,则ku属于V;
      其中有一个新的性质,就是-u = -1u,下面来证明一下:

    若V是一个向量空间,则:-u = -1u:
    证明:
    1、这里看u + (-1u)它的结果,根据向量空间的最后一条性质就可以变成:1u + (-1u)。
    2、根据分配率又可以变为:(1 - 1)u。
    3、此时就变为0u。

    4、而根据上面所证明的0u=O,所以就可以得到u + (-1u) = O,而根据十大性质的第6条u + (-u) = O,是不是此时就可以证明-u = -1u了?
    这样求出来的这个等式有何意义呢?同样的根据这个等式就可以很轻松的求解出向量空间中负向量是多少了,也就用-1*向量既可。

    好,知道了上面标红的两条性质之后,接下来就可以回到子空间的概念待证明的地方了:

    此时需要根据S对加法和数量乘法封闭来证明向量空间的最后两个性质也能成立,下面来证明一下【这块比较绕,一定要结合上面论证的两个红色的关于向量空间的新性质来进行理解】:

    对于u属于S,

    5、存在O【零向量】属于向量空间S,使得u + O = u;

    由于u属于S,很明显0u也属于S,而根据上面的新的性质0u=O,是不是说明O零向量属于S。此性质就得证了。

    6、对于每一个u存在-u属于S,使得u + (-u) = O;

    同样的,由于u属于S,那-1u也是属于S,而根据上面的新的物质-1u=-u,那也说明-u也属于S。此性质就得证了。

    此时S已经就满足向量空间的十大特性了,而由于S是V的子集,V本身也是一个向量空间,那么S就是V的子空间了。这里用了一些论证的过程,其实不用太过在意推论过程,这里记住如果S是V的子集,然后对于S不用一一来验证它的向量空间的十大特性,只需要满足对加法和数量乘法封闭这两条特性,就可以很安全的说S是V的子空间【子空间的意思就是它也是一个向量空间】。另外还要知道这么个结论:

    如果V是一个向量空间,那么V的任何子空间都一定包含O(零向量);对于V的子空间S,如果u属于S,则-u也一定属于S。

    直观理解欧几里得空间的子空间:

    上面咱们已经对于子空间有了一定的理论上的了解之后,下面回到二维坐标平面直观的感受一下子空间,对于欧几里得空间的零向量为x轴和y轴所交叉的位置:

    而在这空间中任意拿到一个向量u:

    就一定能找到和它反向的向量-u,如下:

    接下来看一下什么是子空间:

    过原点画一条直线,所以落在这直线上的点所对应的向量都在这条直线所表示的子空间中,比如:

    很显然对于在这直线上的所有向量都是对加法和乘法封闭的,因为在这直线上任意取一个向量对其进行加法或者一个数量乘法肯定也还是在这条直线上,因此!!我们就可以说这条直线是整个二维欧几里得空间的子空间。

    问题一:那是不是二维平面上所有的直线都是欧几里得空间的子空间呢?

    答案是不是的,比较咱们让这条直线稍稍挪动一下位置让其不过原点了:

    很显然这根直线也是二维平面的一个子集【注意:此时还不知道它是不是它的子空间】,也就是这根直线上所有的向量也都在这个平面上,注意加粗的这句话,此时在欧几里得空间中对于该直线上所有的向量是指从原点到这根直接上的点的有向的线段,比如以下两个向量:

    这样一画出来是不是就可以看出这两个向量对于加法是不封闭的,因为这两个向量加法之后的向量是长这样:

    所以很显然这根直线确实是一个空间,并且这个空间上所有的元素确实是欧几里得空间所对应的一个“子集”,但是!!!我们不能说这根直线是欧几里得的一个子空间,因为这个空间根本不是一个向量空间,对于加法根本不封闭,同样的对于向量的数量乘法也不封装,比如咱们对其中一个向量乘以一个负数,得到的结果如下【如绿色的向量】:

    既然对于加法和数量乘法都不封闭,很显然足以说明该空间不是一个向量空间,就更别谈子空间啦~~另外从上面推出的一个向量空间的性质:

    从图中可以看出,这根直线压根不包含O(零向量),所以也能证明出该直线空间不是整个欧几里得的子空间。问题二:那是不是说只要包含O(零向量)的空间就一定是子空间呢?

    答案也是不一定的,比如说这样子的:

    是从O为原点空间发射出去的一根射线,很显然它是二维空间中的一个“子集【一定要注意措辞,子集非子空间】”,那它是不是一个子空间呢?那下面来看一下它是不是对于加法和数量乘法封闭,很显然对于加法是封闭的,在这根射线上任取一个向量:

    随便取2个向量相加还是在这个射线上,但是!!!数量乘法就不满足封闭性了,乘以负数就可以看出了【蓝色向量】:

    所以从这点就可以看出这根直线所代表的空间不是子空间,不过从上面所推出向量空间性质的这点也能看出来:

    很显然咱们的-u不属于这根直线所代表的空间中,这样就对咱们上面推出的向量空间的性质有了一个更加直观的认识,另外对于过原点的子空间从维度角度也可以进一步直观理解:

    很显然这根直线是一个一维平面的,而整个欧几里得是一个二维平面,很显然一维平面是二维平面的一个子平面,也能对于这个“子”有一个直观的认识。

    那对于三维空间呢?其实是过原点的一个平面就是三维空间中的一个子空间,对于平面上所有的向量一定是满足加法和数量乘法的封闭性的【二维的平面】;同样的对于过原点的一条直线也是三维空间的一个子空间,因为直线上的向量对于加法和数量乘法也是封闭的【一维的直线】;甚至对于原点本身也是三维空间的一个子空间,因为原点本身就是由(0,0,0)构成的,而它里面取出一个元素也还是(0,0,0),那很显然对于加法和数量乘法也都是在这个(0,0,0)的集合本身中,所以原点也是三维空间的一个子空间【原点】;从这个阐述可以看到,对于三维空间来说,它的子空间可以是二维的平面 、一维的直线,原点,那么对于N维空间也可以推出:

    过原点的一个m维空间(m < n),是n维空间的一个子空间。

    对于子空间由于它也是一个向量空间, 这使得在向量空间中的所有性质都适用于子空间,而对于子空间最典型的应用就是机器学习的算法【关于机器学习未来有时间一定要学习学习,逼格好高的样子】,因为在机器学习时有可能面对数据的维度太高了,通常需要做一步降维操作,而这个降维操作通常就是高维数据所代表的空间找到一个子空间,这些数据在子空间也能很好的找到它们的位置 ,同时信息也没有丢失,这样很多时候就只需要研究子空间就可以了,而不用管复杂的高维空间,因为子空间维度低相对而言也要简单很多,计算速度也会更快性能也更好。

    维度:

    在之前线性代数的学习中通常都是以二空间,三空间或者是n空间视角来进行研究,但是到底啥是维度呢目前一直木有严谨数学上的定义,所以这里从线性代数更加广义向量空间的角度来定义一下维度。

    先给一个大前提说明:以后说到“空间”一词记得就是指的“向量空间”,而向量空间最常用的一种就是我们一直在用的“欧几里得空间”,所以以后线性代数的学习一说到“向量空间”如果没特殊说明也是指的“欧几里得空间”。

    还记得之前https://www.cnblogs.com/webor2006/p/14306046.html学习时谈到了空间的基的概念么?回忆一下:

    也就是一组向量要能:

    1、生成空间;

    2、线性无关;

    有了空间的基我们就可以用来描述整个空间了,而对于空间的基是有一组向量,而一个空间的基中,向量的个数,称为维度。所以下面具体看一下:

    1、二维欧几里得空间的维度是2,而它的基中的向量其实就是标准正交基:

    而对于维度可以用这样的符号来表示:

    其中dim是dimension的缩写,表示维度的意思,R的平方表示二维欧几里得空间。

    2、三维欧几里得空间的维度为3,而它的基中的向量也是三个标准正交基:

    用符号表示就是:

    3、n维的欧几里得空间的维度为n,所以它用符号表示就为:

    根据上面的几种情况可以汇总一下:一个(欧几里得)空间的任何一组基,其中的向量个数都是相同的,这个比较好理解,拿二维的基来看:

    每个基的向量个数都是跟维度2个数是相同的对吧。所以对于上面关于维度的概念的描述:“一个空间的基中,向量的个数,称为维度”也更加好理解了,也就是从空间中找到一组基,看这一组基的向量个数为多少,此数量就是空间的维度,注意,这个就是看向量里面的元数个数【如果在子空间这一点就有问题了】。

    子空间和维度:

    对于看一个空间的维度其实就是看它的基中向量的元数的个数,但是!!如果涉及到子空间的情况此时就得要小心了,再这样看待维度可能就是有问题的,

    比如还是回到之前举的二维空间的子空间的例子:

    而这条直线为二维欧几里得空间的子空间对吧,在这条直线上所有的向量其实都是包含有两个数字的,比如这根直线是跟x,y轴成45度的直线,那么这根直线上的每一个点其实就是(1,1)、(2,2)、(3,3)...这样子的点,向量的个数是2,而从空间的角度来看待这根直线,先来找这个子空间的基,其实任何一个这条直线上的非零向量,都可以生成这条直线(子空间)上的所有向量,所以这个非零向量就是这根直线子空间的一组基,而根据维度的定义,这根直线所代表的子空间的维度却是为1的。

    再拿三维空间的子空间来举例,如之前关于子空间的说明:

    对于三维空间来说,它的维度为:

    而下面来看一下它的子空间的几条说明:

    1、过原点的一个平面,是三维空间的一个子空间,这个子空间用它来表示:

    那么它的维度其实是为2的:

    但是!!!它的基中的向量里面的元数个数是3。

    2、过原点的一条直线,是三维空间的一个子空间,这个子空间用它来表示:

    而它的基只能有一个,所以它的维度是1:

    但是!!!它的基中的向量里面的元数个数是3。

    3、原点本身,是三维空间的一个子空间,这种情况很特殊,对于原点本身来说它没有无数组基,它只有唯一的O向量这组基,对于这种情况我们认为它是没有任何自由度的,被压缩到只有一个唯一的位置,所以它的维度为0,所以子空间用它来表示:

    由于它的基虽说有一个O向量,但是维度为0,可以表示为:

    但是!!!它的基中的向量里面的元数个数是3。

    好,下面先来对欧几里得空间的维度再来复习一下:

    一个欧几里得空间的任何一组基,其中的向量个数是相同的。

    一个欧几里得空间的维度是固定的。

     那么对于下面这句话看描述对么?

    一个欧几里得空间中的每一个有序实数元组包含n个元素,这个空间的维度就为n?

    很明显在子空间的情况下这句话就不对了,在上面的证明中也可以看到了,所以,在面对下面这个问题时回答就不是那么简单了:

    此时就得看被这三个向量所生成的空间的基中有多少个向量,这里先回忆一下之前https://www.cnblogs.com/webor2006/p/14306046.html对于生成空间的一个性质:

    而其中还有这么一个性质:

    回到咱们要解答的这个问题上,很显然对于u和v这两个向量是线性相关的【因为v*-2 = u;u * -1/2 = v,所以u可以表示v和w的一个线性组合,同理v也可以表示u和w的一个线性组合】,所以可以删除u(或v),那咱们选择把u给删去,那看一下v和w之间的关系,显示它们俩是线性无关的,所以这个生成空间的维度就为2,用三维空间来直观看一下也能清晰的感受到是一个2维平面:

    其中标灰的那个区域显示就是个二维平面,也就是整个生成空间的维度为2。所以对于维度的计算不能以“一个欧几里得空间中的每一个有序实数元组包含n个元素,这个空间的维度就为n”它做为标准进行计算,而应该是:

    一组n维向量:


    它们的生成空间,是n维空间的子空间。

    拿咱们举例的u,v,w这三个向量生成空间来理解,u,v,w是三维向量,其生成空间是三维空间的子空间,但是不能说这三个向量组成的空间的维度就是3,而实际它们生成的空间维度是2。

    对于上面所说的结论都是针对欧几里得空间而言的,实际上这们也可以扩展到更加广义的向量空间,只是对于线性代数的学习一般是基于欧几里得空间来进行探究的,具体如下:

    一组向量:


    属于空间V,则它们的生成空间是V的子空间。
    一组n维向量:

    这们的生成空间,是n维空间的子空间,换言之如果这组向量生成空间的维度是m的话,那么m肯定是<= n的。

    最后总的来说:“一个空间的基中,向量的个数,称为维度”,千万不要把向量中有多少个元素就认为是空间的维度了就成~~

    行空间和矩阵的行秩:

    行空间:

    在上面我们对于这样的问题进行了一个剖析:

    显然:u 和 v 是线性相关的,所以可以删除u (或v);而又由于u 和 w 线性无关,所以这个生成空间的维度为2。

    用上面的这种方式我们就可以扩展到n维向量:

    给出一组n维向量:


    其生成空间的维度是多少?其实就归结为 找到这组向量有多少和其他向量线性相关,然后将其给删除掉,直到剩下的向量它们是线性无关。

    那么问题来了,对于上面举的三个向量你用肉眼一看不知道哪些向量是线性相关的,但是如果向量的数量更多一些,维度更大一些的话,这种肉眼判断的方式肯定就很难了,那有木有一种系统性的方法能得到这个问题的答案呢?当然有,而且这方法是之前已经学过了的,之前https://www.cnblogs.com/webor2006/p/14306046.html在学习线性相关时就举过例子:

    而对于上面增广矩阵消元的过程可以抽象为:

    其中对于标红的这个式子归一处理之后,就可以发现:

    其实它就等于原来矩阵行向量的一个线性组合,而由于咱们这个例子当上面高斯约旦消元之后最后一行是一个0行,所以此时就有如下等式:

    这就意味着r1、r2、r3向量存在非0的系数,使得线性结果的组合为0,换言之就是这三个向量是线性相关的,因为线性相关的定义如下:

    而对于r3这个向量很显然就是由r1和r2的行向量进行加加减减的操作,所以就可以变换成这样的一个式子:

    也就是r3可以写成是r1和r2的线性组合,那么此时就可以把r3这个向量给删除掉了,好!!!基于这样的一个结论,假如说对于一个有m行的增广矩阵进行高斯约旦消元法后如果有x行都为0的话,那么这x行所对应的行向量可以表示成m-x行的线性组合,所以这x行的向量全都可以删除掉,所以,对于咱们的问题就可以定结论了:

    给出一组n维向量:


    其生成空间的维度是多少?其实就归结为 找到这组向量有多少和其他向量线性相关,然后将其给删除掉,直到剩下的向量它们是线性无关。
    其方法是:

    将这组向量按照行排列成一个矩阵,执行Gauss-Jordan消元法(化为RREF行最简形式),非零行的个数既为其生成空间的维度。

    下面以这样的方式再对这个简单的例子进行一个维度的求解:

    将这三个向量一行行的罗列起来就形成这样的一个矩阵:

    将其执行Gauss-Jordan消元法,过程如下:

    其中可以看到非0行为2,所以就可以根据这种方法很轻松地算出来向量生成空间的维度了。

    那此时就可以回到主题上来,如小标题所示---行空间,其实很容易理解,对于一个矩阵我们知道:

    其中行向量生成的空间,称之为行空间(Row Space);

    其中列向量生成的空间,称之为列空间(Column Space);

    对于这个定义不仅仅只对于咱们举的这个方阵有效,对于一个长方阵一样有效,比如有一个3行4列的矩阵:

    其中行空间是一个4维空间的子集【因为向量是由4个元素组成,也就是4维向量】。而扩展到m行n列的矩阵,行空间则是n维空间的子集;

    而列空间是一个3维空间的子集【因为向量是由3个元素组成,也就是3维向量】,而扩展到m行n列的矩阵,列空间则是m维空间的子集;

    矩阵的行铁:

    其中对于求解空间的维度看的是矩阵化为行最简形式的非零行的个数,由于对于行最简形式的非零行是非常重要,所有一个高大上的名词又出现了:

    一个矩阵的行最简形式的非零行数量称为矩阵的行秩(Row Rank)。

    所以,我们就可以说:

    行空间的维度,为矩阵的行秩。
    注意:对于维度和行秩作用的对象是不一样的,维度作用于空间,而行秩作用于矩阵,但是它们俩可以产生关联。

    另外再来探究一个话题:既然现在已经知道了行空间的维度是多少了,那能否进一步地找到行空间的一组基?毕竟只有找到了空间的一组基才能更好地理解这个空间,同时对于空间中的任何一个点就可以用这一组基表示它。其实结论很简单,还是拿之前举的三个简单的三维向量为例,化为行最简形式为:

    其实最终行最简形式的非零行就是行空间的一组基,下面来证明一下,为了证明方便,先来对于原矩阵和行最简形式的矩阵用字母代替一下:

    证明的关键就是A的行空间其实就是R的行空间,而怎么证明呢?其实有点像集合论中的证明方式,想一下如果想证明两个集合A,B相等的话,只需要证明A是B的子集,B又是A的子集就行了,也就是证明A集合中的任一一个元素都属于B,B集合中任一一个元素又都属于A,同理,咱们只要分别证明以下结论就成,具体如下:

    A的行空间的每一个向量,都在R的行空间中;

    B的行空间的每一个向量,都在A的行空间中;

    很显然这条证明是成立的,因为A的行空间的每一个向量其实就是A的行向量的线性组合,而根据高斯消元法从A通过矩阵的基本行变换得到的R,而R中的每一行也是原来A中每一行的线性组合,所以就可以证明“A的行空间的每一个向量,都在R的行空间中”,反之也能推出A的每一行也是R中每一行的线性组合,所以也能证明“B的行空间的每一个向量,都在A的行空间中”,不管这证明是多么的抽象,最终结论是:“A的行空间就等于R的行空间”,所以也可以说:

    R的行空间的基就是A的行空间的基,反之也成立,最后关于行空间的又一结论就出来了:“一个矩阵的行最简形式的非零行向量,就是A的行空间的基【注意:此时不是拿原矩阵的非零行作为A的行空间的基,而是化为最简形式矩阵的非零行向量,因为在之后的列空间的基学习中是有区别的,之后可以对比】”,所以回到咱们的这个简单例子,其中A的行空间的基就为R中的非零行的2个向量,用三维图来看的话就是一个平面,之前也看过:

    列空间:

    上面已经对于矩阵的行空间进行了一个详细学习,接下来则来看一下对应的列空间了, 还是回到这个话题:

    这个问题的解答关键之处就是看这组向量是否线性无关对吧?而上面已经道出了怎么求解这组向量线性无关了,但是这里可以回到线性组合中来直观的观察出来,也就是:

    看这个线性方程组只有唯一解?又回到了求解线性系统的问题了,很显然要求的这个是一个齐次线性组,所以只需要看系统矩阵就好了:

    将其化为行最简形式,过程如下:

    其中以列视角来看待的话,可以有主元列和自由列,回忆一下这块的概念https://www.cnblogs.com/webor2006/p/14280299.html

    而自由列上的元素意味着可以随便取值,当然也可以取非零值!拿第一行来说:

    它所对应的方程可以表示为:k1-0.5*k2 = 0,也就是k1 = 0.5*k2,是不是k2可以随便取一个值都有一个对应的k1?而k1取非零值是是不是就意味着咱们的向量是线性相关的,所以对于自由列的个数,为可以表示为其他向量线性组合的向量个数,也就是可以删掉的,回到咱们这个例子来看:

    这个向量就可以删掉了,而主元列的个数,为线性无关的向量个数,所以可以看出主元列的个数既为向量生成空间的维度!另外一个专列名词又出现了:

    主元列的个数,为列秩(Column Ranke),跟行秩对应的。

    所以与行秩之对应的就有如下结论了:

    m行n列,列空间是m维空间的子空间;

    一个矩阵的行最简形式的主元列数量称为矩阵的列秩;

    列空间的维度,为矩阵的列秩;

    那既然能求出列空间的维度了,那能否求出列空间的一组基【注意这个是跟行空间有区别的地方】?其实就是将其系数矩阵化为行最简形式:


    由于自由列可以表示其它列的线性组合,所以可以很放心的将其删除掉,剩下的主元列则全是线性无关的,所以:

    主元列的对应原矩阵的列,是列空间的一组基。一定要注意:

    这里一定要跟行空间求基的进行对比,回忆一下:

    这是因为行最简形式本身就是原矩阵的行进行行操作得来的,所以在上面也证明了行最简形式的行空间跟原矩阵的行空间是一个空间,但是!!这个性质在列空间中是不存在的,由于列矩阵在化为行最简形式时是对行进行变换,而非列,所以最终化为行最简形式的列已经跟原来矩阵的列没有关系了,这点一定要清楚。

    所以总结列空间基的求法就是:行最简形式主元列的对应原矩阵的列,是列空间的一组基。最后为了区别行空间和列空间下面对其对比总结一下【重要】:

    对于一个m行n列的矩阵:行空间:1、行空间是n维空间的子空间;

    2、行最简形式的非零行个数为矩阵的行秩;

    3、行空间的维度,为矩阵的行秩;

    4、行最简形式的非零行,是行空间的一组基;

    列空间:1、列空间是m维空间的子空间;

    2、行最简形式的主元列数就是矩阵的列秩;3、列空间的维度,为矩阵的列秩;

    4、主元列的对应原矩阵的列,是列空间的一组基;

    矩阵的秩和矩阵的逆:

    矩阵的秩:

    先来回忆一下上面所讲的矩阵的行秩和列秩:

    矩阵的列秩是看化为行最简形式的主元列的个数,为2;而对于它的行秩是看化为行最简形式后的非零行的个数:

    很显然该矩阵的行秩也为2,也就是矩阵的行秩=矩阵的列秩,这是不是一个巧合呢?其实不是巧合,任何矩阵的行秩跟列秩都相等,下面咱们来证明一下为啥相等:

    矩阵的行秩 = 矩阵的列秩
    证明:对于任何一个矩阵:

    经过高斯约旦消元法,其实最终会化成这样的一个形式:

    对于这个矩阵看起来有些晕,下面来解读一下它,对于行最简形式如果有0行一定是在行最简形式的最下面对吧?所以可以在零行与非零行之间画一条分隔线,像这样:

    另外对于非零行还可以绘制一条竖线,像这样:

    经过这么一个辅助线之后,有啥新发现么?其实是:

    其中主元列是一个方阵,但好像咱们之前举的矩阵化为行最简形式之后貌似不是上面的这个样子呀,回忆一下:

    很显然不是咱们预期要的那个形式,其实可以做一个变换让其变成预期的行最简形式,也就是让第二列和第三列交换一下位置就行了:

    其中左上角主元列的单位矩阵有r行r列:

    通过这样的视角通过将矩阵化为行最简形式后它的非0行一定等于主元列数,这不就证明了矩阵的行秩=矩阵的列秩,而且都排在了这个单位矩阵中,抽象来表达上面的矩阵形式,其实也就是:

    当然并不是所有的行最简形式都可以化成上面这种形式,可能是没有全0行,这点需要明白。

     既然矩阵的行秩=矩阵的列秩,那么可以统一把它们叫为“矩阵的秩(Rank)”,而秩又可以跟空间挂上勾,也就是矩阵的秩既是行空间的维度,又是列空间的维度,也能进一步推导出“一个矩阵的行空间和列空间维度相等!【注意:并没有说行空间跟列空间相等,而是说维度相等】”,其中对于这个结论“矩阵的秩=矩阵的行秩=矩阵的列秩”有啥用呢?非常有意义,在很多时候就可以快速地做出一些基本判断,比如看下面这个问题:

    u = (1, 1, 2),v = (2, 2, 3),w = (3, 3, 4)的生成空间的维度?

    很明显肉眼直观很难看出来,需要进行一番计算,但是!!!如果将这三个向量写成矩阵的形式【用行的形式还是列的形式组成都无所谓】,这里以行的方式吧,如下:

    以列视角一看,第一列和第二列很明显是线性相关了,所以它的列秩肯定<=2,不可能为3,而由于行秩=列秩,所以它生成空间的维度一定是<=2,而你如果以行视角来看很难看出u,v是线性相关对不?所以如果你知道了列秩就很轻松地能知道行秩了,大大加快计算速度。

    到目前为止,我们来梳理一下关于行空间与列空间的结论:

    对于一个m行m列的矩阵:行空间是n维空间的子空间;列空间是m维空间的子空间;

    对于一个n阶方阵(n行n列):

    行空间是n维空间的子空间;列空间是n维空间的子空间;

    其中关于标红的n阶方阵有个问题来了:“何时行空间和列空间都是n维空间?”,其实也就是说矩阵的行秩和矩阵的列秩都为n,那不就是矩阵的秩r = n,此时又有一个新概念来了,称这样的n阶方阵为满秩(Full Rank),也就是对于这个矩阵来说每一行都是非0行,每一列都是主元列,没有自由列和0行,所以有如下结论:

    对于一个n阶方阵,矩阵的秩r = n是满秩(Full Rank),而它的行最简形式的非零行个数为n,行最简形式的主元列个数也为n,此时可以推出:

    也就是行最简形式是单位矩阵,因为对于方阵的行最简形式在之前的N多命题中已经明确给出结论了,回忆一下:

    而经过矩阵的秩的学习,对于方阵的N多特性此时又可以进行相关的扩展了,如下:

    实现矩阵的秩:

    接下来则回到python中对于矩阵的秩的求角进行一下实现,对于求矩阵的秩可以用行秩也要以用列秩,这里采用行秩的方式来求,因为它相对而言较简单,只需要化为行最简形式之后数非0行的个数既可。

    修改LinearSystem:

    由于求矩阵的秩也是要对它进行线性系统的求解,所以还是在LinearSystem中定义一个方法:

    而由于当时这个类在设计化为行最简形式时是一定要指定b的,回忆一下:

    而对于矩阵秩的求解是不需要传这个b的,所以修改一下代码,让其可以为空,修改如下:

    进行矩阵的高斯消元:

    这块就比较简单了,由于高斯消元方法已经封装好了,如下:

    判断行最简形式的非0行的个数:

    其实就是行最简形式矩阵中的每一行是否是0向量,如果不是则+1既可,所以先生成一个零向量:

    然后再来进行每行的判断,如下:

    重载Vector的不等号:

    由于咱们在计算非0行时用到了向量的不等号运算符,如下:

    而目前Vector类中并没有重载此符号,所以重载一下:

    判断两个向量是否相等其实也就是判断向量中每个元素是否相等,那程序如何实现呢,如下:

    接下来在元素相等的情况下则需要一个个元素进行比较,此时python的写法就需要用到zip将两个向量列表打包,具体写法如下:

    此时由于元素有可能是浮点,所以对于元素的相等得要用之前咱们封装好的这个相等判断:

    所以修改一下:

    而咱们需要所有的元素两两相等,此时就需要这样办了:

    有了等于号的实现,对于不等号就可以很轻松的实现了,如下:

    测试:

    先来验证一下向量的等于与不等于的逻辑:

    接下来再测试一下不等:

    接下来就可以测试矩阵秩的方法了:

    再来看一个:

    再来瞅一个:

    零空间与看待零空间的三个视角:

    零空间:

    接下来则学习一下另外一个根据矩阵而得出的重要的子空间----零空间, 它相对于行空间和列空间要稍微抽象一点,这是因为对于行空间和列空间我们可以直接看到生成子空间中的所有向量就是这个矩阵的行向量或者是列向量,但是!!!生成一个零空间所对应的那些向量并不能通过一个矩阵获得,那么什么是零空间呢?先来证明一个非常重要的结论:

    一个齐次线性方程组的所有解,形成一个向量空间。
    证明:
    先来看一个例子:

    其中矩阵有3列,对应的未知数就有3个(x1,x2,x3),上面待证明的结论的意思是所有满足这个奇次线性方程组解的向量就形成了一个向量空间, 下面来看证明过程:

    1、一个齐次线性方程组一定是有解的。

    2、而有解就有可能是唯一零解,也就是空间中只有0这一个向量,很显然这种情况这个线性方程的解就是一个向量空间,这个向量的维度为0;

    3、而如果有无数解的情况,就稍复杂一些了,接下来就得证明无数解也能构成向量空间:如果系数矩阵为m*n的矩阵,解为n维向量,如果解形成向量空间,则该向量空间是n维欧几里得空间的一个子空间,其中为啥n维空间就是欧几里得空间呢?因为每一个解都是有序的实数元组,而回忆一下欧几里得空间的定义:

    而要想证明“解形成向量空间,则该向量空间是n维欧几里得空间的一个子空间”,此时在前面已经花了很大的篇幅对于子空间的证明只需要满足:

    所以:我们只需要证明解所组成的空间对向量的加法和数量乘法封闭就好了,而证明就如下:

    a、证明空间对向量的加法封闭:

    假设系数矩阵为A,而向量u和v都是解,很明显就有:

    然后此时就可以将这两式子加起来:

    然后根据分配率就可以变为:

    这个变化又说明啥呢?说明u+v也是解呀,此时就说明了该空间对向量加法是封闭的?所以此时a这个就得证了。

    b、证明空间对向量的数量乘法封闭:

    还是假设系数矩阵为A,假设u是解,就有:

    然后此时可以乘以k,式子就变为:

    然后它又可以变为:

    此时就又可以说明问题了,很显然k*向量u和向量u都是在同一空间中,那ku也是解,该空间也就对数量乘法封闭了。

     此时“一个齐次线性方程组的所有解,形成一个向量空间,称这个空间就为零空间(Null Space)。”

    也就是说A的零空间,就是Ax = 0中,所有x组成的空间

    深入理解零空间:

    说实话零空间还是有些难理解,下面则从另外几个视角对其进行一个巩固理解。

    视角1:从代数角度

    对于“A的零空间,就是Ax = 0中,所有x组成的空间”这句话是从代数角度来理解的,也就是求解这个方程组的解组成的空间既为零空间。

    视角2: 把矩阵看作是向量的转换函数

    还是从回忆开始【可以看到,对于新的概念完全是来自于之前所学,所以对于数学的学习每个概率的理解都不能马虎】:我们可以把矩阵看作是向量的函数(转换函数),拿旋转矩阵来说:

    如果以这种视角来看待的话,其实可以把Ax=0中的系数矩阵A看成是一个转换函数,此时零空间x它就是这么一个空间:零空间是一个集合,集合中的所有的向量,在A的变换下,都将映射到零点

    视角3: 把矩阵看作是空间

    对于矩阵还可以将其看作是一个空间,比如:

    它对应的空间为:

    此时看零空间x就可以为:零空间是一个集合,这个集合中的所有的向量,和A的行向量点乘结果为0! 其实也很好理解,根据矩阵和向量的乘法的定义:

    套到咱们的式子中:

    根据这个进一步又能推出:“这个集合中的所有的向量,和A的行空间【注意跟上面的区别,A的行空间指的是 A的行向量通过线性组合方式可以生成的那些向量,这个集合比A的行向量要大得多,一个mxn的矩阵,它的行向量只有m个,但是它的行空间的向量可以有无数个的,m个向量任意线性组合那个k值随便取所得到的结果都在A的行空间中】中所有向量点乘结果为0。”,这是为什么呢?这是因为零空间的每一个向量和A的每一个行向量的点乘结果为0,而行空间的向量不过就是这些向量的线性组合,这些线性组合再点乘零空间的每一个向量,很显然结果还是为0,因为就是多了些系数嘛,可以稍抽象,不能理解的记住结论就好。

    既然有“零空间的所有向量和A的行空间中的所有向量点乘结果为0”,又根据之前所学能推出:

    这个集合中的所有向量,和A的行空间中所有向量垂直(正交)。”,进而又能说明,“这个集合和A的行空间正交,换言之就是A的零空间和A的行空间正交【这个结论就能更加生动的理解零空间了】”,也就是说:“A的零空间中所有的向量,和A的行空间中所有向量垂直”,下面以图来说明:

    对于这两个平面空间虽说是垂直,但是它不满足咱们要说的零空间的性质,典型的看相交的那一个直线就不是相垂直的,那对应于咱们所述的零空间的空间形态又是怎么样的呢?其实下面这个就满足:

    也就是一个二维平面【二维空间】和一根直线【一维空间】相垂直,把这俩空间当成子空间的话,那么在直线上的任何一个向量和在平面上的任何一个向量都是垂直的,也就说明这两个空间的正交的,同理,对于由两根直线组成的坐标轴也就满足这个性质:

    把直线看成是空间的话,从直线上任取两个向量一定是正交的。那从上面举的三种形态,是不是就可以说两个二维平面就不可以正交呢?

    答案不是的,其实它在三维平面上是不可能正交,但是!!!在四维空间中是可以正交的,但由于四维我们大脑想象不到,所以对于零空间的理解依然还是很抽象的,不过上面的方方面面的各种视角的阐述一定是比直接给出一个零空间的定义在理解上要强很多倍的。

    总结:

    有木有发现,上面举了三个视角来看待零空间,其实之前学习矩阵的三个视角是一模一样的,这就是神奇之处,下面对零空间的三个视角再归纳总结一下:

    矩阵A的零空间:

    1、把A看作是系统:A的零空间,就是Ax=0中,所有x组成的空间;

    2、把A看作是函数(变换):A的零空间,所有被A变化为0的空间;

    3、把A看作是空间:A的零空间,是和A的行空间正交的向量空间;

    零空间基与秩-零化度定理:

    零空间基:

    先来抛出一个问题:零空间的维度是多少?能否给出一组基?

    由于零空间是齐次线性方程组所有的解构成的空间,所以从解齐次线性方程组开始,比如对下面这个矩阵进行求解,也就是将其化为行最简形式:

    根据行最简形式此时就可以写成如下线性方程组:

    进一步的:

    其中x3可以取任意值,都可以求解出x1和x2了,对于线性方程组的解就已经求出来了,但是!!面对零空间的话,还需要进一步,因为零空间所有解所构成的空间,每一个解其实都是一个向量,面对咱们这个解也就是对应于:

    这样的形式就可以表示这个齐次线性方程组所有的解向量,也就是(-7,-5,1)这个向量所有的线性组合,也就是X3可以随便取,此时就可以得出这个矩阵A的零空间的维度为1,对应的一组基就为(-7、-5、1)。

    下面再来举一个更复杂5x6矩阵的例子加深对于零空间维度的理解:

    依然将其化为行最简形式,如下:

    其中有两个非0行,对应的齐次线性方程的解为:

    而由于x3...x6都处于自由列的位置,所以可以随便取值:

    同样的可以将它写成解向量的形式,如下:

    此时再将其拆解一下,每一部分只包含一个未知数,如下:

    然后再进一步,将未知数给提出来:

    这形式是不是就是这四个向量的生成空间,也就是这四个向量的线性组合所能表示出来的所有的向量就是这个齐次线性方程组的解,换言之这个齐次线性方程组的角就是这个生成空间,进一步这个生成空间就是矩阵的零空间,所以此时对于这个矩阵A的零空间的维度就为4,因为这四个向量肯定是线性无关的:

    下面来回忆一下上面的过程,将系数矩阵化为行最简形式,其中主元列是2个,自由列是4个:

    而自由列对应的就是这些未知数:

    而其中对于这四个矩阵的元素是分为了两部分,看一下:

    所以零空间的一组基就是上面的这四个向量。总结一下,其实零空间的基就是看化为行最简形式的自由列的个数就好了,而基的话就需要计算生成解空间中未知数的向量

    秩-零化度定理:

    回忆一下上面举的复杂矩阵化为行最简形式的例子:

    抽象一下来说:对于一个m*n的矩阵,将其化为行最简形式,主元列数就是列空间的维度,而自由列数就是零空间的维度,很显然又有一个结论:

    列空间的维度+零空间的维度=n,好,小标题的概念要出现:

    秩(rank)【列空间的维度】 + 零化度(Nullity)【零空间的维度】 = n,所以这就是 秩-零化度 定理

    列空间和零空间总结:

    关于零空间的概念至此就学得差不多了,接下来对于列空间和零空间进行一下总结:

    对于一个m行n列的矩阵:

    列空间:

    1、Ax=V(x任取);表示x可以随便取,相应所能得到的所有的v所组成的空间。

    2、列空间是m维空间的子空间。这是因为mxn的矩阵,每一个列向量都有m个元素,所以是m维空间的子空间。

    3、列空间的维度,为行最简形式中主元列数。

    4、主元列的对应原矩阵的列,是列空间的一组基。

    零空间:

    1、Av=0;能让这个等式成立的所有v组成的空间。

    2、零空间是n维空间的子空间。这是因为零空间中的所有的向量都是Av=0的一个解,对于A来说它有n个未知数,所以相应的解就有n个元素。

    3、零空间的维度,为行最简形式中自由列数。

    4、求零空间的基需要求解Av=0,求出来的角再进行一下变形,把它化为几个线性无关的向量,每一个向量控制一个自由元,它们的一个线性组合,这些向量就是零空间的基。

    最后再来看一个问题:何时零空间的维度为0?由于零空间的维度就是自由列的个数,换言之也就是对于矩阵的行最简形式木有自由列,全是主元列,也就是列空间的维度为n,此时零空间的维度就为0,那对于方阵呢?既为满秩的时候,零空间的维度为0,其中又绕回到了方阵,是不是又想扩充等价命题,是的,如下:

    左零空间,四大子空间和研究子空间的原因:

    左零空间和四大子空间:

    到目前为止已经学习了N多概念了,如向量空间、子空间、维度、行空间、列空间、矩阵的秩、零空间。 接下来先对这次所学习的若干个子空间以及它们之间的关系,进而引出一个左零空间这样的概念:

    其中注意列空间和零空间符合表示法,在一些教材中可能会这样描述的,看到得要有印象,而根据“秩-零化度 定理”,我们就可以知道它们维度,如下:

    接下来再来回忆一下行空间,但是它不是用row这个符号来表示的哟,在学习向量时通常更喜欢用列向量,同时在学习矩阵时把它用一列列来排列能证明很多问题,所以也是更倾向于用列向量,所以,对于行空间也用列的符号来表示,如下:

    稍加理解一下:行空间是由所有矩阵的行向量的线性组合组成的空间,将A转置过来,A的行向量就是A转置的列向量,所以A的行空间就是A转置的列空间,接下来分析一这三者的关系,其中对于行空间和列空间之间的联系就是它们的秩是一样的,而对于行空间跟零空间也存在关系,如下:

    关于为啥正交,可以回忆上面的总结:

    目前从关系图上看,明显缺了一个右下角的,也就是跟列空间对应的零空间一样,这块缺失的区域应该是A的转置的零空间,叫A的左零空间

    而对于它的维度可以很空间看出来,为:

    这是因为m*n的矩阵A的转置是n*m的矩阵,有m个未知数m列,转置的列空间为r的话,意味着A的转置的行最简形式的r个主元列,相应的就有m-r个自由列,所以A的转置的零空间【也就是左零空间】的维度就为m-r,相应的,它跟列空间也是成正交关系,如下:

    那接下来讨论一个问题:为啥A的转置的零空间叫做A的左零空间呢?其实可以从左零空间的定义来导出来,如下:

    为啥A的转置的零空间叫做A的左零空间呢?

    对于m*n的矩阵A,左零空间它的表示为:

    而根据零空间就可以知道:

    然后左右两边都取转置,式子就可以变换为:

    此时就又可以变为:

    这样来看,拿矩阵A来说是不是就推导出来左零空间是让x向量的转置乘以矩阵A=0满足这样条件的所有x所在的空间,其中x是左乘A【关键点】?此时就得跟零空间的进行一个对比了,它是满足Ax=0这样条件的x所组成的空间,x是右乘A对吧?所以一对比对于左零空间的概念理解起来就不模糊了。

    研究子空间的原因:

    最后来讨论一下为啥咱们要来研究子空间呢?

    1、子空间维度大大降低,关于这块在上面有描述到,这里贴一下就不过多说明了:

    而咱们学习的四大子空间就是构成更加复杂的降维子空间的一些基础。

    2、子空间是其它一些应用的基础,这里举一个简单的例子:

    很多真实世界的问题本质都是求解Ax=b的线性系统中的x是多少,但是!!在真实的世界中得到的这个知阵A可能是有很多行的,所以大概率的A的行数是大于列数的,也就意味着方程的个数远远大于未知数的个数的,也就意味着大多数情况Ax=b是无解的,但是无解并不代表这个问题就真正无解,可以求它的近似解也可以描述该问题, 此时就可以使用子空间来求解了,如何求呢?

    先不考虑等号右边的b,只看Ax, 其实它就是矩阵A的列空间,矩阵x向量,以列视角来看的话,它等于向量的每一个未知数跟矩阵A中的每一列相乘最终再相加对吧?所以Ax就是矩阵A的列空间【不太理解的记得回看列空间的概念,列空间就是矩阵列向量所生成的空间】,只是过目前就是要找一个向量正好就是b这个向量呢?但目前A的行数大于列数,很显然大概率是找不到这个向量的,那怎么办?其实只要让b这个向量在A的列空间中, 只要在肯定是有解了,对于A的行最简形式的非0行的个数一定是小于等于n的,所以解决思路就是找A的列空间中离b最近的b',也就是求解:Ax = b',找到近似值最终此问题就有解了,而要找到b'看到木有就需要知道矩阵A的列空间,也就是四大子空间的一个,这也就是学习子空间的另一大意义。

    对于上面的一大堆“费话”如果没理解也不要紧,言而总之,知道学习子空间是有“意义”的就成。

    tips:这次学的真的概念太多了,也太抽象了,需要好好消化,为未来更加进一步打下坚实的基础。

    展开全文
  • 线性代数系列(三)--向量空间

    千次阅读 2019-07-16 23:28:34
    主要内容 向量空间 ...对于向量空间又更为准确的限制,向量空间是一组向量的集合,对于这个集合中的任何向量,他们的线性组合还在这个向量空间中,这就是向量空间的封闭性。当我们取线性组合的...

    主要内容

    1. 向量空间
    2. 子空间
    3. 列空间
    4. 零空间

    正文

    向量空间(vector space)。我们生活在三维空间中,也就是四维时空。三维意味着我们在某一时刻的位置可以由三个维度的数据来衡量,这就是长度、宽度和高度。“向量空间”这个词中的空间应该与我们所生存的空间是一致的。对于向量空间又更为准确的限制,向量空间是一整个空间的向量的集合,对于这个集合中的任何向量,他们的线性组合还在这个向量空间中,这就是向量空间的封闭性。当我们取线性组合的系数都为0的时候,这就得到了零向量,所以空间一定是包括零向量的。而至于为什么空间具有封闭性,封闭性是不是现实空间所具有的性质,这个还需查阅资料,日后再更。

    子空间(subspace),是向量空间的一部分,顾名思义,子空间肯定也是向量空间,所以它具有向量空间的封闭性,而且它也一定包含零向量。更具体而言,在向量空间中取一部分向量组成的集合,这个集合具有封闭性,包含零向量,那么这个集合就构成了一个子空间。可以看出,无论是向量空间还是子空间,他们都是以集合论为基础的。

    列空间(column space),是一种根据应用需要产生出来的一种工具。实际上,发展列空间这个概念仍然是为了更好的了解线性方程组 A x = b Ax=b Ax=b。给定一个矩阵 A A A,矩阵 A A A中的列向量所有可能的线性组合的集合是怎么样的呢?当线性组合的系数为零时,就得到了零向量;如果矩阵 A A A中的列向量是3个,其中线性无关的列向量有两个,那么第三个列向量可以由这两个列向量线性组合得到,实际上,这两个线性无关的列向量经过线性组合可以得到的是一个过原点的平面,又叫二维空间,首先它是空间,其次这是一个子空间(如果 A A A只有三行,那么这是三维空间中的一个过原点的平面,是三维向量空间的子空间)。由于它事由矩阵的列向量经过线性组合得到的封闭的,包含零向量的子空间,所以称它为列空间。

    零空间(null space),这是一个比较核心的概念了,抽象的表示,必然有它实际的目的,线性代数的实际目的就是为了解线性方程组 A x = b Ax=b Ax=b,线性方程组比较简单的一种形式是令 b = 0 b=0 b=0,这个时候对应的解 x x x所有的线性组合是空间,因为它是由线型方程组在常数项为零的时候解出来的,所以基于这个特殊的意义,称他为零空间。为什么是空间不做证明,这个不重要。重要的是如何求解零空间,基于对非方阵的消元法,可以得到行阶梯形矩阵,然后可以求得一组特解,这组特解的线性组合就是零空间。在下面将会详细地介绍以上内容。

    向量空间

    从最简单的例子看起: R 2 = [ a b c d ] R^2=\begin{bmatrix}a&amp;b\\ c&amp;d\end{bmatrix} R2=[acbd]其中 [ a b ] \begin{bmatrix}a\\b\end{bmatrix} [ab] [ c d ] \begin{bmatrix}c\\d\end{bmatrix} [cd]线性无关。那么对它们进行线性组合 x × [ a b ] x\times\begin{bmatrix}a\\b\end{bmatrix} x×[ab] + y × [ c d ] y\times\begin{bmatrix}c\\d\end{bmatrix} y×[cd]所得到的是二维平面。这个二维平面包括零向量,对于平面中的向量,它们的线性组合不可能超出平面(因为每个向量都没有在平面外或者向平面外的趋势的分量),所以它是封闭的。这便是一个向量空间。
    假如, [ a b ] \begin{bmatrix}a\\b\end{bmatrix} [ab] [ c d ] \begin{bmatrix}c\\d\end{bmatrix} [cd]线性相关,也就是其中一个向量可以通过乘一个常数得到两一个向量,那么这两个向量一定在一条直线上。那么下面思考,这条直线过不过原点?这是肯定的,我们所描述的向量都是以原点为起点的→,既然向量在直线上,原点也一定在直线上。这个直线上的向量的线性组合会不会在直线外?这是不可能的。如果向量经过向量组合会偏离直线,那么其中至少存在一个向量有偏离直线的分量,既然该向量有偏离直线的分量,那么这个向量都会偏离直线,就不在直线上,这与直线上的向量是矛盾的。至此,我们可以说直线是一个封闭的直线,包含零向量。所以这是一个向量空间,也是二维向量空间的子空间(因为它的向量都有两个维度)。
    我们还可以看更复杂的例子,比如 R 3 , R n R^3,R^n R3Rn,等。但是大原则只有一个:向量空间必须满足封闭性。
    这里将向量空间和子空间的概念都联系到一起了。

    子空间

    前面已经介绍了子空间的例子,已经非常详细了,这里再介绍也是多余。下面重点列举一些子空间的例子。
    子空间,通俗来讲就是满足向量空间的法则,但是都包含的向量并不一定是向量空间的全集,而是子集(这可以是全集)。
    R 2 R^2 R2中:

    1. 前面介绍的过原点的直线是一个子空间。它满足封闭性,包含零向量。
    2. 零向量是一个空间。这个比较容易理解,零向量像一个黑洞,任何计算最终还是回到零向量。
    3. 其实 R 2 R^2 R2本身就是一个子空间。

    子空间表示: c × [ a b ] c\times \begin{bmatrix}a\\b\end{bmatrix} c×[ab] c × [ 0 0 ] c\times \begin{bmatrix}0\\0\end{bmatrix} c×[00] x × [ a b ] x\times\begin{bmatrix}a\\b\end{bmatrix} x×[ab] + y × [ c d ] y\times\begin{bmatrix}c\\d\end{bmatrix} y×[cd]

    R 3 R^3 R3中:

    1. R 3 R^3 R3本身是一个子空间
    2. 零向量是一个子空间
    3. 过原点的平面是一个子空间
    4. 过原点的直线是一个子空间

    子空间表示: x × [ a b c ] x\times\begin{bmatrix}a\\b\\c\end{bmatrix} x×abc + y × [ c d e ] + z × [ f g h ] y\times\begin{bmatrix}c\\d\\e\end{bmatrix}+z\times\begin{bmatrix}f\\g\\h\end{bmatrix} y×cde+z×fgh c × [ 0 0 0 ] c\times\begin{bmatrix}0\\0\\0\end{bmatrix} c×000 x × [ a b c ] x\times\begin{bmatrix}a\\b\\c\end{bmatrix} x×abc + y × [ c d e ] y\times\begin{bmatrix}c\\d\\e\end{bmatrix} y×cde x × [ a b c ] x\times\begin{bmatrix}a\\b\\c\end{bmatrix} x×abc

    两个子空间的并集不是子空间,两个子空间的交集是子空间。在这一段,我们暂且引入两个概念(这一段结束后,概念就失效),共有元素和单一元素。共有元素就是两个子空间都含有的元素,即交集中的元素,单一元素是本子空间中特有的元素,即相对差集中的元素。先解释为什么交集是子空间:交集中的元素都是共有元素,?????
    看完这些例子之后,可以发现,他们子空间只是向量空间的一种辅助性的概念,当我们不能够得到全集时,只能得到部分集合,而且满足向量空间的法则时,就使用这种辅助性的概念。

    列空间

    列空间(column space)简称为 C ( A ) C(A) C(A) A A A仍然是线性方程组中的系数矩阵。这一部分还是从线型方程组的求解出发,看下面的例子 A x = b Ax=b Ax=b A = [ 1 1 2 2 1 3 3 1 4 4 1 5 ] x = [ x 1 x 2 x 3 ] b = [ b 1 b 2 b 3 b 4 ] A=\begin{bmatrix}1&amp;1&amp;2\\2&amp;1&amp;3\\3&amp;1&amp;4\\4&amp;1&amp;5\end{bmatrix} \qquad\qquad x=\begin{bmatrix}x_1\\x_2\\x_3\end{bmatrix}\qquad\qquad b=\begin{bmatrix}b_1\\b_2\\b_3\\b_4\end{bmatrix} A=123411112345x=x1x2x3b=b1b2b3b4
    首先看 A A A是一个什么样的列空间。可以注意到第三列是由前两列相加而得到的,所以第三列是前两列的线性组合,也可以认为第二列是由第三列减第一列得到等等。不过可以肯定的是,其中线性无关的列向量只有两个,由于其中一列已经是另外两列的线性组合了,那么这个列空间由两列向量线性组合而成,显然包含原点。然后可以知道的是, A A A的列向量都包含四个分量,所以该列空间应该是 R 4 R_4 R4的子空间。所以这个列空间是四维空间中的过原点的平面。至此,我们就得到了这个列空间,可以表示为: C ( A ) = x 1 × [ 1 2 3 4 ] + x 2 × [ 1 1 1 1 ] C(A)=x_1\times\begin{bmatrix}1\\2\\3\\4\end{bmatrix}+x_2\times\begin{bmatrix}1\\1\\1\\1\end{bmatrix} C(A)=x1×1234+x2×1111再看这个线性方程组,我们之前就已经提到,可以将该方程组看成是 A A A中列向量的线性组合而线性组合的系数是 x x x,线性组合的结果是 b b b而解方程组,就是将找到一组系数使得 A A A中的列向量线性组合可以得到 b b b。而这里我们引入了空间的概念,从空间的角度看,解方程组就是判断 b b b是不是在 A A A的列空间中,如果在,那么方程组就有解,如果不在,那么方程组便无解。 所以这里解方程的关键就落在了 A A A b b b上。有解的情况很好理解,即: b b b A A A的列空间中,或者 R 4 R_4 R4中的列向量 b b b A A A的列向量线性组合得到的平面上,这样,我们就能够找到一组系数 x x x使得 A A A中的列向量线性组合得到 b b b。下面我们再看看为什么会导致方程组无解:先看 A A A b b b A = [ 1 1 2 2 1 3 3 1 4 4 1 5 ] b = [ b 1 b 2 b 3 b 4 ] A=\begin{bmatrix}1&amp;1&amp;2\\2&amp;1&amp;3\\3&amp;1&amp;4\\4&amp;1&amp;5\end{bmatrix} \qquad\qquad b=\begin{bmatrix}b_1\\b_2\\b_3\\b_4\end{bmatrix} A=123411112345b=b1b2b3b4
    b b b表示四维空间( R 4 R_4 R4)中的任何一个向量。 A A A的列空间表示四维空间中的一个平面,显然不能够充满整个空间,而 b b b可以在四维空间中任意取值,所以,存在一大部分的 b b b不在 A A A的列空间上( A A A所能够表示的范围上),这个时候我们找不到线性组合的系数使得 A A A的列向量线性组合得到 b b b,因此无解。

    至此,当我们引入空间的概念,使得线性方程组的求解跟我们实际生活的空间变得很相似,也将线性方程组的求解更加几何化了,更接近它的本质现象了。

    零空间

    零空间(null space),更接近求解线性方程组的核心,令 A x = b Ax=b Ax=b中的 b b b为零向量,求解 A x = 0 Ax=0 Ax=0得到的所有 x x x所组成的集合就是零空间( N ( A ) N(A) N(A))。零空间就是齐次线性方程组的解了。更接近我们的求解线性方程组,因而说它更接近核心。

    所以如何求解零空间便成了重点话题。以 A x = 0 Ax=0 Ax=0为例: A = [ 1 2 2 2 2 4 6 8 3 6 8 10 ] x = [ x 1 x 2 x 3 x 4 ] b = [ 0 0 0 ] A=\begin{bmatrix}1&amp;2&amp;2&amp;2\\2&amp;4&amp;6&amp;8\\3&amp;6&amp;8&amp;10\end{bmatrix} \qquad\qquad x=\begin{bmatrix}x_1\\x_2\\x_3\\x_4\end{bmatrix}\qquad\qquad b=\begin{bmatrix}0\\0\\0\end{bmatrix} A=1232462682810x=x1x2x3x4b=000求解零空间,主要的方法就是高斯消元法在非方阵上的使用。
    A A A使用高斯消元法,直到得到上三角矩阵,这种形式有一个特定的名称叫做行阶梯形矩阵。就是下面的这种形式: [ 1 2 2 2 0 0 2 4 0 0 0 0 ] ⟹ 可 以 写 成 [ 1 2 2 2 0 2 0 4 0 0 0 0 ] \begin{bmatrix}1&amp;2&amp;2&amp;2\\0&amp;0&amp;2&amp;4\\0&amp;0&amp;0&amp;0\end{bmatrix}\stackrel{可以写成}{\Longrightarrow} \begin{bmatrix}1&amp;2&amp;2&amp;2\\0&amp;2&amp;0&amp;4\\0&amp;0&amp;0&amp;0\end{bmatrix} 100200220240100220200240在这种形式中,有两个比较特殊的列即 [ 1 0 0 ] \begin{bmatrix}1\\0\\0\end{bmatrix} 100 [ 2 2 0 ] \begin{bmatrix}2\\2\\0\end{bmatrix} 220,像这种非零行的第一个元素所在的列称为主列,这样的元素称为主元主元的个数称为秩(rank),不含主元的列称为自由列,之所以称为自由列,是因为该列上的系数未知数的值可以自由选择而不会影响常数项,因为对应的向量元素为0。 { x 1 + 2 x 2 + 2 x 3 + 2 x 4 = 0 2 x 3 + 4 x 4 = 0 \begin{cases}x_1+2x_2+2x_3+2x_4=0 \\ \qquad \qquad \quad 2x_3+4x_4=0\end{cases} {x1+2x2+2x3+2x4=02x3+4x4=0 x 4 x_4 x4 x 2 x_2 x2为自由列对应的系数未知数,所以它们的值可以随便取。
    当我们将未知数的个数(或者是系数矩阵的行数)记为 n n n,将主元的个数(秩)记为 r r r,那么自由列的个数就是 n − r n-r nr,自由变量的个数也就是 n − r n-r nr.

    那么它们的取值空间是什么样的呢,当写成向量的形式 [ x 2 x 4 ] \begin{bmatrix}x_2\\x_4\end{bmatrix} [x2x4]时,取值空间就比较清楚了,即:这个列向量所代表的空间是二维平面。那么我们可以用两个线性无关的向量把这个二维空间表示出来(如果线性相关的话,这两个向量共线,所能表示的空间只能是过原点的直线),最简单的当然就是 c 1 × [ 1 0 ] + c 2 × [ 0 1 ] c_1\times\begin{bmatrix}1\\0\end{bmatrix}+c_2\times\begin{bmatrix}0\\1\end{bmatrix} c1×[10]+c2×[01]。所以我们令 [ x 2 x 4 ] \begin{bmatrix}x_2\\x_4\end{bmatrix} [x2x4]等于 [ 1 0 ] \begin{bmatrix}1\\0\end{bmatrix} [10] [ 0 1 ] \begin{bmatrix}0\\1\end{bmatrix} [01],这样该空间中的所有去值就可以由它们所代表。分别的 [ x 1 x 3 ] \begin{bmatrix}x_1\\x_3\end{bmatrix} [x1x3]等于 [ − 2 0 ] \begin{bmatrix}-2\\0\end{bmatrix} [20] [ 2 − 2 ] \begin{bmatrix}2\\-2\end{bmatrix} [22],我们可以将这个解整理成这种形式 [ − 2 0 1 0 ] \begin{bmatrix}-2\\0\\1\\0\end{bmatrix} 2010 [ 2 − 2 0 1 ] \begin{bmatrix}2\\-2\\0\\1\end{bmatrix} 2201。这是在 x 2 , x 4 x_2,x_4 x2x4取1和0的情况下求的一组特解(即:自由变量取特定值所得到的特定解,这两个特解一定是线性无关的)。当 x 2 , x 4 x_2,x_4 x2x4乘以某个系数 c 1 c_1 c1(取空间中的某个值),那么得到的一个特解也应该是原来的 c 1 c_1 c1倍(方程都是线性的)。那么当我们取自由变量取值空间中的任意值时,也就是 [ x 2 x 4 ] = c 1 × [ 1 0 ] + c 2 × [ 0 1 ] \begin{bmatrix}x_2\\x_4\end{bmatrix}=c_1\times\begin{bmatrix}1\\0\end{bmatrix}+c_2\times\begin{bmatrix}0\\1\end{bmatrix} [x2x4]=c1×[10]+c2×[01],同样的,我们得到的解将是由对应特解表示的线性组合,即: c 1 × [ − 2 0 1 0 ] + c 2 × [ 2 − 2 0 1 ] c_1\times\begin{bmatrix}-2\\0\\1\\0\end{bmatrix}+c_2\times\begin{bmatrix}2\\-2\\0\\1\end{bmatrix} c1×2010+c2×2201。这个线性组合就是零空间,因为它足以表示所有可能的解。

    其实,在实际过程中,我们都会将行阶梯形矩阵进一步简化,得到简化的行阶梯形矩阵。如下: [ 1 2 2 2 0 0 2 4 0 0 0 0 ] ⟹ 简 化 [ 1 2 0 − 2 0 0 1 2 0 0 0 0 ] ⟹ 可 以 写 成 [ 1 0 2 − 2 0 1 0 2 0 0 0 0 ] = R \begin{bmatrix}1&amp;2&amp;2&amp;2\\0&amp;0&amp;2&amp;4\\0&amp;0&amp;0&amp;0\end{bmatrix}\stackrel{简化}{\Longrightarrow}\begin{bmatrix}1&amp;2&amp;0&amp;-2\\0&amp;0&amp;1&amp;2\\0&amp;0&amp;0&amp;0\end{bmatrix}\stackrel{可以写成}{\Longrightarrow}\begin{bmatrix}1&amp;0&amp;2&amp;-2\\0&amp;1&amp;0&amp;2\\0&amp;0&amp;0&amp;0\end{bmatrix}=R 100200220240100200010220100010200220=R将简化的行阶梯形矩阵记为 R R R,其中简化的自由列组成的矩阵块记为 F F F,那么可以发现 R = [ I F ] R=\begin{bmatrix}I&amp;F\end{bmatrix} R=[IF] 或者 R = [ I F 0 0 ] R=\begin{bmatrix}I&amp;F\\0&amp;0\end{bmatrix} R=[I0F0],而特解组成的矩阵块就是 [ − F I ] \begin{bmatrix}-F\\I\end{bmatrix} [FI]。其实这个简化更便于我们寻找特解。寻找到特解之后,将他进行线性组合,就得到了零空间。

    展开全文
  • 消元简化了线性方程组Ax=bAx=b,幸运的是它也简化了理论。存在性和唯一性的基本问题(一个解或没有解或无穷多个解)在消去之后很容易回答,我们现在...为了给出向量空间的概念,我们首先介绍一下最重要的空间,他们用R1,R

    消元简化了线性方程组 Ax=b ,幸运的是它也简化了理论。存在性和唯一性的基本问题(一个解或没有解或无穷多个解)在消去之后很容易回答,我们现在就针对 m×n 系统讨论这些问题。

    但消去只有得到了一种 Ax=b 的一种理解,我们的主要目标是实现不同和更深层次的理解,之后的内容比之前的难一点,它将通向线性代数的核心。

    为了给出向量空间的概念,我们首先介绍一下最重要的空间,他们用 R1,R2,R3, 表示; Rn 空间由 n 个列向量组成。(我们用R表示元素都是实数) R2 通常用 xy 平面来表示;向量的元素变成对应点的 x,y 坐标, R3 空间中的向量有三个元素,他们确定的点位于三维空间里,而一维空间 R1 是一条线。

    线性代数有价值的就是到 n 维空间的扩展非常直接,对于R7中的向量,我们只需要七个元素,虽然几何上很难可视化。在所有的向量空间内,下面两种操作都是可能的:

    我们可以将任意两个向量相加,我们可以用标量和向量相乘。换句话说,我们可以进行线性组合。

    加法满足交换律 x+y=y+x ;有零向量满足 0+x=x ;有负向量 x 满足 x+x=0 。八条性质(包括这三条)是基本要求;(这里没有列出其余五条,大家可以上网查找或给博主留言)实向量空间就是满足向量加法和实数乘法的向量集合,加法和乘法得到的向量肯定还在空间内,并且还得满足八个条件。

    一般情况我们讨论的向量都是属于空间 Rn 的;他们是普通的列向量。如果 x=(1,0,0,3) ,那么 2x(x+x) 的元素就是2,0,0,6。下面我们给出是三个例子:

    1. 无限维空间 R ,它的向量有无限多个元素,就像 x=(1,2,1,2,) x+y,cx 法则依然成立。
    2. 3×2 矩阵的空间,这种情况下向量就是矩阵!我们能够将两个矩阵相加并且 A+B=B+A ,存在零矩阵等等,这个空间几乎和 R6 一样。(六个元素组织在矩阵里而不是一列)对于任何 m,n ,类似的将得到 m×n 矩阵的向量空间。
    3. 函数 f(x) 空间,对于任何定义在闭区间上例如 0x1 的函数 f ,都属于该空间。像f(x)=x2,g(x)=sinx,(f+g)(x)=x2+sinx,3x2,sinx等等,这些向量是函数,它的维数比 R 还要大

    我们想描述向量空间并解释为什么他们如此重要。几何上,考虑常见的三维 R3 并任意选择一个通过原点的平面,那个平面是一个向量空间,如果我们用3 或-3或任何一个数乘以平面里的一个向量,得到的向量依然在这个平面内。如果我们将平面内的两个向量相加,他们的和依然在平面内,平面通过 (0,0,0) 说明了线性代数最基本想法中的一个;它是原空间 R3 的子空间。

    定义:向量空间的子空间是非空子集,它满足线性空间的要求:线性组合。

    1. 如果将子空间里的任意向量 x,y 相加, x+y 在子空间内。
    2. 如果将子空间里的任意向量 x 和任意标量c相乘, cx 在子空间内。

    注意我们强调空间这个词,子空间是一个子集,它对加法和标量乘法封闭。这些操作跟随主空间的规则,在子空间内部依然保持,八条性质更大的空间都是满足的,因此在每个子空间里自动满足。特别需要注意的是零向量属于每一个子空间,因为根据第二条性质:我们选择标量 c=0

    最小的子空间 Z 只包含一个向量,那就是零向量,它是零维空间只包含原点,对规则1,2都满足,因为0+0在这个空间里,所有 c0 也在这个空间里,最小空间不能为空所以这既是最小的向量空间。另一个极端情况是,最大的子空间是原始空间,如果原空间是 R3 ,那么可能的子空间为: R3 本身,任何通过原点的平面,任何通过原点的线或单独一个原点(零向量)。

    子空间和子集合是有区别的,在没有空间的前提下能够进行向量加法和标量乘法吗?

    例1:考虑 R2 中的所有元素为非负的向量,这个子集合是 xy 平面的第一象限;坐标满足 x0,y0 。但它不是一个子空间,虽然它包含零并且向量加法都在空间内,但是法则2不满足,因为如果标量-1乘以向量 [1,1] 的话,结果为 [1,1] ,它在第三象限而不是第一象限。

    如果我们包含一三象限,那么标量乘法也满足。然而,法则1 将不满足,因为 [1,2]+[2,1]=[1,1] 不在这两个象限内。包含第一象限最小的子空间是整个 R2 空间。

    例2:从 3×3 矩阵空间开始,一个可能的子空间是下三角矩阵的集合,另一个是对称矩阵的集合,如果 A,B 是下三角矩阵,那么 A+B,cA 是下三角矩阵,如果 A,B 是对称矩阵,那么 A+B,cA 是对称矩阵。当然,子矩阵都在这两个子空间里。

    矩阵的列空间

    现在我们看一个比较关键的例子,矩阵 A 的列空间和零空间。列空间包含矩阵A列的所有线性组合,它是 R3 的子空间,我们用一个 m=3,n=2 的系统来说明:

    152044[uv]=b1b2b3(1)

    m>n 时我们的方程个数比未知量要多(通常情况下这没有解),这个系统只对一小部分 b 有解。

    1、对于Ax=b,当且仅当 b 可以表示为A列的线性组合是它才有解,此时 b 在其列空间里。

    这段描述只是从列的角度重述了Ax=b

    u152+v044=b1b2b3

    注意问题是:找出 u,v 使得他们乘以第一和第二列得到 b ,当这样的系数存在时该系统才有解,向量(u,v)就是解 x

    我们有效的b A 列的线性组合,一种可能是第一列,此时u=1,v=0,另一种可能是第二列,此时 u=0,v=1 ,第三种可能是 b=0 ,此时 u=0,v=0

    我们可以从几何上描述列的所有线性组合:对于 Ax=b ,当且仅当 b 位于两个列向量确定的平面上(图1)时它是有解的。如果b 位于平面外,那么就不在两列的组合,也就是 Ax=b 无解。

    重要的是,这个平面不仅仅是 R3 的子集合,它还是一个子空间。我们用 C(A) 表示, Rm 的子空间很容易检查是否满足规则1和2:

    1. 列假设 b,b 位于列空间上,也就是存在 x,x 使得 Ax=b,Ax=b ,那么 A(x+x)=b+b ,所以 b+b 也是列的线性组合,所以列空间对加法是封闭的。
    2. 如果 b 在列空间C(A)里,那么 cb 也在里面。如果某个列的组合( Ax=b )得到 b ,那么组合乘以c将得到 cb ,也就是说 A(cx)=cb

      这里写图片描述
      图1

      对于另一个矩阵 A ,图1中的维数可能不同,最小的列空间是A=0,唯一的列组合是 b=0 。另一个极端的例子是,假设 A 5×5单位矩阵,那么 C(I) 就是整个 R5 空间; I 的五个列空间可以组合出任何五维向量b,这不是单位矩阵特有的,任何 5×5 的非奇异矩阵它的列空间都是整个 R5 空间,对于这样的矩阵我们可以用高斯消元法求解 Ax=b ;有五个主元,因此对每个非奇异矩阵, b 都位于C(A)中。

    对于奇异矩阵和任何形状的长方形矩阵, C(A) 是位于零空间和 Rm 空间之间的,结合它的垂直空间我们能够更好的理解 Ax=b

    零空间

    Ax=b 的第二个方法与第一个是对偶的,我们现在不仅关注右边的 b ,也关注一下得到的解x。当右边为0时,肯定存在解 x=0 ,但是有可能有许多其他解。(如果未知数个数大于方程个数,那么一定存在非零解) Ax=0 的解形成了一个向量空间- A 的零空间。

    矩阵的零空间由所有Ax=0的向量 x 组成,用N(A)表示,它是 Rn 的子集合,就像列空间是 Rm 子集合一样。

    规则1满足:如果 Ax=0Ax=0 ,那么 A(x+x)=0 。规则2也满足:如果 Ax=0 ,那么 A(cx)=0 。如果右边非零的话,规则就都不满足!只有齐次方程的解形成了子空间。上面的例子很容易求出零空间;它尽可能的小:

    152044[uv]=000

    第一个方程给出 u=0 ,第二个给出 v=0 ,零空间只包含向量 (0,0) ,这个矩阵列是相互独立的——这个概念不久就给出。

    当第三列是前两列的组合式,情况就发生了变化:

    B=152044196

    B A有同样的列数,从图1可以看出新的列位于平面内;它是前两个向量之和。但是 B 的零空间包含向量(1,1,1),所以自动包含任何乘数对应的 (c,c,c)

    152044196[ccc]=000

    B 的零空间是所有点x=c,y=c,z=c组成的线(这条线通过原点,就像任何子空间必须满足的那样),对于 Ax=b ,我们能够求出 C(A),N(A) :所有有效的 b Ax=0的解。

    向量 b 在列空间里,向量x在零空间里,我们将计算这些子空间的维度以及生成他们的向量集合。我希望最后大家能够理解四个和 A <script type="math/tex" id="MathJax-Element-155">A</script>相关的子空间——列空间,零空间以及与他们两个垂直的空间。

    展开全文
  • 向量空间的基与维数.ppt

    千次阅读 2020-12-19 12:50:05
    向量空间的基与维数有生命就会有希望,有信心就会有成功,有思索就会有思路,有努力就会有收获一、向量空间的概念 二、子空间 三、向量空间的基与维数 四、向量与向量空间 五、小结 思考题 思考题解答 机动 目录 上...
  • 1. n维向量空间的子空间的定义 2. 子空间的判定方法
  • 一、向量空间的定义:A vector space V over a field F consists of a set on which two operations (called addition and scalar multiplication) are defined, so that the following 10 properties hold.(VS-1)...
  • VSM概念简单来说,就是把对文本内容的处理简化为向量空间中的向量运算,并且它以空间上的相似度表达语义的相似度,直观易懂。当文档被表示文档空间的向量,就可以通过计算向量之间 的相似性来度量文档间的相似性。...
  • 线性代数笔记11——向量空间

    千次阅读 2018-08-31 17:30:05
     向量空间又称线性空间,是线性代数的中心内容和基本概念之一。在解析几何里引入向量概念后,使许多问题的处理变得更为简洁和清晰,在此基础上的进一步抽象化,形成了与域相联系的向量空间概念。 线性组合  线性...
  • 向量空间、维度和四大子空间空间的概念欧几里得空间向量空间广义向量空间子空间欧几里得空间的子空间维度概念子空间和维度行空间和矩阵的秩行空间行秩列空间与列秩行空间和列空间对比 空间的概念 空间是一个集合。 ...
  • 向量空间模型(vector space model)

    万次阅读 多人点赞 2017-10-17 20:30:08
    向量空间模型概念简单,把对文本内容的处理简化为向量空间中的向量运算,并且它以空间上的相似度表达语义的相似度,直观易懂。当文档被表示文档空间的向量,就可以通过计算向量之间的相似性来度量文档间的相似性。...
  • 向量空间 文章目录向量空间1. 向量空间和子空间1.1 向量空间1.2 子空间2. 线性无关2.1 线性无关与线性方程组的关系2.2 线性无关与零空间的关系2.3 线性无关与秩的关系3.基和维度4. 四个子空间4.1 列空间和零空间...
  • 1.向量空间的定义:对加法和乘法运算封闭的非空的n维向量的集合 2.向量空间的基:向量空间中一组线性无关的向量,并且其他向量可以用这组向量线性表示。一组基中含有的向量个数为向量空间的维数。向量空间的基不是...
  • 数学知识补充 - 向量空间

    千次阅读 2020-09-06 16:45:29
    数学知识补充 - 向量空间 主要是对《all the mathmatics you missed》 的翻译和自身理解。 1.0 Preference 线性代数主要研究线性变化和线性空间,或者说是矩阵乘法和向量空间RnR^nRn. 我们应该学到如何在抽象的线性...
  • 判定线性相关性时,可以随时在矩阵(可逆性)、空间和方程组的概念之间切换,哪个判据更容易判定就用哪个。在数学中常规定向量的起点在原点,而在物理中称向量为矢量,也不再规定...向量组就是一系列向量集合。......
  • 向量空间模型

    千次阅读 2017-10-12 19:38:38
    [注:如果只是考虑词频,那么长文本会更可能包含更多的查询词而获得评分优势,我们需要消除文档长度对评分的影响,这也是向量空间模型采用余弦相似度的原因,从而实现文档长度归一化]在向量空间模型中,我们先基于每...
  • 笔者在课后作业中遇到了向量空间模型的概念题,对课堂重温后有了一些简单的理解,在此分享。 向量空间模型(VSM) 向量空间模型(Vector Space Model,VSM),是基于代数的一种常用模型。向量空间模型试图克服布尔...
  • /*BitSet.c*/ /*集合的位向量表示:函数实现*/ #include <stdio.h> #include <stdlib.h> #define superNum 20 ... /*位向量空间。每一数组元素保存8位。*/ } BitSet; /*空集合的创建*/ BitSet * cr
  • 搜索结果排序是搜索引擎最核心的构成部分,很大程度上决定了搜索引擎的质量好坏。虽然搜索引擎在实际结果排序时考虑了上百个相关因子,但最重要的因素还是用户查询与网页内容的相关性。...判断网...
  • VSM向量空间模型

    2018-01-23 11:30:20
     2、 以文本分类例,来判断网页A和网页B是不是属于新闻类的内容 ?  这样的情景对于爬虫来说是经常见的,比如抓取的很多网页,尤其是在内容方面,是属于哪一类的网页,如新闻类、体育类等等...
  • 本节主要介绍文本分类中的一种算法即向量空间模型,这个算法很经典,包含文本预处理、特征选择、特征权值计算、分类算法、这是VSM的几个主要步骤,在宗老师的书里都有详细的讲解,这里也会进行深入的讲解,浅显易懂...
  • 向量组与向量空间

    千次阅读 2017-03-28 09:45:00
    2、向量组A与系数k的线性组合表示: 如果: 则称向量b可以有向量组X线性表示 3、向量组B可以由向量组A线性表示的充要条件是R(A)=R(A,B),而两个向量组等价的条件是R(A)=R(B) =R(A,B) 4、线性...
  • 另外本讲也引入了第三章的概念:线性空间。置换矩阵(Permutations Matrix)上一节说的 实际上并不完整,没有考虑行交换的情况,所以完整情况应该是: .其中P就是置换矩阵,用P去乘以A相当于交换A的行。其实上一节已经...
  • 还有一种常用的方法是通过向量叉积来判断的,这种方法不需要算出直线方程,在代码实现上比较简便。 用这种方法判别线段是否相交一般分为两步: 快速排斥实验 跨立实验 快速排斥实验 我们首先判断两条线段在 x 以及...
  • 【2】广义向量空间模型

    千次阅读 2016-08-01 09:22:01
    转自 NLP论坛 http://www.threedweb.cn/thread-1283-1-1.html文本最流行的结构化表示就是向量空间模型,它把文本表示一个向量,其中该向量的每个元素表示文本中出现的单词。这会导致极高维的空间;通常,文本...
  • 把对文本内容的处理简化为向量空间中的向量运算,并且它以空间上的相似度表达语义的相似度,直观易懂VSM概念简单,把对文本内容的处理简化为向量空间中的向量运算,并且它以空间上的相似度表达语义的相似度,直观...
  • ---------------------------------------------------------------一、向量1、简单的高中那些就不说了....2、左右手系:右手系:将右手四指(拇指除外)从x轴方向以小于π的角度弯向y轴方向,如果拇指所指的方向z...
  • 重温线性代数(2)——向量空间

    千次阅读 2014-07-29 10:43:01
    同时,我也发现了自己数学基础的严重不足,急需好好重学一遍线性代数,之后的学习打好基础。因此,“重温线性代数”这个系列就诞生了。或许大家会觉得这个系列的内容稍微基础了点,但学习就是如此,一遍又一遍,...
  • 第三节 向量空间 一.数字概念 定义3.1 设V是n维向量...定义3.3 设V为向量空间,如果r个向量 ,且满足 ( i ) 线性无关; (ii) V中的任一向量都可由 线性表示,则称向量组 是向量空间V的一个基,r称为向量

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 36,062
精华内容 14,424
热门标签
关键字:

判断集合是否为向量空间