矩阵与线性变换

首先,恭喜你读到了咪博士的这篇文章。本文可以说是该系列最重要、最核心的文章。你对线性代数的一切困惑,根源就在于没有真正理解矩阵到底是什么。读完咪博士的这篇文章,你一定会有一种醍醐灌顶、豁然开朗的感觉!

咱们先来说说啥叫变换。本质上,变换就是函数。

例如,你输入一个向量 [57]

经过某个变换(即函数)的作用之后,输出另一个向量 [23]

既然,变换本质上就是函数,那为啥还要多搞出这样一个术语?

其实,“变换”这个词暗示了我们能够以某种方式可视化 输入—-输出 关系。它暗示我们要从向量运动的角度去理解。即,变换让向量从一个地方(对应输入向量),运动到了另一个地方(对应输出向量)。

我们说将变换作用于某个空间,意思是将该变换应用于空间中的每一个向量。

空间中的向量可以用一些规则分布的点来表示。

下面是变换前的样子,

下面是变换后的样子。

变换后,空间中的点(即向量)运动到了其他的位置上。

二维空间变换中,等间距的平行网格可以更好地展示变换的性质。

下面是变换前的网格。

下面是变换后的网格。

显然,变换让空间发生了扭曲。

为了方便观察,我们还可以把变换前后的网格都画在同一张图上。

变换有时非常地复杂。

例如,下面的几个例子:

所幸的是,我们在线性代数中讨论的线性变换,没有那么复杂,也更容易理解。

那么线性变换是什么意思呢?如果一个变换同时具有以下 2 条性质,则它是一个线性变换。

  • 变换前后,所有的直线仍然是直线
  • 变换前后,原点保持不变

换句话说,线性变换是原点不变,并使网络线保持平行且等距分布的变换。

那么,我们要如何描述一个线性变换呢?

以平面直接坐标系为例,假定我们有一个向量 v⃗ =[12]。我们可以将它看成是 2 个基向量 i, j 的线性组合。线性组合的系数分别对应向量的 2 个分量。

在某个线性变换的作用下,i, j 以及 v 都运动到了新的位置。

线性变换前后网络线保持平行且等距分布,这一性质有一个重要的推论:线性变换后的 v 是变换后的 i 和 j 的线性组合,并且线性组合的系数和变换前一样(仍然是 -1 和 2)

即,线性变换前

i⃗ =[10],j⃗ =[01],则

v⃗ =1[10]+2[01]=[12]

假定,经过某个线性变换后之后

i⃗ =[12],j⃗ =[30],则

v⃗ =1[12]+2[30]=[52]

事实上,我们只要知道线性变换之后,i, j 的位置(坐标),就可以计算出任意一个向量经过同样的线性变换之后的位置(坐标)。

这意味着,对于一个线性变换,我们只需要跟踪基向量在变换前后的变化,就可以掌握整个空间(即全部向量)的变化。我们将线性变换后的基向量坐标按列组合起来,可以拼接成一个矩阵。线性变换的全部信息便都包含在这个矩阵当中了。

给定一个 2×2 的矩阵 [acbd] 以及某个向量 [xy]

矩阵对应着某个线性变换,它的 2 列 [ac] 和 [bd]  分别表示 2 个基向量 [10]  和 [01] 经过线性变换之后的坐标。

那么,向量 [xy] 经过该线性变换之后,其新坐标的计算方法如下:

这一计算过程,我们可以用矩阵乘法来表达。将向量 [xy]  记作 x⃗ ,将整个矩阵记作 A,将线性变换后的向量记作 b⃗ ,整个等式是不是变成了大家熟悉的 Ax⃗ =b⃗ 。你可以把它看成是矩阵和向量相乘,也可以把它看成是一个线性方程组,现在你还可以把它看成是一个线性变换。多么奇妙的一件事啊!

一旦你理解的本节教程的精髓,你便可以秒懂原来看起来十分费解的线性变换。

例如,逆时针旋转 90 度对应的线性变换矩阵是什么呢?

记住,对于线性变换,我们只需要跟踪原来的基向量在线性变换后的位置(坐标),然后把它们按列拼成一个矩阵,这个矩阵就是相应的线性变换矩阵。

在这个例子中,原来的 2 个基向量 [10]  和 [01] ,逆时针旋转90 度之后,变成了 [01]  和 [10] ,把它们拼成 一个矩阵[0110] ,这便是逆时针旋转 90 度对应的线性变换矩阵。要计算任意向量旋转 90 度之后的坐标,只需要用该矩阵左乘原来的向量就可以了。

下面是一个剪切变换,你能一眼就看出它在做什么吗?

我们再来看下面这个线性变换,其线性变换矩阵的 2 个列向量是线性相关的。这个线性变换会将整个二维空间压缩到一条直线上。通过这个例子,你是不是对线性相关、线性无关有了更直观的、更深刻的认识了呢?

总之,线性变换是操纵空间的一种手段。线性变换保持原点不动,网格线平行且等距分布。只需要几个数字(变换后基向量的坐标)就可以清晰地描述一个线性变换。将变换后基向量的坐标按列拼接成一个矩阵。这个矩阵为我们提供了一种描述线性变换的语言。线性变换作用于一个向量,对应于用线性变换矩阵左乘该向量。

以后,当你再看到矩阵的时候,你都可以将它解读为对空间的某种线性变换,这是深刻理解矩阵乘法、行列式、基变换,以及特征值等概念的重要基础。掌握了本节(从线性变换的角度)看待矩阵的方式,线性代数中,原本极其抽象的概念,都将瞬间变得清晰起来。线性代数中各种看似莫名其妙的运算,以及各种神出鬼没的概念,一下子都变得可爱起来了。

posted @ 2017-12-30 15:20  Hongwolf  阅读(10190)  评论(2编辑  收藏  举报