少于 1 分钟阅读

程序员眼里的线性代数

  • 看到第四课中的矩阵乘法,又去学了一星期的线性代数,要补的东西好多
  • 主要精力集中在两个课程中:
  1. 麻省理工Gibert Strang教授讲的18.06:网易公开课这里有中文字幕
  2. 3Blue1Brown的线性代数的本质系列:Bilibili这里是中文官方账号的合集

总结一下从程序员角度理解的体会:

抽象

  • 线性代数是一个接口(Interface)
  • 任何满足向量这个接口的实现类都可以使用线性代数工具,当前已知的实现类有:空间几何、GPU使用的Tensor张量、函数、方程组等。
  • 线性代数的发展方式和软件开发抽象思路一致
    1. 先在解方程这个方向开发了一套系统,并不断添加Feature
    1. 经过一段时间的迭代,发现解方程空间几何这里有一定的重复性,可以使用解方程的思路处理空间几何
    1. 于是抽取出一些Interface,数学上叫做公理,只要满足这些公理的对象,都可以使用线性代数工具,向前兼容了解方程这个Feature,同时抽象化了具体实现
    1. 在GPU制作时,特意兼容了向量这个接口,使得线性代数可以在GPU中被使用

从空间几何这个实现类入手

  • 从3Blue1Brown的系列视频中,从空间几何这个人人都可以接触到的实现类入手,让大家知道线性代数的操作在空间几何内到底代表了什么
线性代数操作 空间几何实现
向量(x,y) 基向量i-hat, j-hat的组合 (i-hat * x, j-hat * y)
向量加 两向量首尾相连,终点就是结果
矩阵-解释1 对向量进行的一个变换
矩阵-解释2 对基向量的重新选择
线性组合 向量i,j的乘以常数后的组合
基向量 作为参考系的向量
行列式 向量张成的平行四边形的面积(2维)或平行六面体的体积(3维)或更高维度维度体积
特征向量 在某个矩阵变换中,仅沿原来的线扩大或缩小的向量
特征值 在某个矩阵变换中,仅沿原来的线扩大或缩小的向量,这个向量扩大或缩小的倍数