线性代数笔记三 线性变换和矩阵乘法

通过前两节的基础知识铺垫,现在可以回到视频的P3和P4,重新看了。建议先关弹幕看一遍,然后打开弹幕看看大家的讨论,可能会有意外收获。
https://www.bilibili.com/video/BV1ys411472E?p=4

一、概念
1.对象的变换等价于坐标系的变换
如图,这是常见坐标系ij黄色向量

经过线性变换(直线依旧是直线,保持网格线平等且等距分布,并且原点保持固定):


image.png

如图,新坐标系的基就是那个绿箭头和红箭头,在原来的ij坐标系下的坐标值是1,-2和3,0。经过如图的计算过程,坐标系的变化,导致原来的V向量变成了5,2,实现了移动。

结合孟岩的理解矩阵系列,这就容易理解了:

嗯,所以我说到了关键的一步。我并没有骗人,之所以矩阵又是运动,又是坐标系,那是因为—— “运动等价于坐标系变换”。对不起,这话其实不准确,我只是想让你印象深刻。准确的说法是:“对象的变换等价于坐标系的变换”。 或者:“固定坐标系下一个对象的变换等价于固定对象所处的坐标系变换。” 说白了就是:“运动是相对的。”

现在可以推断出任意向量在变换之后的位置,以x,y为例:


image.png
2.矩阵的乘法

现在看一个新的坐标变换,如图i,j已经标上了

image.png

现在把它们放到2*2的矩阵里:
image.png

这里视频并没有着重强调,但我却觉得非常重要。可以理解为万恶之源,矩阵就这样出现了。之前我们一直在向量的讨论范围内做加减和缩放,现在突然就混入了矩阵。根据字幕的意思,可以把这个矩阵理解为两个特殊的向量,即变换后的i帽和j帽。是不是有一种函数的参数,还是一个函数的嵌套感?

如果一个向量,比如5,7经过这个线性变换,结果是什么呢?这里要注意,从右向左读更容易理解。5,7是原始变量,左侧的矩阵是一个对它进行的变换。

image.png

看到这里,可能会有困惑,为什么结果是拿5乘以竖着的[3,-2]矩阵,然后还要加上7乘以竖着的[2,1]?其实需要的知识在本文开头已经讲了,我们可以把[5,7]理解为是一种新的写法,它实际上表示的是向量5i+7j,根据向量加法,5i+7j正是从原点(0,0)指向(5,7)那个点的一个向量。然后我们描述这样一个变换,也就是把i变成竖着的[3,-2],j变成竖着的[2,1],变换后的结果自然就是i,j各自变换后,仍然加在一起:
image.png

上面也说了,我们把这种变换竖着写在一起,就是矩阵:
image.png

利用这种思路,可以看看百度百科中更复杂的矩阵乘法例子:

https://baike.baidu.com/item/%E7%9F%A9%E9%98%B5%E4%B9%98%E6%B3%95/5446029?fr=aladdin

image.png

image.png

如上图,可以将[2,4],[1,3],[3,2]当成三个部分,等于[2,4]i+[1,3]j+[3,2]k,就和之前竖着的[5,7]视作5i+7k一样。现在变换将i,j,k这三个基坐标变成了四行的坐标形式,相当于[2,4]也变成了四行的形式。同样的,[1,3],[3,2]也变成了四行的形式。如果比作三维变换到四维,我不知道这样类比正确不正确。所以,变换后的东西,仍然是像[2,4]一样有两列,不过有四行。

现在,推广到更一般的情况:

image.png

x,y经过一个线性变换,而这个线性变换两个基的变换可以放到一个矩阵里表示,把它放到左乘位置,就可以定义为矩阵的乘法了。

这里可以参考孟岩的理解矩阵第三篇:

Ma = Ib的意思就是说:
“在M坐标系里量出来的向量a,跟在I坐标系里量出来的向量b,其实根本就是一个向量啊!”
这哪里是什么乘法计算,根本就是身份识别嘛。
从这个意义上我们重新理解一下向量。向量这个东西客观存在,但是要把它表示出来,就要把它放在一个坐标系中去度量它,然后把度量的结果(向量在各个坐标轴上的投影值)按一定顺序列在一起,就成了我们平时所见的向量表示形式。你选择的坐标系(基)不同,得出来的向量的表示就不同。向量还是那个向量,选择的坐标系不同,其表示方式就不同。因此,按道理来说,每写出一个向量的表示,都应该声明一下这个表示是在哪个坐标系中度量出来的。表示的方式,就是 Ma,也就是说,有一个向量,在M矩阵表示的坐标系中度量出来的结果为a。我们平时说一个向量是[2 3 5 7]T,隐含着是说,这个向量在 I 坐标系中的度量结果是[2 3 5 7]T,因此,这个形式反而是一种简化了的特殊情况。

