大学、高中的数学课堂都欠我们一个直觉理解(论线性代数中空间直觉的重要性)

这两天偶然发现了3Blue1Brown的线性代数系列视频,两天刷完,简直是醍醐灌顶般感受。他解决了很多困扰我多年的数学问题——如何理解某一个公式公理?这在高中体现还不算太明显,因为高中知识非常简单,很容易将代数的东西投射到几何空间中想象,但是大学中的高等数学、线性代数等内容,没有正确的引导一般人根本无法在几何角度去理解这些东西,所以大学给了我一种感受——“高中数学都是皮毛,大学数学太难了我根本学不明白”。

确实,我真的学不明白。就连石胜利(我大学非常喜欢的老师)都没能让我理解“线性函数与非线性函数”这一点(我指的是从本质上得到解释,而不是简单的定义),学线性代数的时候我更是生无可恋,老师一个劲地罗列我看不懂的公式,他们热衷于讲明白“这个公式是对的”,但是他们从来不会讲“这个公式为什么存在”,但是在我看来,你想学好数学,后者是远远重要于前者的,也是这个系列视频老哥说的“Good explanation > Symbolic proof”,即“良好的解释 > 象征性的证明”,计算的目的不在于数字本身,而在于洞察其背后的意义,很明显我们绝大多数的中学和大学课堂都仅仅局限于数字本身,这也是我大学最痛苦的一部分。

但是在高中,我也很苦恼,为什么法向量这么求?为什么它是正(负)的?虽然通过数学推导能证明是正确的,但是为什么这个推导是正确的?

“不以高难度的证明为骄傲,因为高难度的证明意味着我们还不理解,理想的情况是绘出一幅美景,而证明在其中显而易见。”

一些数学家,通过罗列一大堆复杂的公式,以此来体现数学的“权威性”和“高难度”,将门外汉挡在门外,当一辈子门外汉。

很明显,罗列公式这种事情,是极其枯燥乏味的,无趣且在很大程度上无意义,将原本优雅美丽的数学变得复杂又恶心。这也是把我从高中一个非常热爱数学的理科男打磨成一个在大学厌恶甚至害怕数学的工科男的罪魁祸首。

犹记得当初《概率论》这门课差点挂科,通过B站宋浩老师的课才好险拿到一个A。但是,我从宋浩那学到了什么?没学到什么,还是应试学习,完全是会做题,但是不知道为什么的状态。

犹记得当时到处搜索,到处问老师,为什么矩阵要这么乘?为什么转置?为什么逆?有什么意义?这个公式为什么对?这些问题,在网络上对于我真的是无解的。

就拿我最伤脑筋的一件事来说,“这个公式为什么对?”

老师也好,教科书也好,博客也好,都是一如既往地用公式去证明。打个比方,为什么ABC=A(BC);或者为什么AB≠BA? 绝大部分人会用a,b,c等变量模拟一个非常复杂繁琐无趣恶心的过程求证,然而这个结果必然是正确的,要不然不会进入教科书,那么在列这种无聊式子求证的过程中,你有什么收获?你没有收获,你花了大量时间做了一些小学生都会算的计算,同时你还是不明白为什么这个公理正确,虽然你看着演草纸上清楚地算式写着“这个定理是正确的”。

所以,解决这个问题的根源就在于空间直觉,也是这两天让我醍醐灌顶,高潮无数次的东西。

在空间中,AB≠BA,是因为AB在空间中算两种扭曲,扭曲的顺序会决定扭曲的结果,因此AB的顺序很重要。好了,这就解释了为什么这个定理成立,因为它是符合直觉的,所以接受起来非常舒服,这才是“数学之美”,这是你应该理解的过程。理解之后,你可以将空间几何转换为代数计算求证,这时候你再罗列之前计算的无聊的繁琐式子,就有些意义了。很明显,我们并没有“理解”的过程,老师教的,网上大部分内容教的,都仅仅是“求证”的过程。

因此我觉得,想学好数学的,不管是高中生还是大学生,特别是数学的初学者,一定要去看一看3blue1blown的视频,空间直觉在数学理解上的重要性我认为远远大于其它的技能。

