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

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

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

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

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

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

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

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

下面是变换前的样子,

下面是变换后的样子。

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

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

下面是变换前的网格。

下面是变换后的网格。

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

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

变换有时非常地复杂。

例如,下面的几个例子:

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

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

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

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

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

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

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

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

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

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

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

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

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

这一计算过程,我们可以用矩阵乘法来表达。将向量[ x  y ] [xy]  记作x⃗ ,将整个矩阵记作 A,将线性变换后的向量记作,整个等式是不是变成了大家熟悉的

Ax⃗ =b⃗你可以把它看成是矩阵和向量相乘,也可以把它看成是一个线性方程组,现在你还可以把它看成是一个线性变换。多么奇妙的一件事啊!

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

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

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

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

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

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

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

原文链接:http://www.ipaomi.com/2017/11/24/线性代数的本质与几何意义-03-矩阵与线性变换-3blue1brown-咪/

线性代数的本质与几何意义 03. 矩阵与线性变换 (3blue1brown 咪博士 图文注解版)的更多相关文章

  1. 线性代数的本质与几何意义 02. 线性组合、张成的空间、基(3blue1brown 咪博士 图文注解版)

    1. 线性组合 接下来我们要换一个角度来看向量.以二维平面直角坐标系为例,i, j 分别是沿 2 个坐标轴方向的单位向量.那么坐标平面上的其他向量,例如 [ 3  -2 ] [3−与 i, j 是什么 ...

  2. 线性代数的本质与几何意义 01. 向量是什么?(3blue1brown 咪博士 图文注解版)

    向量是线性代数最基础.最基本的概念之一,要深入理解线性代数的本质,首先就要搞清楚向量到底是什么? 向量之所以让人迷糊,是因为我们在物理.数学,以及计算机等许多地方都见过它,但又没有彻底弄懂,以至于似是 ...

  3. 线性代数的28法则:作为程序员掌握这些API就够用了……

    目录 1. 向量 & 矩阵 1.1. 问: np.ndarray 与 np.matrix 的区别 1.2. 向量空间 2. 算术运算 2.1. 为什么线性代数定义的乘积运算不按照加法的规则(按 ...

  4. 3D数学 ---- 矩阵和线性变换[转载]

    http://blog.sina.com.cn/s/blog_536e0eaa0100jn7c.html 一般来说,方阵能描述任意线性变换.线性变换保留了直线和平行线,但原点没有移动.线性变换保留直线 ...

  5. UPX3.03+UpolyX.5 Shell v1.0 汉化绿色版

    软件名称:UPX3.03+UpolyX.5 Shell v1.0 汉化绿色版软件类别:汉化软件运行环境:Windows软件语言:简体中文授权方式:免费版软件大小:635 KB软件等级:整理时间:201 ...

  6. 线性代数的视角理解LSR(least square regression)的参数评估算法本质

    https://medium.com/@andrew.chamberlain/the-linear-algebra-view-of-least-squares-regression-f67044b7f ...

  7. 2018 焦作网络赛 L Poor God Water ( AC自动机构造矩阵、BM求线性递推、手动构造矩阵、矩阵快速幂 )

    题目链接 题意 : 实际上可以转化一下题意 要求求出用三个不同元素的字符集例如 { 'A' .'B' .'C' } 构造出长度为 n 且不包含 AAA.BBB CCC.ACB BCA.CAC CBC ...

  8. Spark Mllib里的分布式矩阵(行矩阵、带有行索引的行矩阵、坐标矩阵和块矩阵概念、构成)(图文详解)

    不多说,直接上干货! Distributed  matrix : 分布式矩阵 一般能采用分布式矩阵,说明这数据存储下来,量还是有一定的.在Spark Mllib里,提供了四种分布式矩阵存储形式,均由支 ...

  9. 【机器学习速成宝典】模型篇03逻辑斯谛回归【Logistic回归】(Python版)

    目录 一元线性回归.多元线性回归.Logistic回归.广义线性回归.非线性回归的关系 什么是极大似然估计 逻辑斯谛回归(Logistic回归) 多类分类Logistic回归 Python代码(skl ...

随机推荐

  1. Python基础(2)——列表、字典、数据运算

    1.列表 #创建列表 name_list = ['alex', 'seven', 'eric'] #或 name_list = list(['alex', 'seven', 'eric']) #访问列 ...

  2. Android开发中代码下面出现波浪线问题

    在Android Studio中写代码时,经常会在一个英文单词的下面出现波浪线,这是因为系统检测到你的这个英文单词不符合规范,如下所示: 解决办法:选中这个单词,点击鼠标右键,点击:Spelling ...

  3. curl发送json格式数据

    php的curl方法详细的见官方手册. curl_setopt用法:  http://www.php.net/manual/en/function.curl-setopt.php <?php $ ...

  4. Maven-SSM项目pom.xml配置以及springmvc配置以及mybatis配置及web.xml配置

    一.Maven本地仓库的pom.xml配置 (全部是mysql数据库) <project xmlns="http://maven.apache.org/POM/4.0.0" ...

  5. asp.net网站,在没有项目源码情况下的扩展

    如果在没有源码的情况下,要扩展asp.net网站,可以自己新增一个类库项目,在里面添加需要扩展的类,代码如下: using System; using System.Collections.Gener ...

  6. Ionic App ActionSheet布局问题

    使用 $ionicActionSheet的时候界面不像Ihpnoe手机那样显示的整齐,但是在电脑浏览器里面却是好的,原因还是Ionic自带css的问题,网上的答案是ionic.min.css/ioni ...

  7. [Oracle][Metadata]如何查找与某一个功能相关的数据字典名

    当Oracel的一个新功能出来的时候,我们可能不知道所有与此功能关联的数据字典名称,那么如何才能得到这些 meta data 的 meta data 呢? 可以通过 dicitonary 来查看: 例 ...

  8. CentOS 7 安装Redis

    Linux安装Redis 一.下载并安装 $ wget http://download.redis.io/releases/redis-2.8.17.tar.gz $ tar xzf redis-2. ...

  9. 个人作业 Last

    对M1/M2阶段的总结 M1阶段的总结反思见我以前的博客,我以前曾经写过.现附上链接.http://www.cnblogs.com/jirufeng/p/4990245.html M2阶段主要是对我们 ...

  10. <<浪潮之巅>>阅读笔记三

    纵看世界,横看国内.我们国内也有很多很优秀的企业正在走向或者已经处于浪潮之巅.阿里巴巴.腾讯和百度这三巨头应该是我们计算机行业的龙头.但是 不得不说,在创新方面我们做的并不多,这是值得每一个从事计算机 ...