注意到,M矩阵表示出来的那个坐标系,由一组基组成,而那组基也是由向量组成的,同样存在这组向量是在哪个坐标系下度量而成的问题。也就是说,表述一个矩阵的一般方法,也应该要指明其所处的基准坐标系。所谓M,其实是 IM,也就是说,M中那组基的度量是在 I 坐标系中得出的。从这个视角来看,M×N也不是什么矩阵乘法了,而是声明了一个在M坐标系中量出的另一个坐标系N,其中M本身是在I坐标系中度量出来的。
下面我们得出一个重要的结论:“对坐标系施加变换的方法,就是让表示那个坐标系的矩阵与表示那个变化的矩阵相乘。”再一次的,矩阵的乘法变成了运动的施加。只不过,被施加运动的不再是向量,而是另一个坐标系。
————————————————
版权声明:本文为CSDN博主「myan」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/myan/article/details/1865397

3.关于为什么是左乘

B站视频的弹幕有网友作出解释,摘抄一部分:

  • 这就解释了为什么矩阵的乘法要求左边的列和右边的行要相等。因为左边的列相当于基向量的维度,右边的行相当于转变向量的维度,这两个要在同一维度。
二、简单例子
1.逆时针旋转90度

坐标系之前是X向右,Y向上的坐标系,即ij最初是(1,0)和(0,1)。逆时针旋转90度之后,i变成了0,1;j变成了-1,0。所以任意向量逆时针旋转90度之后结果是这样的:


image.png
2.剪切,也叫错切

相当于之前的坐标系被压扁了,i帽没有变,j帽变成了(1,1)


image.png
三、旋转与剪切的复合变换--矩阵乘以矩阵

注:这个知识点处于视频的P5 https://www.bilibili.com/video/BV1ys411472E?p=5

先旋转再剪切后,ij的坐标如图
image.png

这里,两个矩阵的相乘就有了几何意义,即两个线性变换,相继发生作用。

image.png

在这里我们发现,矩阵乘法的变换顺序是从右往左读的(这一个常识很重要,你得明白这一点,有基本概念),进一步联系和思考发现,和复合函数的形式,如 f(g(x)) ,是一致的。如果从代码的角度,也可以理解为递归。

现在从右向左读,M1的i即e,g又经过了M2变换,如下图:这里乘上M2相当于把M1变换后的基,在M2变换方式中变换。注意,M2变换是针对最初的(1,0),(0,1)的。也就是M2和M1都是基于原有坐标系的。


image.png

同理把M1的j也这样变换,最终得到结果:


image.png

现在应该很容易明白M1M2不等于M2M1,因为这两者的复合变换,顺序是不同的。而对于交换率呢,也就是(AB)C和A(BC)是否相同呢?很明显相同,从右向左的复合变换,顺序完全相同,括号只不过是把其中两个变换合并而已。

四、矩阵乘法扩展
1.实际计算技巧

这个技巧来自

GAMES101-现代计算机图形学入门-闫令琪
https://www.bilibili.com/video/BV1X7411F744?p=2

image.png

首先,用上面的计算方式,右侧矩阵视为要转变的向量,即把[3,6,9,4]和[2,7,8,3]这两个维度的i,j变换成[1,5,0]和[3,2,4]


image.png

B站闫大佬视频的分析,是这样计算的:


原谅我不会写矩阵,只能截图了……

这与上面的计算技巧是一个意思,只不过现在一次性算出来三行。其实细看这三行,正是上面用到的第几行乘以第几列的技巧。

但是,这种计算方式破坏了之前关于基坐标变换的思维方式。个人觉得,为了不引起记忆混乱,还是放弃这种思路吧。

2.缩放和平移的思考

比如一个向量[x,y,z],如果要在X方向缩放2倍,变成[2x,y,z]。左乘的那个矩阵怎么填?


image.png

按照上面这种思路来分析:


image.png

由于需要考虑消元,很容易得出以下答案:
image.png

结论就是左乘矩阵就是:
2 0 0
0 1 0
0 0 1

现在来考虑平移,比如把[x,y,z]变成[x+10,y,z]。然后就会发现,找不到这样的矩阵,用乘法就能搞定这个事件,必须要用加法。这正是引入齐次坐标的原因,具体参考图形学笔记一 仿射变换和齐次坐标

简单来说,把升到四维就可以了,这样平移就和别的线性变换一样,都用矩阵乘法搞定。点坐标变成[x,y,z,1]之后,怎么变成[x+10,y,z,1]呢?把上面的扩展一下,就是这样的:

image.png

很显然,平移矩阵是这样的:


image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,230评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,261评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,089评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,542评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,542评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,544评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,922评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,578评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,816评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,576评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,658评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,359评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,937评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,920评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,859评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,381评论 2 342

推荐阅读更多精彩内容