倒也不是批判学校,因为形成定理写在教科书的东西都是尽可能普适的内容,而普适就意味着抽象,这其实是严谨的一种体现。但是我认为在学习上,我们不应该遵循这种严谨,这种严谨应该体现在应用上,在学习上我们必须要学会培养“直觉”,这有助于我们更好地理解数学,感受数学的魅力,尽管这种直觉大多数不能普适(比如我们只能想象出2D、3D的空间,更高维度地空间只能类比),但是它帮我们更好地理解了数学的本质,能让我们看懂复杂公式背后最简单的套路,这时候你就会从被复杂公式挡住的“门外汉”变成使用复杂公式为难别人的“讨厌的数学家”。

 

3blue1blown链接如下:https://space.bilibili.com/88461692/channel/seriesdetail?sid=1528927

感谢这位博主,让我找回了当初热爱数学的感觉。

 

附:最近两日高潮瞬间(关于体积比、高中的一些法向量的内容我还没有完全吸收,就不阐述了)


视频很简短,有些东西并没有完全看明白,先阐述一下我理解的东西:

1. 所谓的矩阵,其实就是把空间进行了扭曲。

2. 向量空间的一组基其实就是张成该空间的一个线性无关的向量集合。

3. 所谓的线性相关,就是对于所有的a和b,u恒等于av+bw,即多出来的向量未对空间做任何拓展(u始终在vw张成的空间内),反之,如果u不等于av+bw 了,那么就说明每个向量都是对其张成的空间的拓展。

4. 线性变换在空间中遵循两点:①直线仍然是直线;②原点仍然在原点,且网格线始终保持平行等距分布(因此变换前后,线性组合的结果也就不改变)。

5. 矩阵向量乘法的一个视角:对于变换后的两个基向量,可以组合在一起,称他为“矩阵”,但是可以看做它是对原向量的一种扭曲,使得原向量(A)变成了向量(B)。

 

6. 若二维空间中的两个基经过变换后线性相关,则这个变换将二维空间挤压成了一条直线(后续理解的一个基础理解)。

7. 矩阵相乘的几何意义:即N个线性变换相继作用在同一个空间,可以认为把同一个空间扭曲了N次,在这里也能解释为什么AB并不等于BA,假设A是一种旋转(一般围绕O点旋转),B是一种剪切(Shear,保持一个基不变,另一个基改变【一般情况下方向要发生变化】),在这里我们就可以直观的感受出,先旋转和先剪切,两种顺序的结果是不一样的。

8. 行列式:它的值是线性变换缩放空间的比例(这一点可以通过代数方法证明),因此扭曲空间前后的面积就可以通过行列式的值这一比例而产生等量关系。因此也就很好解释行列式为零为负的意义。行列式等于0,代表空间缩放了无穷小倍,在几何空间中就是降维的表现;而行列式为负数,则代表空间的定向发生了变化,比如以前x轴y轴是顺时针关系,现在变成了逆时针,但是它的值仍然代表空间的缩放比例。(这种缩放比例在2D空间表现为面积比,3D空间表现为体积比。)

9. 逆矩阵:正如矩阵在空间中的意义是一种变换一样,逆矩阵也就是原变换的反变换(复原),因此我们才说一个矩阵乘以它的逆等于I(对角元素为1的对角矩阵)。

10. 为什么A的行列式等于0的时候A没有逆矩阵?

答:正如前面提到的,逆矩阵是一种对原矩阵产生的空间变换的复原,而|A|=0则代表A将空间进行了降维(point 8已经指出),举个例子,如果二维空间经过一个行列式为0的矩阵变换,被降维,被压缩成了一条直线,很明显我们无法对其进行解压。换句话说,我们很明显无法对一维空间进行二维展开,因为任何低维度都无法存储高维度的信息,因此这样的逆变换并不存在。这一点在代数里表现就是行列式等于0的矩阵没有逆矩阵。

11. 秩:空间变幻后的维数(列空间的维数)。例如,把二维空间拉成一维空间时,这个矩阵的秩为1。

12. 公理:秩 ≤ 列数。 列数即原维度,我们不可能对空间进行高维展开,因此只能要么保证维度不变(满秩),要么将空间拉扯成更低维度的空间(秩变小了,这时候也就意味着一定有一部分向量变成了0向量)。

