美文网首页
【光能蜗牛的图形学之旅】线性代数

【光能蜗牛的图形学之旅】线性代数

作者: 光能蜗牛 | 来源:发表于2017-09-07 17:49 被阅读0次

    线性代数,

    默认的,二维平面我们有如下矩阵


    之所以是如此,是因为笛卡尔坐标系初始定义默认是如此
    从纵向看过去,两个列空间



    整个二维平面由这两个基的所有线性无关的组合表示
    现在考虑一个问题,你尝试用这个矩阵去度量一个向量或者叫点(x,y)

    即做如下乘法


    我们发现答案依然是



    现在我们来构想一个有趣的事情
    比如我们把矩阵改为


    从纵向看过去,两个列空间




    我们发现,两个基向量发生了某种变换,或者说整个矩阵发生了某些变换,
    我们尝试度量一个向量或者说点(x,y)

    像这样



    结果会是

    你会发现结果仍然是和1,2,3,4这几个数字相联系,更确切的说,是跟矩阵


    相联系,更深层的意义是,跟张成该空间的两个基础列空间基相联系

    继续下去,我们看过的单位矩阵像这样



    ,或者诸如其他更高维度的矩阵,为什么单位矩阵会规定为主对角线为1其他元素均为0的矩阵呢,巧合么,其实不然,这恰恰是为了和笛卡尔坐标系保持一致,极大便利了计算的方便程度。

    单位矩阵的意义不仅如此,如我们刚刚提到的矩阵

    ,该矩阵表达了在单位矩阵(这里我更喜欢叫初始矩阵)


    的基础之上的变换,看全体可能看不太出来,
    但是我们从列空间向量



    可以看出变换后的




    也就是说,该矩阵代表的变换是基于每一个列空间向量的变换而来的。
    通过这种思路,说明,矩阵的变换不过是对基向量的变换而已。

    我们知道单位矩阵



    所张成的空间构成了整个平面,也即是说,平面是由列空间基向量的所有的线性无关组合构成。
    而对应的


    又是基于





    所构成的新的I,J的线性无关组合的平面。

    也即是说,平面可能只有一个,但是对应的线性无关组却有无穷多个,如此美丽,如此自然。

    结论:矩阵是描述运动的一种表示形式,矩阵的每一项列空间表示张成该空间的线性无关组合,这种组合作用于任意的向量或者点,即矩阵的乘法

    扩展:

    矩阵的乘法的这种关系可以很好的理解3D欧拉死锁问题,欧拉角由三个矩阵构成,即三个旋转角度,在合适的角度下,三个矩阵A * B * C若其中相邻两个的乘积得到的新的矩阵所具有的空间列向量无法保持其线性无关的特性,也即是说,有一个列空间向量对张成空间无作用,则修改第三个矩阵的角度参数时会无法张成整个3维的空间,而丢失一个维度,这丢失的一个维度,其实就是丢失的一个线性无关组。

    扩展2:

    矩阵的乘法我们往往关心的是旋转这一类的东西,但是不要忘了,向量是什么,是有大小和方向的一个东西,那么矩阵的乘法,除了对被施与矩阵乘法的事物进行了角度方向上的变化之外,同时还有大小上的变化,很直观的一个例子是,比如



    这个矩阵施与的变化是角度变化量为0,而大小变化量为原来的六倍,即
    [图片上传失败...(image-cb9ce9-1512114429898)]
    是不是有点似曾相识,这便引出了行列式的几何意义,行列式的关注点正是这种变化量的大小,它并不关心线性变换的角度,这很重要,后面的特征值一类的东西我猜想也是这么来的。

    扩展3 :

    求解类似



    基于前面的知识,我们知道,这是要求我们使用左边的矩阵去操作X 向量 让它和V向量重合,这里我们知道,当这里的三个列空间向量





    有以下三种情况

    1. 能完全张成一个三维空间,,则必然可以操作向量X到达向量V的位置

    2. 若丢失一个列空间维度,也即只能展开为一个二维平面,那么若要操作向量X到达向量V的位置,则只有当V向量刚好在这个二维平面才有可能

    3. 若丢失二个列空间维度,即只能展开为一维的直线,则解存在的可能行更加小,即只有当V向量刚好存在于矩阵所张成的直线时。

    4. 若完全丢失维度,即变成所谓的0矩阵,嘛,结果不用说了,限定V向量只能是0向量才有解。

    这里需要引入一个 概念,矩阵的秩,我们说,这里的秩其实就是我们刚刚提到的能够张成的空间的维度。即极大线性无关组的个数。也就是张成的列空间的个数,当满秩时,矩阵才可逆,因为空间没有被压缩。

    扩展4:

    当A是一个矩阵,我们求解


    时,我们实际上是求解符合条件的的所有的X,也即这些所有的X能够张成的空间,也即,A矩阵本身能对哪些X向量坍缩至0空间(唔,这里可能叫0向量更好一些),很显然,就是A所丢失的列空间(或者叫丢失的秩)正是X向量所能张成的空间,因此,X向量张成的空间的秩加上A的秩的和会刚好等于A为满秩时的秩的值。这没什么奇怪的,因为X所张成的空间即是被A矩阵所丢弃的或者那部分空间,这部分空间叫做(A矩阵所在的零空间或者核

    扩展5:

    1. 对于一个非方阵矩阵变换,例如

      左边是一个3x2的矩阵,而右边是一个2x1的矩阵,根据 矩阵乘法的基本知识,我们会得到一个3x1=的矩阵像这样



      根据我们之前的知识,这里左边为转换矩阵,右边为输入值,这里的值是布满整个平面的点,然后输出为一个高维(这里是3维)的点,需要注意的是,输出的这里的三维的所有点,依旧在一个平面上,如果把这个平面画在三维欧式空间里可以看到这个平面是斜着一定角度的,但仍然是一个平面,也即是说,左边的3x2矩阵秩依然是满秩为2,或者说列空间为2,右边的输入值可以认为是对所有列空间的线性组合,列空间为2自然组合最多为平面,只不过这个平面有点不太一样罢了。





      的线性组合
      也即是说,这里将一个二维点进行了“升维”,(为什么打引号,因为其实维度并没有改变,只能说,我把一个平面,表示在了三维空间而已。比如(x,y)平面,如果我非要表示在三维空间,一个简单的方式就是直接写成(x,y,0)即z值为0的3维空间中的二维平面,但z不一定非要为0,仔细想想就完全理解了)
    2. 同样的

      左边是一个1x2的矩阵,而右边是一个2x1的矩阵,根据 矩阵乘法的基本知识,我们会得到一个1x1=的矩阵像这样



      左边虽然有两列,也即是原始的空间是2维的,但两列属于线性相关,因此有一列是属于重复贡献了列空间,也即是说列空间为1,即秩为1,右边输入空间是二维向量,可以理解为对单一的一维列空间的线性组合,显然结果是集中在一条直线上,这是对二维输入的一个降维操作。图形表示的话,就像是对一个不稳定的正方形(比如说四个顶点用螺丝固定,假如螺丝不是很紧,那么正方形就可以发生一些形变),我们从上往下施加一个斜方向的压力,就会逐渐变成平行四边行,继续往下压折叠会逐渐折叠成一条直线,这个坍缩有点斜不拉几的,然后逐渐坍缩到一条直线,
      (注:似乎还是折叠比较适合这个概念。因为这条直线其实是整个平面折合到一起的直线)
      • 如果你仔细注意上述乘法结果的话,你会发现似曾相识,是的,这便是点积的引入。我担心你可能还是有点迷糊,所以我们不妨写成等价的式子
      • 为什么我们说左边原始空间是二维,就是这么回事,但是为什么我们说他的贡献只有单一的一维呢,因为列空间线性相关。我们对线性相关的列空间进行组合,又因为这里的列空间维度是一,所以,相当于是操作同一条直线上各个数字的各自系数的大小,然后相加,所以说,点积,似乎可以理解为对列空间基的积分。只不过这里的列空间基在一条直线上。
      • 这在更高维度同样适用


      • 无论多高维度下都是将各个维度分别往到一维数轴所在位置然后进行的线性组合的最终的加和,也就是点积
    扩展6:

    我们已经知道,线性变换改变了基向量的朝向,同时我们别忘了,线性变换会改变基向量所围成区域的面积大小,而这个面积大小的计算正是把矩阵当成行列式来进行求值的过程

    相关文章

      网友评论

          本文标题:【光能蜗牛的图形学之旅】线性代数

          本文链接:https://www.haomeiwen.com/subject/omxjdxtx.html