zoukankan      html  css  js  c++  java
  • 线性代数总结记录一.关于矩阵的乘法

    一.前言

      这是我准备做的线性代数系列正式开始的第一章节,但是我不准备从行列式或者方程开始说起.在我的理解框架中,矩阵是核心内容,行列式和方程等内容都是工具或者待解决的一些问题.因此,我打算直接从矩阵展开自己的理解,在使用到行列式或者和方程有联系时再切入这些相关内容,因此我直接从矩阵的核心运算-乘法开始,记录一下我理解的矩阵乘法究竟在计算什么.

    二.我理解的矩阵是什么

      数学的学习过程如果搞不清楚自己学习的公式在计算什么,就只能痛苦地背公式,然后在一段时间后忘记;反之,如果直到这个东西在计算什么,则学习起来容易得多,不需要刻意地背公式,梳理清楚了其中的逻辑关系,自己做几遍例题就记住了公式,甚至能够在应用中举一反三.因此我首先梳理一下自己对矩阵的理解.其实一言以蔽之,矩阵就是一堆向量的组合.向量在中学阶段多以在一行中按顺序罗列坐标的形式出现,这种称为行向量记法;如果在一列中按顺序罗列向量的所有坐标,就是列向量.下面分别是行向量和列向量的三维空间坐标系中的x轴单位向量:

      接下来我们看到下面的称为单位阵的两个矩阵:

      这两个矩阵我们都可以看做是一堆列向量的组合(注意:这里也可以看作是横向量的组合,但是要知道将矩阵看做列向量的组合矩阵乘法是从右到左进行的,而将矩阵看做横向量的组合矩阵乘法是从左到右进行的,大部分的线性代数或高等代数书籍中也将矩阵看做列向量的组合,我也采取这种方式),这些列向量就分别是平面直角坐标系和空间直角坐标系中的各个轴的单位向量.

    三.矩阵乘法

      在矩阵的基础运算中,应用最频繁的运算就是矩阵的乘法运算,因此这里梳理一下我理解的这个运算的意义.

    1.向量左乘方阵

      我们现在有一个常见的空间变换:将平面直角坐标系绕原点旋转90°.我们知道,在旋转的过程中,平面内的所有向量会跟随平面一同旋转.那么现在假使有一个向量(3,2),它跟随空间旋转后的向量如何计算呢?中学时可能我们会采用画图的方式去找旋转后的向量,那么如果是平面内的任意向量(x,y)呢,有没有计算的通用方法呢?

      以(3,2)为例,现在我们提供如下的方法进行计算:我们知道向量(3,2)可以将起始点放在原点(向量有方向和长度,没有位置),那么它旋转后的向量起始点仍然在原点,接下来这个向量就可以理解为从原点出发,沿x轴移动3个单位,沿y轴移动两个单位的一个移动,或者说向量分解为3*(1,0)+2*(0,1),其中(1,0)和(0,1)是旋转前坐标轴的单位向量(或称为基向量).我们可以这样理解,旋转的过程中,整个平面内的向量都会跟随平面作旋转,因此基向量也会跟随平面作旋转,且很容易理解旋转前后(3,2)向量和基向量的关系是不变的,也就是说旋转前(3,2)向量可以分解为3倍旋转前x轴基向量的乘积和2倍旋转前y轴基向量的乘积的和,旋转后的(3,2)向量同样可以分解为3倍旋转后x轴基向量的乘积和2倍旋转后y轴基向量的乘积的和.旋转后的基向量分别是(0,1)和(-1,0),因此(3,2)向量旋转后的向量就是3*(0,1)+2*(-1,0).

      这个思路可以用于求解平面直角坐标系中的很多变换,我们将其一般化.如果在平面空间变换的过程中,两个基向量经过一个明确的变换变换分别变换为(m,n)和(p,q),那么原来空间中的任意向量(x,y),它一定可以分解为x*(1,0)+y*(0,1),那么它经过这样的空间变换后的向量一定可以分解为x*(m,n)+y*(p,q),也就是向量(x*m+y*p,x*n+y*q).

      下面我用矩阵的乘法将(3,2)向量逆时针旋转90°的过程和一般二维矩阵变换的过程描述出来:

      总结:可以很容易看出,在空间变换中,两个基向量经过变换后的向量按照顺序以列向量方式罗列出来就是我们的2*2矩阵,如逆时针旋转90°后,(1,0)和(0,1)两个基向量分别变换到了(0,1)和(-1,0)的位置,将这两个向量以列向量的形式写出来放到一起就得到了如上所示的2*2矩阵.向量左乘矩阵的过程,就是对向量也应用矩阵对应的空间变换,求得的结果就是向量应用空间变换后的向量坐标.因此,我们推广一下,就很容易理解单位矩阵其实就是没有对空间应用任何变换(因为变换前后的基向量坐标一致).同样地,二维平面直角坐标系的情形可以推广到三维空间直角坐标系甚至更高维度的坐标系,在三维空间直角坐标系中,矩阵乘法变成了3维向量左乘3*3矩阵.

    2.线性变换

      不知道你是否曾经对线性代数这个名词有疑惑?为什么这门研究矩阵的课程叫做线性代数?线性又是什么意思呢?我理解的线性就是指线性变换,刚才说的旋转就是一种线性变换.试想在旋转前的空间中有一条直线,在旋转后你会发现它仍然是直线,因此旋转这种变换就可以称为是线性变换.具体来说,线性变换有3种,分别是旋转\拉伸和投影,旋转和拉伸这两种线性变换不涉及空间维度的改变,而投影可以是在维度升高或者降低时出现的一种变换(例如将二维平面放到三维空间中并将整个平面或倾斜或翻转,这个变换就是一种低维向高维的投影.又例如在三维空间中选择xy平面,将所有空间中的向量垂直投影到这个平面上,这就是高维向地位的投影).

      旋转对应的线性变换矩阵怎么构造我们已经见过了,其实拉伸和投影的构造方法相同,投影我们在接下来的小节中会涉及,这里以二维空间坐标系的情况举例说明一下拉伸的情况,其他维度的空间直角坐标系同理.

      试想一种简单的拉伸情况,将x轴拉伸为原来的m倍,将y轴拉伸为原来的q倍,这时我们假使有一个向量(x,y),在经过拉伸变换后的坐标为(m*x,q*y),是不是比较熟悉,和刚才的旋转的情况几乎相同.我们同样可以使用相同的思路去得到矩阵:x轴基向量在拉伸后变为了(m,0),而y轴基向量在拉伸后变为了(0,q),这时就构造了我们的二维拉伸矩阵(如下),二维向量左乘这个矩阵后就可以得到拉伸后的向量坐标:

    3.方阵和方阵的乘法

      我们说线性变换有旋转\拉伸和投影的情形,同时我们也以二维空间为例说明了矩阵如何描述和快速计算二维空间中的拉伸和旋转的情形.但是如果现在有一种变换既要拉伸又要旋转,如先将横坐标拉伸为原来的两倍,纵坐标缩短为原来的一半,再将拉伸后的向量绕原点旋转180°,那么得到的向量坐标每次都需要连续依次左乘两个对应的矩阵吗?能不能找到一个矩阵让我们左乘一次就一步到位呢?也就是将两步线性变换矩阵通过某种运算结合起来?相信你已经能想到了,这就是方阵和方阵的乘法.

      我们看到下面一个矩阵乘法:

      我们尝试按照以前的方式去拆分它:向量(x,y)可以用基坐标表示为x*(1,0)+y*(0,1),当我们第一次应用了矩阵变换后,基坐标理论上变成了(m0,n0)和(p0,q0),那么得到的结果向量就应该是x*(m0,n0)+y*(p0,q0),接下来我们应用下一组矩阵变换,得到了一组新的基坐标,假设为(m,n)和(p,q),那么我们的最终结果向量就是x*(m,n)+y*(p,q).那么在这个过程中,第二组基坐标(m,n)是不是可以看做是由第一组基坐标(m0,n0)经过第二次线性变换得到的,第二组(p,q)是不是可以看做是由第一组基坐标(p0,q0)应用第二次线性变换得到的呢?答案当前是肯定的.也就是说第一组基坐标分别左乘了第二次线性变换的矩阵得到了第二组基坐标,那么这两组基坐标运算既然过程是相同的,我们完全可以写到一起,如下面公式所示:

      总结:从上面过程我们可以看到,方阵和方阵的乘法其实是基坐标的变化,当一个向量按顺序左乘这些方阵和一次性乘上这些方阵的结果对应的变换后的坐标理论上是相同的.方阵和方阵的乘法理论上是两种线性变换的复合(类似于复合函数).但是值得注意的是,和复合函数复合顺序改变最终的结果可能改变类似,矩阵乘法的顺序改变其结果也不一定相同,也就是说,矩阵乘法是没有交换律的,但是矩阵乘法是有结合律的.

    4.非方阵和非方阵的乘法

      之前我们已经举例说明了方阵可以描述相应维度线性空间的旋转变换和拉伸变换,那么投影变换又是怎样的呢?我们可以以容易理解的三维空间向二维空间的投影为例说明:

      试想下面一种情形:将三维空间中的任意向量向它所在的xy平面投影,任意一个三维空间的向量都可以得到一个新的向量,而且很容易得到这个新的向量的z轴坐标一定为0.接下来我们可以按照原来的思路构造一个矩阵:

      如何解释这个矩阵呢?可以看到矩阵是由三个列向量组成的,分别是(1,0),(0,1),(0,0),我们可以发现还是按照原来向量左乘方阵的思路理解,这三个向量恰好就是这次投影中原来三维空间坐标系的基向量投影在xy平面上得到,而且结果是二维向量,代表原来的三维向量经过投影变成了二维向量.我们这里描述了向量投影的结果,当一个三维列向量左乘这个向量时,就可以得到这个三维列向量投影的结果向量.这里的思路其实和之前向量左乘方阵的理解思路相同,就不再赘述了.

      总结一下:非方阵对应的线性变换一定是维度发生了变化的(可以是升维,也可以是降维),这种维度发生变化的线性变换一定包含了投影,当然,也可以和旋转以及拉伸复合变换(左乘相应方阵和右乘相应方阵).怎么看维度的变换呢?其实很简单,看矩阵是由几个几维列向量组成的就可以了.如果矩阵是由n个m维向量组成(mXn矩阵),那么应用线性变换前空间有n个基向量,是n维空间,应用线性变换后每个基向量有m个坐标,也相应地有m个基坐标,是m维向量,所以mXn矩阵对应着n维空间的向量投影到m维空间中变为m维空间的向量(可能同时有旋转或拉伸).

    四.关于矩阵乘法

      矩阵是由一系列向量组成的,这些向量就是在空间应用矩阵对应线性空间变换过程中,原来的基向量跟随空间变换得到的新的基向量,而在空间进行线性变换的过程中所有空间中的向量和基向量的关系保持不变.当向量左乘矩阵后得到的向量就是该向量应用矩阵对应线性变换后得到的新向量,这种线性变换可以是旋转\拉伸和投影(投影会产生维度变化).矩阵和矩阵的乘法就是两个矩阵对应的线性空间变换按照从右到左的顺序复合.同时,我们在视图梳理清楚矩阵乘法运算的意义的过程中也同时解释了矩阵乘法为什么是左行乘右列,为什么没有交换律却有结合律,为什么矩阵或向量乘上单位阵得到的结果不变,单位阵的意义是什么等问题.

  • 相关阅读:
    数値処理
    linux使用rsync+inotify-tools+ssh实现文件实时同步
    Linux内核分析第九次作业
    Linux内核原理第八次作业
    Linux内核分析第七次作业
    Linux内核分析第六次作业
    《Linux内核原理与设计》第五周作业
    《Linux内核原理与分析》第四次作业
    Linux内核分析第三次作业
    Linux内核分析第二次作业
  • 原文地址:https://www.cnblogs.com/movin2333/p/15778006.html
Copyright © 2011-2022 走看看