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

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

例如,你输入一个向量[ 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. 上传文件异常 MultipartException

    参考自  https://blog.csdn.net/u010429286/article/details/54381705 现象 上传文件报错 org.springframework.web.mul ...

  2. oracle(sql)基础篇系列(五)——PLSQL、游标、存储过程、触发器

    PL/SQL PL/SQL 简介 每一种数据库都有这样的一种语言,PL/SQL 是在Oracle里面的一种编程语言,在Oracle内部使用的编程语言.我们知道SQL语言是没有分支和循环的,而PL语言是 ...

  3. 关于Http 传输二维json

    传输一维的好说 public static String doPost(String url) { String result = new String(); OutputStream out = n ...

  4. eclipse打断点的调试

    对于程序员来说,最重要的技能之一其实是在发现问题的时候,定位问题,然后才能解决问题. 发现问题的能力十分的重要.而debug的水平就是基础. 打断点之后,操作相应的步骤,然后eclipse会跳转到相应 ...

  5. java使用POI读取excel报表

    留此作为记录 package com.demo; import java.io.FileInputStream; import java.util.Iterator; import org.apach ...

  6. UVA10559&POJ1390 Blocks 区间DP

    题目传送门:http://poj.org/problem?id=1390 题意:给出一个长为$N$的串,可以每次消除颜色相同的一段并获得其长度平方的分数,求最大分数.数据组数$\leq 15$,$N ...

  7. C# 多线程 Parallel.For 和 For 谁的效率高?那么 Parallel.ForEach 和 ForEach 呢?

    还是那句话:十年河东,十年河西,莫欺少年穷. 今天和大家探讨一个问题:Parallel.For 和 For 谁的效率高呢? 从CPU使用方面而言,Parallel.For 属于多线程范畴,可以开辟多个 ...

  8. 一次永久解决cmd窗口汉字显示乱码

    对于编译出的程序,在 cmd 和 power shell 运行时都不能正确显示汉字. 网上查,可以再命令窗口修改: 1.打开CMD.exe命令行窗口 2.通过 chcp命令改变代码页,UTF-8的代码 ...

  9. Python爬虫利器二之Beautiful Soup的用法

    上一节我们介绍了正则表达式,它的内容其实还是蛮多的,如果一个正则匹配稍有差池,那可能程序就处在永久的循环之中,而且有的小伙伴们也对写正则表达式的写法用得不熟练,没关系,我们还有一个更强大的工具,叫Be ...

  10. CentOS 7.2:Failed to start IPv4 firewall with iptables

    问题 系统是centos7.2,且已经安装了iptables服务,但是在执行启动命令后,却报了iptables服务无法正常启动的错误. 启动命令如下: systemctl start iptables ...