13. 非方阵:也是一种变换。一个2x3的方阵代表原始为3维,变换后用两个坐标表示,那它一定落在二维空间(降维)。因此可以说,比较宽的矩阵能对空间降维,反之,瘦高的矩阵能对空间进行升维。

14. 向量之间的点乘也是空间扭曲的一种现象。

 

 15. 1x2的矩阵与2维向量在点乘结果上相同,那是因为在空间上他们是相关的。

 如图,1X2的矩阵是对二维空间的降维的线性变换,那它一定会与某个向量相关。利用对偶性,可以在空间中证明这个巧合。

 

16. 向量的叉积:v x = 两向量构成四边形的面积;若vw逆时针的方向,则结果为负。

17. 基变换:所谓的基变换,就是使用另一组基去描述这个空间,或者说在变换后的坐标系中进行变换。3Blue1Brown非常生动地用“视角”和“语言”两种方式讲明白了这种变换的应用,这从根本上让我理解了为什么会存在(A逆)MA这种东西,笔记如下:

PS:在这里我假设最初的坐标系为一种语言叫“C++”,而我们要做的变换是在另一组坐标系(在这里我把它称为另一种语言叫“Python”)中发生的变换,当然在这里你也可以用“张三 李四两人的视角”来比喻,都无所谓。

很明显,我们在C++坐标系中做Python坐标系的变换产生的结果是没有意义的,因此我们首先要对这个空间进行扭曲,也就是把C++的基变到Python,但是仍然用C++的坐标表示,可以理解为用C++翻译了Python,假设这个矩阵叫A;随后,我们对翻译成python的空间进行变换M;变换完成之后,再用A的逆变换将python反翻译回C++,这个矩阵便是A的逆矩阵。

这样做的结果就是在我们的视角实现了其他视角的变换。

 

 18. 特征向量v满足Avv 【变换矩阵 x 特征向量 = 特征值 x 特征向量】:特征向量就是空间扭曲前后,角度未发生变化,仅仅被拉伸或压缩的向量;这个压缩的比例值就是特征值。

换句话说,特征向量一直处于它张成的空间中。在三维空间中体现为一个空间旋转的轴。

当特征向量为基向量时,很明显变换矩阵一定是对角矩阵,对角元是他们所属的特征值。(因为特征向量为基向量时,空间很明显只有收缩没有角度的改变)

18. Point17和Point18在应用上最大的一点就是,计算时对于复杂的矩阵乘法或者幂运算,我们可以先将空间扭曲,使特征向量变为基向量,也就是将矩阵转化为对角阵,这样可以大大简化计算,算完之后再用逆矩阵还原回到元空间。(前提:特征向量足够多才行,像剪切这样的变换只有一个特征向量很明显不能采用这种方式简化计算过程。)

19. 也是这个系列最后一个视频,升华整体,将向量推广到了函数。

线性变换保持向量的加法和数乘运算(在理解了前面18个Point之后,很容易理解这一点,在空间上其实仍然是原点不变,直线保持平行等距分布)。

推广到函数:函数的线性其实也是保证函数的加法和数乘,也就是:

 

 20. 求导为什么需要保证原函数是线性的?因为求导本身也是一种线性运算,它满足:

 

 21. 向量其实是一种特殊的函数,函数也属于向量,一个向量可能代表一个N维的空间,一个函数则代表无穷维度,因为每一个点都是一个维度。明白这一点,我们也就可以将函数看作空间中的一种扭曲,即,函数也是矩阵。

22. 求导本身就是一种特殊的矩阵,他的样子是:

 

 我们可以认为对于一个x的线性多项式,x的幂数+1为这个多项式代表的向量,而多项式中不包含的x项认为其系数为0,这样就可以认为x的很高次都是0,这个向量也是一个无穷维度的向量,只不过它的高维度都是0,而和这个无穷大的矩阵做乘法,你会发现,结果就是求导之后的多项式的向量。

除此之外,这个系列视频还有一些我没有理解的内容,以后再继续补充吧……

 

posted @   爱和九九  阅读(634)  评论(2编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示