线性代数的本质1 - 向量是什么
最近翻到一个非常棒讲解线性代数本质的视频,而且居然是在B站翻到的。扫过一遍视频犹如醍醐灌顶,过程中不停发出“卧槽”的赞叹。很久没有碰到那么好的教程里。与我看过所有关于线性代数的教程不同,作者在这套视频中没有以定理和公式开始,而是完全从二维和三维世界里的动画来描述线性代数中的基本概念,弱化代数层面,而加强观众在几何层面上的理解。演示动画是用编程实现的,十分形象,让人过目不忘,作者还慷慨地给出了源代码,真是业界良心。 现在我开始刷第二遍视频,在记录过程中我会补充一些自己的理解和别的教材给出的解释。毕竟作者也说过光理解本质还是不够,线性代数包罗万象,还是需要更加全面的理解,尽管会相对枯燥。
向量是什么 What the f*** exactly is a vector?
向量是线性代数中最重要和最基本的概念之一。除了在线性代数的范畴里,他在不同领域里还有不同的定义,可以很抽象,也可以很形象,为了不影响其他抽象概念的理解,我们需要先对向量有一个基本共识。总的来说,作者认为可以从三个人角度来理解向量:
1. 物理学家的角度: 向量是空间中的箭头,由长度(Length)和方向(Direction)来决定。这个箭头没有固定的起点,只要保证长度和方向一样,不然它处于空间中的哪个位置都是同一个向量。
2. 计算机学家的角度:向量是一个有序的数字列表(an ordered list of numbers)。计算机学家用向量来对一些物体的属性进行建模,比如我的身高是177,体重145,那么就可以用一个二维的向量对我这两个属性进行建模, 即 [177, 145]。需要注意的是,一旦建模后,属性的排列顺序不能改变,一旦改变了就是另外一个向量了。[145, 177] 会被当成另外一个向量,即身高145,体重177的人(这才不是我的真实数据呢啊呸(╯°Д°)╯︵ ┻━┻),由此看出顺序(order)在计算机学家的眼中多么重要啊。
3. 数学家的角度:在我看来,数学家和哲学家属于同一类人:他们都不能好好说人话。他们善于抽象,抽象的深度和广度是吾等凡人跟不上的。就向量而言,数学家认为它可以是anything,只要保证两个向量相加是有意义的,而且一个数字和向量相乘也是有意义的即可。听不懂吧,我也听不懂,所以我们最后再来回顾这个角度。现在你只要记得数学家告诉你:向量相加和数字与向量相乘是两个非常重要的操作。
在线性代数里的向量指什么?
在这个教程中,当我们提到向量的时候,我们把它想象成一个空间中的箭头,有方向和长度。与上面不同的是,这个箭头的起点是固定的,都在坐标系上的原点上。而向量箭头的终点有一个坐标,这个坐标和向量是一一对应的。从坐标理解,每个维度都移动相应的步数,得到一个总的结果即为向量加法的结果。
向量加法 - 运动(movement)
每个向量代表着一种特定的运动方式(movement),考虑一维情况(即数轴),2 + 5 就是先向数轴右边移动两步得到2,再向右移动五步得到结果7。在二维中,向量加法的结果是把其中一个向量移动到另一个向量的终点,这样所指向的终点即新向量的坐标。这样相当于定义了一种新的运动,直接从原点到这个新坐标即可。
向量数乘 - 伸缩(scaling)
一个向量乘以一个数字a,长度变为原来的|a|倍,方向由a的符号决定,如果a是负数,向量的方向沿着原点翻转。
Summary: 向量和坐标
物理学家和计算机学家对于向量的理解都是从自己专业领域里的应用出发,而作者认为我们应该把两个观点结合起来,不用去在意谁先谁后,而是理解这两个观点如何相互转化,这样在处理数据时,我们就能对数据进行形象分析和可视化理解,进而从中找到规律,而不是一堆杂乱无章的数字。