线性代数笔记32——线性变换及对应矩阵

  原文:https://mp.weixin.qq.com/s/qCmstZdzCy1WCfBAkEZEoA

  线性变换这个词在线性代数中经常被提及,每个线性变换的背后都有一个矩阵。矩阵的概念比较直观,相比之下,线性变换就显得抽象了。

线性变换

  抛开矩阵,我们从变换的角度讨论投影。通过T变换,使平面内的一个向量投影到一条直线上:

  T就像一个函数:给定一个输入向量,经过T的变换,输出成直线上的投影,过去我们一直用更专业的“映射”称呼这种变换关系。下图中vw是R2空间内的向量,通过T变换变成了直线上的投影,即T(v)和T(w):

  

  变换的关系有很多,而线性代数只讨论线性变换。如果T表示一个线性变换关系,对于任意向量vw以及标量c,线性变换应该保证下面两个运算的不变性,加法不变性和数乘不变性,这一点和线性组合类似:

  把二者结合:

  顺便说一下,投影变换是一种线性变换。

判断线性变换

  判断一个变换是否是线性变换其实并不困难,只要判断这个变换是否满足加法不变性和数乘不变性即可。

反例1:平移整个平面

  假设某个变换关系T是平面沿着某个方向平移v0,也就是说对于平面内的任意向量v,都有T(v) = v + v0,T变换是否是线性变换?

  这个看起来很简单的变换并不是线性变换,它违背了线性变换的两个不变性,以数乘不变性为例:

  线性变换的不变性要求对输入空间内的任意向量都成立,当然也包括零向量,因此一个更简单的判断方法就是使用零向量。数乘不变性对于零向量来说将有T(0) = 0,但本例中T(0) = v0,所以说“平移”变换不是线性变换。

反例2:求向量的长度

  变换关系T(v) = ||v||是否是线性变换?

  T变换将产生维度的变化。假设v是一个三维向量,经过T的变换将变成一个大于等于0的实数,也就是一维向量:

  虽然本例满足T(0) = 0,但是对于数乘不变性来说,如果c是负数,那么T(cv) ≠ cT(v),因此本例不是线性变换。

正例1:旋转变换

  变换关系T:R2→R2是将一个二维空间的向量旋转45°,这个变换是否是线性变换?

  答案是肯定的,它符合线性变换的两个不变性。

  即使去掉坐标轴,依然能够清晰地描述这个变换,下图是对二维平面内的图形进行旋转:

正例2:线性变换与矩阵

  到目前为止,线性变换还没有和矩阵产生任何关系。现在有一个变换关系是矩阵乘以一个向量,T(v) = Av,其中A是一个矩阵。根据矩阵乘法的性质:

  这符合线性变换的两个判据,因此矩阵乘以向量是一个线性变换。这意味着选中一个矩阵,用它乘以平面上的所有向量,将得到一系列线性变换后的结果,即整个平面通过矩阵乘法发生了变换,这也是一个值得研究的结果。

  现在有一个矩阵:

  如果用A乘以一个R2空间的向量v——当然,A是2×2矩阵,它也只能乘以一个R2空间的向量——将把v线性变换成另一个向量,变换后的向量的x分量不变,y分量与v的y分量相反:

  

描述线性变换

  我们的目的是理解线性变换,而理解线性变换的本质是确定线性变换背后的矩阵,虽然可以在脱离坐标和具体数值的情况下讨论线性变换,但是为了更好地描述,我们仍然有必要引入坐标系。

  假设有一个三维向量,能够通过某种线性变换变成二维向量,这将是一个怎样的变换?

  用矩阵描述这个关系,T(v) = Avv是三维向量,通过Av变成了二维向量,那么A一定是一个2×3矩阵。任何一个2×3的矩阵都可以将一个三维向量线性变换成二维向量,每一个变换都对应一个具体的矩阵。

输入空间的基

  对于平面内特定的向量v1,只要看看T(v1)就可以了解线性变换对它产生的作用。我们对空间内其它向量的线性变换同样感兴趣,换句话说,我们想知道线性变换对于整个输入空间的影响。既然向量空间是由线性无关的向量张成的,那么只要知道平面内两个线性无关的向量,就可以了解平面内所有向量线性变换的结果。也就是说,只要知道输入空间的基,就能掌握线性变换对整个输入空间的影响。

  v1,v2……vn是输入空间的一组基向量,把它称之为输入基。只要知道所有输入基的线性变换,就可以知道输入空间内任意向量的线性变换:

坐标

  先来看看什么是坐标。

  Rn空间的坐标是一组数字,这些数字表示Rn空间的给定向量v由多少个基向量组成(基向量线性组合的系数),但是基向量不止一组,如果基向量改变了,坐标也随之改变,因此一般来说,坐标系建立在标准基的基础之上。例如一个三维空间的向量的坐标是(2,3,4):

  上式可以清晰地看到v是三个标准基向量的线性组合,尽管大多数时候我们都意识不到这种组合。

  对于线性组合来说,一旦选定了一组基,坐标也随之确定。比如对于输入空间的任意一个向量v来说,都可以用基向量的唯一线性组合表示:

  一旦向量确定,其线性组合也随之确定,此时c1, c2 ,…,cn就是该向量的一组确定的坐标值。

