「图解线性代数」-以动画方式轻松理解线性代数的本质与几何意义

首页 > 教育新闻 > 教育杂谈/2018-02-09 / 加入收藏 / 阅读 [打印]

线性代数是数学中的一个非常重要科目, 需要研究线性空间, 线性变换和线性方程组. 至于应用就太广泛了, 图像处理, 压缩, 信号处理, 统计分析, 机器学习, 网页排序......

刚开始学习线性代数感觉抽象也很正常, 国内很多教材看着都头大. 这里 [遇见数学] 强烈推荐与B站视频《线性代数的本质》和书籍《程序员的数学: 线性代数》来学习. 此外[遇见数学]也编写了一系列动画和短文, 希望借助动画的方式, 加快学习线性代数的朋友能够更加深刻的理解某些较为抽象的概念. 先声明一下, 这个系列并不会讨论相关的计算(事实上复杂计算应该交给计算机), 不过适当练习还请下面一定动手来巩固知识点.

01 向量的概念

现实中工作中, 我们会把几个数值放在一起, 当做一个整体来分析, 这就有了向量(Vector) : 一种有序的数值列表.

为了把向量和点区分开, 惯用的方法是把这对数竖着写, 然后用括号括起来, 比如下面的示例为 2 维向量, 3 维向量和 4 维向量:

「图解线性代数」-以动画方式轻松理解线性代数的本质与几何意义

注: 或者用方括号来表示向量

决定一个向量是它的长度和方向, 我们可以通过坐标系来更好的理解它. 在二维坐标系下用箭头绘制出来, 且箭头的起点位于原点, 终点就是数值分量对应的点. 这样每一个向量就对应唯一对数, 而坐标系中的一对数也唯一对应一个向量.

「图解线性代数」-以动画方式轻松理解线性代数的本质与几何意义

只要向量的大小和方向相同, 即视为相等的向量, 如下图所示在二维平面(Two-dimensional)下, 随便移动一个向量, 所留下轨迹上都是相同的向量:

「图解线性代数」-以动画方式轻松理解线性代数的本质与几何意义

对于三维空间而言, 向量就会有x, y, z三个分量, 我们用 x,y,z 轴来表示出来, 这样每个向量也会与一个有序三元数组(x,y,z)对应:

「图解线性代数」-以动画方式轻松理解线性代数的本质与几何意义

▌向量的加法

向量加法就是把对应项相加:

「图解线性代数」-以动画方式轻松理解线性代数的本质与几何意义

从图形来看我们可以平移第二个向量, 使它的起点与第一个向量的重点重合, 然后画一个向量, 它从第一个向量的起点出发, 指向第二个向量的终点. 这个向量就是它们的和; 或者观察动画按照每个向量的分量进行运动最终效果是一样的: 

「图解线性代数」-以动画方式轻松理解线性代数的本质与几何意义

▌向量的数乘

另一个基础的向量运算就是一个数值(标量Scalar)乘以向量的每个分量, 就是将向量中的每个分量与标量相乘. 如选择数值 2, 把它与一个给定向量相乘, 意味着你把这个向量拉长为原向量的 2 倍:

「图解线性代数」-以动画方式轻松理解线性代数的本质与几何意义

观察下图如果标量为负, 则结果向量反向. 也就是数乘向量其实是对向量的拉伸, 压缩或反向的操作:

「图解线性代数」-以动画方式轻松理解线性代数的本质与几何意义

向量的加法和数乘非常重要, 将会贯穿线性代数, 我们第一次的内容就到此为止, 不过下面再补充几张动图来加深加法的理解:

▌向量加法三角形法则

其实与上面加法示例相同, 不过这里的向量起点并非原点:

「图解线性代数」-以动画方式轻松理解线性代数的本质与几何意义

▌平行四边形法则

「图解线性代数」-以动画方式轻松理解线性代数的本质与几何意义

▌向量的减法

向量的减法其实就是加法的一种特殊情况:

「图解线性代数」-以动画方式轻松理解线性代数的本质与几何意义

02「基底 / 线性组合 / 线性无关(相关)」

▌基底

在二维线性空间中, 只要用两个特殊的向量就可以来用定位(表示)出任意向量:

「图解线性代数」-以动画方式轻松理解线性代数的本质与几何意义

