线性代数通关:用"空间"的眼光重看矩阵
线代从一开始就让我摸不着头脑:这行列式求值,用的什么逆序数,这是只有日本用的吗。行列式真好玩,那个MIT前面教了那么复杂的东西,结果行列式背几个结论就能灵活操作……不甘心呐。后面会根据考试难度,考虑学多深,行列式的各种性质的证明很值得学习。线代的数学书我看不懂,全是日语,攻略速度太慢了。等我的微积分书到了,先把数学常见的日语搞定。什么叫阅读理解,看看外语线代书,才叫阅读理解,太硬核了。线性代数也一堆概念,我要乱套了,中日还不一样。这个线代阿,我就算理解了底层原理,我该背还是得背阿,不然我哪里那么大脑容量从最底层开始往上推。上完私塾课,我还要专门去攻克两本日语数学教材,不然,做题格式,日语名词都对不上。读日语数学书难度真是倍增,不读也不管,不然以后搞科研更麻烦。就有些片假名我都不知道它在说什么,我读这日语数学书是要像英语一样查音标查意思的,一个词一个词查。
矩阵就是空间里的物体
我线代还没有学太多,可能理解不到位,说一下矩阵和基础解系的本质。矩阵的本质是描述一个高维"物体",行列式绝对值就是该物体的体积。在二维中,称为面积,在三维中称为体积,在更高维度,这里都称为体积。对于一个规则的立方体,我们可以直观的写出一个体积公式,但是对于一个不规则的物体,如何解体积?在多次计算后,可以发现,矩阵行列式求的是正是任意物体的体积。为什么可以描述一个物体?第一性原理:物体的本质上由点构成,而面和体均为人所想象,所以我们只关注点的位置,而点使用的是坐标轴、坐标去描述。我们发现,矩阵的每一个列向量的基正是描述坐标轴的。对于最常见的标准三维坐标系,分别代表xyz轴的方向,将它们组成矩阵,我们就打开了三维空间。当我们使用不同的权重加在坐标轴上时,就得到了坐标。空间里任何一点都可以使用列向量基*权重表达。于是一列就是空间一个点,物体由多个点构成,于是我们可以将列组成一个矩阵,成功表达了任意维度的任意物体。如四个点的立方体,求其体积,不再需要空间想象。但是我们会发现一个问题:矩阵有较多的冗余信息。我们怎么去找到最有效的?节省资源。这里的冗余信息是指向量没有提供新的方向,打开更高的维度。一个物体可以由无数个点构成,如果你把所有点都写在同一个平面内,那么这大部分点就是冗余信息,所以表示该物体的矩阵里的无数列也都是无效的。上面所说的所有,都是以列向量作为点的基础:行向量的数量是维度的数量,列向量是在该维度内的点的数量。我们在数据处理中,参数的数量意味着维度的数量,维度是不可以更改的,因为不能少参数。所以为了简化为最小有效信息,我们必须从点的数量动手,也就是减少列向量。这时我们就需要拿出工具了:基础解系,即用最少的信息,描述线性方程组的全部解。
秩、自由度与零空间
由于矩阵不好理解,我们可以从最简单的方程组理解:秩的本质是一个矩阵的有效信息,或者,一个矩阵它本质是处于几维的空间。但是我们去求解的时候,会发现,这个矩阵会有大量无效信息,于是秩很小,而未知量很多。这意味着自由度高,自由度站在秩的对立面。比如上面的方程组,我们发现,只有一个未知量是有效的,也就是秩为1,得出x=−y。那么,自由度是多少?自由意味着,这个变量可以随意设置,也就是所谓的基础解系。我们还发现:没有未知量的点组成的矩阵,描述的物体是有限大小的。而存在未知量的矩阵,它想要描述的是满足条件的点的集合构成的物体。如果你用穷举,你会找到无数个在同一物体上的点,但是无法判断核心的几个点。比如正方体就是8个点,但是如果你在不知道的情况下,你会求出来正方体面上的无数个点。而我们希望用基础解系求出最简单的表示方法,表示所有的点。例如,一个未知矩阵,所表示的是一个在三维空间内无限延伸的平面,那么我们只需要知道该平面上的两个线性无关的方向,就可以描述整个平面。我们发现,未知矩阵给的是物体的范围。在Ax=0中,我们对X进行A的变换,有固定值0,即X是A条件下所表达的物体。我们要求得X,也就是用基础解系求得生成该物体的方法。这是第一个理解角度。我们还有一个角度:我们发现,x在经过A的变换后为0,即消失了,意味着这一个点,也就是列向量消失了。这一个方程就是在消除这样的方向。比如,把三维物体投射到平面,厚度消失了。我们通过这个方程找到哪些x被A作用之后,结果变成0,这个x的集合就是零空间。所生成的是零空间所表示的物体。Ax=0即零空间物体X经过A变换后为0。对于行空间或列空间中的物体A来说,零空间永远与其垂直,这意味着空间与空间是垂直的。一个空间是一个平面,另一个空间就是从这个平面竖起来的方向。若一个矩阵所表达的空间满秩,则其零空间为0;若一个空间没有满秩,则另一个空间的维度数与其互补。这些理解不是很完善,不够流畅,有待补全,以后再说。
变换、特征向量与行列式
矩阵不仅表示物体,更多的是一个图形的变换操作。例如,对图像进行拉伸、压缩、旋转、扭曲等,都可以直接通过一个矩阵进行。而特征向量正是在这种变换中"方向不变"的向量:Av=λv,即存在特征向量v,经过A的变换后,仅被拉伸或压缩了λ倍,而方向不变。零空间是指坍缩的方向。但是特征向量不是坐标轴,特征向量确切来讲是在一个线性变换中的稳定方向,是所属矩阵的一个性质。例如,一个物体的质量不会因为你换单位而改变。这时,本来表述变换操作的矩阵又表示了物体。我们发现:行列式是各方向伸缩比例的乘积,也就是说,矩阵表示的物体的体积是各方向伸缩比例的乘积。特征值就是绳索比例。我们会发现,特征向量与列向量不同:列向量指的是我们把坐标轴方向拉到哪里,而特征向量指的是哪些方向不会被扭曲。这两种向量有可能会重合,在一种情况下:对角矩阵。在一般矩阵下,原始方向被交叉影响,x与y相互影响,所以我们干脆使用了列向量,列空间会更清晰。但是,在对角矩阵下,x只影响x,y只影响y,只有拉伸压缩,这符合特征向量。而D在每一个行向量下只有一个值,导致了列向量跟行向量没有区别,这让列向量正好表示了原始的方向。仅在此种矩阵下,列向量与特征向量重合,正好把对角矩阵的本质也带出来了。这也能直接理解,"能不能对角化"本质上决定了系统是否可以完全分解。为什么行列式的值表示体积?因为矩阵的原始方向是单位平行多面体的方向。常规的矩阵表示的复杂物体,正是由原来的单位立方体,经过矩阵所表示的线性变换得到的新的平行多面体。所以我们只需要让单位立方体体积1乘以矩阵各方向的特征值,即可得到体积。所以,行列式表示体积,正是因为。我觉得上面说的,对于矩阵的理解应该可以满足不少公式记忆了:比如没有满秩,矩阵行列式的绝对值为0,这一下就记住了。你三维里表示一个平面,体积能不为0吗,就这么简单。矩阵之间的操作就是空间的变换,每一个独立的矩阵就是某个空间的某个物体。线性代数的计算是空间和空间的碰撞,在碰撞的夹缝中寻得答案。用更高的视角,你不需要记忆任何线代的公式。我收回前段时间说的线代要背。还是数学好。对于公式我们要找到最自然的理解方式:正方形,就是边长乘以边长,不需要记忆,因为很自然。其实对于泰勒公式都是如此。反正公式都在那了,马后炮还不容易嘛。我觉得从空间和物体的角度应该足够我考试了,以后就来完善一下这个框架。
左乘与右乘
之前说的都是左乘的操作,也就是Ax,现在说一下xA右乘的操作。在左乘时,矩阵A作用于列向量x上,改变了物体的形状或位置。而在右乘时,矩阵A作用在行向量x上,改变的是坐标系的刻度或方向。也就是说,物体没有动,动的是观测物体的视角。Ax中,A矩阵表示的操作是旋转90度,得到列向量x被旋转90度后的向量。而右乘xA,是把x所处坐标系旋转90度,如从[x,y]变成[y,-x]。由于坐标系改变,坐标也随之改变。但是我们发现:右乘一个用于旋转的矩阵,只是把坐标系旋转了,输出还在原坐标系。这时只是把输入坐标系旋转了。若再把物体转换到新的输出坐标系,才能在新坐标系下表示该物体。当我们想要给一个物体换基,先旋转坐标系90度,得到AP,再旋转物体90度,才算完成。我们直观理解下,表示物体的矩阵的元素应该是毫无变化的,但是,在旋转坐标系的时候,物体虽然没有变,但是描述该物体的矩阵变化了。改变坐标系不能通过等式计算的方式去理解,因为函数本身是已经建立在了某一个坐标系上的,我们必须要重新赋予处理后的新输入和其输出的关系。
深化的一点
代数重数:这个特征值作为"拉伸因子"在特征方程里重复了几次。这个"拉伸比例"在整体变换结构中出现了几次。由特征值和特征向量的数量关系,我们可以深入探讨矩阵变换的本质。依然从空间的角度理解:在三维中,如果一个物体的特征空间是一个直线,也就是只有一个几何重数,那么物体的所有方向都会被推向该直线,只有这条直线在伸缩。若物体只有一个代数重数,比如该物体正好是这条直线,那么它就是稳定的,该矩阵只会伸缩,可被对角化。该理解不够深入,只是为了满足所有结论而得出,后面会继续完善。事实上,研究对角化,就是在研究一个物体是否已经被推歪,或者说某个方向的变化是否依赖于另一个方向,或者说特征向量是否足够张成物体所处于的维度,矩阵所表示的这个变换是否可以被完全分解成若干个彼此独立的拉伸方向。我觉得完全可以用空间几何的方式解释所有线性代数问题,作为教学理解。有实际的空间问题后再去学习。就比如我们发现坐标系不再能好用于空间物体的观测,那么就转去利用基的思维。这种主动的改变在数学中不容易学习,若出成考题,则会难倒大部分的人,尽管非常简单。
学的过程
分享一下过程中的工具和观点:2.10解决了微积分,预计2.20号结束线性代数的第一遍学习,仅初步理解,还没有怎么做题。相似对角化求极限,这是什么玩意,这种结合真的有应用场景吗。分享一个技巧:如果你把一类问题都放在ChatGPT的项目功能中,你在其中一个问题里获得的理解,会一直被同项目下所有chatgpt记忆。这样对问题进行归类,而问答中的重要理解却可以被继承,是可以成为一种笔记的。对于数学理解的继承非常重要:chatgpt可以从你前一个问题的理解出发,对其他问题进行解答,理解之间有连接,容易形成体系。我对对角化的理解是每个方向都独立的拉伸,而Jordan结构则是一个方向稳定,其他方向被该方向"拖着走",这样进行知识点串联。实对称矩阵的本质就是一个可以完全被分解为互相垂直方向的纯拉伸算子。如果你把实对称矩阵看作一个物体,可以发现它们在列空间上的形状规律。这线代比微积分抽象多了,怎么放在一起的。这你要是不理解,难不成靠背吗。线性代数不能背昂,每一个知识都有很强的应用性,不然不会被提出来的。线性代数在做科研时处理实验是非常常用的,一定要理解,不然白学了。顺便:这边推荐一个比较极端的方式,把学习任务安排给父母看,按照内容进行每天打卡发给父母。听上去是很怪的方法,实际上能获得积极作用的压力,效率大增,也会有利于跟父母的沟通。零空间=奇异值为0的右奇异向量。怪了,我越来越搞不明白这些矩阵是怎么对空间进行作用的了。目前还没做题,我感觉能理解到这里应该也很可以了,这些空间变换太神奇了,怎么想出来的都是。靠AI也肝不动了,这到底要学多深啊,怎么感觉教科书也没这些内容。
来自大佬的降维打击
再推荐一个角度:用几何理解线性代数,非常推荐油管3Blue1Brown的视频。这个人的视频可以直接帮助数学思维和数学理解的提升,解决的是"为什么"的问题,而不是一句"人为定义"就过去了。中国教育更关注数值计算,而数值计算有AI,有计算器帮助。在可以任意使用工具的科研场景下,可以说是……哎,所以我们教育还是为了筛选,普及。如果你要考研的话,应该改变思维。True Math~太有意思了。如果你没有深入学习麻省理工的那个老教授的线代课程,至少要看看这个视频。秩就是列空间维数。我总结一堆不如五个字。我是在学的过程已经有了很多理解了才去听,有些东西直接对得上。肯定没有这些大佬总结的到位。非常推荐那个大佬。MIT的线代课可以不听,这个直观理解线代本质的课必须听懂,你会发现跟国内学的根本不是一个东西。降维打击。MIT的课不一定适合国内考研,视频那么长,学习成本很高的,我也只听了一部分,后面根据需要再选择性听,而且是零几年的了,画质实在是。
回到本质
我还会更进一步:函数也是一种向量,求导是线性运算。在理解了矩阵和向量的本质后,你会发现这些东西实在太过于灵活,它们在解题中的用法完全取决于你的想法。若我们要判断四维空间内两个平面的维度数,我们可以将每个平面对应的矩阵中的两个列向量合在一起,判断该列空间的维度数。这真的极其极其的灵活,完全取决于你怎么看待矩阵,怎么看待向量。若两个平面不重合,则为三维度,也就是它们矩阵合在一起的秩为3。以上是一个举例,我把大量的定义和理解融合在了一起。想要搞明白这样的思路,必须要理解本质。线性代数这门学科,是用解决线性方程组问题的方式讲述一种线性化问题的思维。如果你只学会了解决线性方程组,那么你就什么都没有学到,因为解决线性方程组的问题只是作为讲解学科思维的一个例子。我们要学习的是为什么要这样解决线性方程组,而不是如何解决线性方程组。
2.11-2.19,在油管一大佬的帮助下,我在线性代数的理解层面基本通关了。线性代数的计算我基本没有进行任何学习,整门学科做题不超过50道。线性代数就是在把玩向量空间,后续的做题会逐步增加我对使用向量空间的熟练度。我一天听完了,会彻底明白线性代数的本质。这个关于学习的观点我顺便记着:不具备科研性质的学习不是真正的学习,只是模仿。可以为了发现遗留的问题,可以为了增加学习的动力。模仿式的学习被教授者或教授环境锁死了上限,科研式的学习有无穷的上限,在于质疑和探索。我可能会对着仅一页的内容,思考几个小时,但是这不会浪费时间,因为知识点只有那些,我的目的则是一劳永逸。而且,学习确实要分场景:我们每一门学科对于知识内容的划分并不一定是最好的,这样的划分是否完整,是否易于学习,非常值得质疑。若教育是为了筛选和普及,那么其学科的划分理念就与我学习发展的目的完全不同。我们或许应该留意这一点,广泛学习,找到适合自己的知识区域进行学习。跨学科融合,不应该称为跨学科,它们本就是相互关联的知识,不要在观念上就错误了。融会贯通是你学习中本就应该做到的,不然你解决不了任何现实问题。"跨学科融合""融会贯通"这些名词被造出来就已经说明了问题,这些词不应该被重视,而应该默认。当它们被重视的时候,就说明了大部分人做不到。按照个人发展的理念,应该把所有的知识都加入个人的知识体系,组成大的网状结构,而不是受限于外界规定的学科。