线性变换与矩阵

  我们的目的是确定线性变换背后的矩阵,矩阵是与坐标有关的(矩阵中的元素是确定的值),而线性变换与坐标无关。现在的问题是,如何把一个与坐标无关的线性变换变成一个与坐标有关的矩阵?

  假设有T能够完成一个向量从n维空间到m维空间的线性变换:

  现在我们打算构造一个矩阵A来描述这个线性变换。在描述时需要两组基:输入空间的一组基来描述输入向量,以及输出空间的一组基来确定输出向量的坐标。这两组基一旦确定,对应的矩阵也就确定了。

  v1,v2……vn是输入空间的一组基向量,来自Rn空间;w1,w2……wm是输出空间的一组基向量,来自Rm空间。对于每个输入向量来说,都有具体的坐标值,该坐标由基向量的线性组合确定,然后把这些坐标值乘以某个矩阵A,将得到相应的输出向量,输出向量的坐标同样可以由输出空间的基确定。用矩阵A来表示线性变换,就是将矩阵乘以输入向量的坐标,得到它在输出空间的坐标。

  值得注意的是,线性变换背后的矩阵A乘以的是输入向量的坐标,不是输入向量本身,得到的也是输出向量的坐标,不是输出向量本身。定义一个线性变换T(v),对v = c1v1 + c2v2 + …… + cnvn进行变换,如果用A描述这个变换,则A需要满足:

  

  之后用输出向量的坐标对输出空间的基向量进行线性组合,得到最终的输出向量w

  由于我们之前一直使用的是标准基,因此感觉不到坐标的存在。

  

  我们之前说过,投影属于线性变换,这里正好用投影的例子对上面的描述加以说明。为了简单起见,将这个投影定义在二维空间,n = m = 2。参与变换的向量都在平面上,让平面上的所有向量都投影在一条直线上。选择输入空间的两个基向量v1v2代替R2空间的标准基向量,其中v1沿着投影方向趴在直线上,v2垂直于投影方向:

  上图特意去掉了坐标系,以强调线性变换与坐标无关。同时,由于输出空间也是R2空间,我们也同样用v1v2作为输出空间的基,即w1 = v1, w2 = v2

  之前说过,输入空间和输出空间的基一旦确定,对应的矩阵也就确定了。现在的问题是,根据v1v2w1w2如何描述这个用于线性变换的变换规则?也就是说,作用于线性变换的矩阵是什么?

  对于出入空间的任意向量v,都可以表示成两个基向量的线性组合:

  我们事先已经知道投影变换是一种线性变换,它线性变换的两个不变性:

  T表示投影变换,T(v1)是v1的投影,沿着直线方向的向量的投影就是这个向量本身,所以T(v1) = v1v2垂直于直线,它的投影是零向量,所以T(v2) = 0。由此得到了投影变换和这组基向量的关系:

  A用一组特殊的输入基和输出基(垂直于直线和沿着直线方向的一组基)描述了线性变换,将矩阵A乘以输入向量的坐标,得到它在输出空间的坐标:

  如果改用标准坐标基,即:

  投影的直线也需要给出具体的位置,假设T(v)变换是将向量投影到45°的直线上:

  现在尝试找出这个符合要求的矩阵,也就是投影矩阵。根据投影矩阵的公式,可以用向量a = (t, t)表示直线,从而求得投影矩阵:

  

  在使用标准坐标基的时候,坐标值等于向量本身:

  可以看到,如果选择的基向量不同,即使对于同样的线性变换,背后的矩阵也不同。在使用标准坐标基的时候,感觉不到坐标的存在,此时矩阵乘以输入向量等于输出向量。实际上第一次是以投影矩阵的特征向量为基,得到的矩阵A是投影矩阵P的特征值矩阵。

如何确定矩阵

  确定矩阵A的前提是需要知道输入空间和输出空间的基,我们依然用v1,v2……vnw1,w2……wm表示这两组基。T(v1)表示对输入空间的第一个基向量v1做线性变换,此时矩阵A乘以的坐标是(1,0,…,0),得到的输出坐标是:

  

  当知道线性变换的结果时,就可以通过它的坐标确定A的第一列。上式实际上描述了这样线性变换:

求导也是一种线性变换

  这里有一个特殊的线性变换——求导,T = d/dx。我们之所以能够对函数求导,正是因为求导本身是一种线性变换,因此只需要掌握少量的求导法则,就能求出函数线性组合的导数。

  假设输入空间的基是1, x, x2,线性组合是c1 + c2x + c3x2;输出是导数:

  输出空间的基是1, x。这是一个从三维空间到二维空间的线性变换:

  描述这个线性变换的矩阵A满足:


  出处:微信公众号 "我是8位的"

  本文以学习、研究和分享为主,如需转载,请联系本人,标明作者和出处,非商业用途! 

  扫描二维码关注作者公众号“我是8位的”

原文地址:https://www.cnblogs.com/bigmonkey/p/12038710.html