空间中的任何向量都是可以通过缩放这两个向量再相加表示出来. 现在想象, 譬如向量 (3,2) 就是沿着 i 的方向拉伸 3 倍, 再沿着 j 方向 拉伸 2 倍的向量相加结果.

「图解线性代数」-以动画方式轻松理解线性代数的本质与几何意义

这样特殊的向量称之为基(Basis, 或基底), 任何二维向量都可以由这两个向量的线性组合表示出来, 其中 a, b 为标量.

「图解线性代数」-以动画方式轻松理解线性代数的本质与几何意义

观察下面动图显示, 当 a, b 两个标量自由变化, 通过向量加法与向量数乘这两种基础运算, 就能获得所有二维中可能的向量:

「图解线性代数」-以动画方式轻松理解线性代数的本质与几何意义

基底的选取有各种各样的方式, 但不同的选取 可能会有 3 种情况, 观察下面动图中选取 i 和 j 作为基底出现:

  • 也可以线性表示出空间中任意的二维向量;

  • 如果两个向量恰好共线时候, 所产生的向量的终点被限制在一条过原点的直线上;

  • 两个向量都是零向量, 其组合向量是零向量.

「图解线性代数」-以动画方式轻松理解线性代数的本质与几何意义

所有由向量 i 和 j 线性组合而获得所有可能的向量集合, 称之为两个向量张成的空间(Span).

用上面的图形来说明: 对大部分二维向量来说, 两个向量所张成的空间是所有二维向量的集合, 可以称之为基底; 但当共线时, 张成的空间就是一条直线, 不能构成二维线性空间的基底.

▌三维空间的基底

再来看看三维空间中的两个方向不同的向量(蓝色和橘黄色)所张成的空间就是两者所有的线性组合, 其实就张成了一个过原点的平面 .

「图解线性代数」-以动画方式轻松理解线性代数的本质与几何意义

如果在加上第三个向量, 那么线性组合为下面的形式:

「图解线性代数」-以动画方式轻松理解线性代数的本质与几何意义

对三个基底向量分别进行缩放, 然后把结果相加, 而这三个向量所有可能的线性组合构成了他们张成的空间:

「图解线性代数」-以动画方式轻松理解线性代数的本质与几何意义

▌线性相关

考虑 三维中第三个向量已经落在前两个向量所张成的平面之中, 那么就可以被这两个向量线性表示; 或者二维中两个向量共线, 那么可以由另一个线性表示出来. 现在观察二维两个向量共线的情况:

「图解线性代数」-以动画方式轻松理解线性代数的本质与几何意义

这种情况称之为线性相关(Linearly Dependent), 也就是说存在有向量对张成空间而言上多余的, 即便删除掉也不会对张成的空间有任何影响.

反之称为线性无关, 也就是没有任何向量可以由其他向量经过线性组合表示出来, 每个向量对所张成的空间都做出了"贡献".

03 「线性变换/矩阵及乘法」

线性变换是线性空间中的运动, 而矩阵就是用来描述这种变换的工具. 这样说还是没有直观印象, 所以还是直接看图解的动画吧.

矩阵不仅仅只是数值的表:

「图解线性代数」-以动画方式轻松理解线性代数的本质与几何意义

其实表示了在该矩阵的作用下, 线性空间是怎样的变化, 观察下图二维平面中水平和垂直方向的伸缩过程:

「图解线性代数」-以动画方式轻松理解线性代数的本质与几何意义

从上面动画中可以观察到:

  • 垂直方向并没有发生任何变换(A 的第二列没有变化);

  • 水平方向伸展了 2 倍;

  • 浅红色方格在变换后面积变成了原来的 2 倍,这里其实就是行列式的意义 - 面积的扩张倍率 Det(A)=2

再看到更多矩阵变换之前, 先停下来看看下面静态图片的进一步解释:

「图解线性代数」-以动画方式轻松理解线性代数的本质与几何意义

变换前矩阵的基底向量 i (1,0) 移动到了 (2,0) 的位置, 而 j 基底向量 (0,1) 还是 (0,1) 没发生任何变换(移动) - 也就是基底的变化:

「图解线性代数」-以动画方式轻松理解线性代数的本质与几何意义

一旦明白了基底的变化, 那么整个线性变换也就清楚了 - 因为所有向量的变化都可以由改变后的基向量线性表出. 观察下面红色向量(1, 1.5) 和 绿色向量(-1, -3) 变换后落脚的位置: