向量是线性代数最基础、最基本的概念之一,要深入理解线性代数的本质,首先就要搞清楚向量到底是什么?

向量之所以让人迷糊,是因为我们在物理、数学,以及计算机等许多地方都见过它,但又没有彻底弄懂,以至于似是而非。

1. 物理学中的向量

物理学中的向量:空间中的箭头,由长度和它所指的方向决定

而且,在物理学中,你可以在空间中自由地移动向量,只要保持向量的长度和所指的方向不变,向量便保持不变,即移动前后的向量是同一个向量!

2. 计算机专业中的向量

计算机中向量是有序的列表

例如我们要对房价建模,

我们可以将房屋面积和房价排在一起形成向量,假定向量中的第 1 个元素用来表示房屋面积,第 2 个元素用来表示价格。显然,这是一个有序的列表,不能随意交换向量中元素的位置。

因此,站在计算机专业的角度来看,向量不过是列表或数组的别称罢了。

3. 数学中的向量

数学中的向量综合了不同专业对向量的理解。抽象意义上,数学中的向量可以是任意的东西,只要可以对它们进行加法和数乘运算即可。这也意味着,加法和数乘是向量最底层的运算。一切复杂和抽象的东西归根结底都源自于这 2 种运算。

和物理学中的向量一样,线性代数中的向量也是有大小和方向的(物理学观点),但必须特别注意的是:线性代数中的向量不能像物理学中的向量那样随意挪动。线性代数中的向量全部都是起点固定在原点的向量!

3.1 坐标

以大家最熟悉的二维平面直角坐标系为例,线性代数中,向量的坐标由一对数字构成。这一对数字指示了如何从向量的起点(即坐标原点)出发到达向量的终点。第 1 个数字 -2 告诉我们从原点出发沿 x 轴负方向移动 2 个单位的距离,第 2 个数字 3 告诉我们从原点出发沿 y 轴正方向移动 3 个单位的距离,然后我们就能到达向量的终点了。

显然,线性代数中的向量也是一个有序的列表(计算机观点)。例如,在上面的例子中,第 1 个数字表示从向量起点(原点)沿 x 轴移动的距离,第 2 个数字表示从向量起点(原点)沿 y 轴移动的距离,这 2 个数字当然是不能随意交换位置的。

为了将向量与坐标区分开来,我们通常将向量竖着写,而将坐标横着写。但无论如何,向量和坐标是有着一一对应的关系的。

3.2 向量加法

线性代数中向量的加法运算和物理学中向量的加法运算是一样的。

例如,要计算 v + w,

我们平移其中的任意一个向量(例如 w),将 w 的起点与 v 的终点重合,则平移后 w 的终点便是 v + w 的终点,而 v+ w 的起点也是 v 的起点(即原点)。前面,咪博士提到线性代数中的向量,都是起点固定在原点,不能随意挪动的。但是,在这里,我们却将向量 w 平移了。这确实是一个例外,而且可能也是线性代数中唯一允许向量离开原点的情形了。

但是,咪博士这里要讲的重点不是向量如何做加法运算,而是为什么向量的加法运算要定义成这样?

从刚才对坐标的解释,我们可以很自然地将向量看成是对某种运动的描述(从原点出发)。向量 v 和 w 分别描述了不同的运动, 向量加法想表达的意思是:v + w 描述的运动等价于 v 和 w 这 2 种运动综合的结果。即,v + w 描述的运动相当于先执行 v 描述的运动,再执行 w 描述的运动的结果。当然,你也可以先执行 w 的运动,再执行 v 的运动。最终结果都是一样的,无论向执行 v,还是先执行 w,最终都等于 v+ w 的运动。

这样理解起来比较抽象,咪博士还是为大家举一个具体的例子吧。

2]

假定我们有 2 个向量 [1 2 ]2]和 [ 3 -1 ] [3−1]。现在我们要对它们进行加法运算。

按照向量加法运算的计算方法,我们平移向量 [3 -1 ] [3−1] ,让它的起点与向量 [1 2 ] [12] 的终点重合。

如果将向量看看成是某种形式的运动,那么 2 个向量相加就是相继执行向量对应的运动。最终向量相加的结果所表示的运动,就相当于,先沿 x 轴正方向移动 1 + 3 个单位,再沿 y 轴正方向移动 2 + (-1) 个单位。仔细想想,相加后的向量是不是恰好就是从原点出发,终点落在移动后的那个向量的终点上?

3.3 向量数乘

向量的数乘运算比加法运算要容易得多。向量的数乘运算就是对向量进行缩放,等于将向量中的各个元素(分量)分别进行缩放。现在,如果从向量坐标和运动的观点出发,是不是很容易理解了呢?

总之,要深入理解线性代数的本质,我们就需要学会灵活地在向量的不同解释之间相互转换。

原文链接:http://www.ipaomi.com/2017/11/17/线性代数的本质与几何意义-01-向量是什么?3blue1brown-咪博/

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

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

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

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

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

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

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

  4. spring mvc注解版01

    spring mvc是基于servlet实现的在spring mvc xml版中已经说过了,注解版相较于xml版更加简洁灵活. web项目的jar包: commons-logging-1.1.3.ja ...

  5. 【01】《html5权威指南》(扫描版)(全)

    [01]<html5权威指南>(扫描版)(全) []魔芋:无高清电子书.   只看第五部分,高级功能. 作者:(美)弗里曼 著,谢延晟,牛化成,刘美英 译 [美]adam freeman ...

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

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

  7. DX12龙书 01 - 向量在几何学和数学中的表示以及运算定义

    0x00 向量 向量 ( vector ) 是一种兼具大小 ( magnitude ) 和方向的量. 0x01 几何表示 几何方法中用一条有向线段来表示一个向量,其中,线段长度代表向量的模,箭头的指向 ...

  8. IT架构的本质--阅读笔记01

    万物都有其本质,也只有了解了事物的本质之后,才不至于出现在事物稍作改变时就难以应对的情况,作为软件工程专业的学生,我们应该对IT架构的本质有一定的了解.“老僧三十年前未参禅时,见山是山,见水是水.及至 ...

  9. Spark Mllib里的向量标签概念、构成(图文详解)

    不多说,直接上干货! Labeled point: 向量标签 向量标签用于对Spark Mllib中机器学习算法的不同值做标记. 例如分类问题中,可以将不同的数据集分成若干份,以整数0.1.2,... ...

随机推荐

  1. pstart

    下面是我初步的排查过程: [1] [root@71 ~]# tcpdump host 192.168.0.71|grep "IP 115.*"|more tcpdump: verb ...

  2. Tensorflow[LSTM]

    0.背景 通过对<tensorflow machine learning cookbook>第9章第3节"implementing_lstm"进行阅读,发现如下形式可以 ...

  3. SQL Server数据库(时间戳timestamp)类型 (转载)

    timestamp介绍 公开数据库中自动生成的唯一二进制数字的数据类型. timestamp 通常用作给表行加版本戳的机制. 存储大小为 8 个字节. 不可为空的 timestamp 列在语义上等价于 ...

  4. python_第一章

    从今天开始,正式开始学习python书籍:python 编程:从入门到实践. 感兴趣的读者可以去网上搜索这本书,适合读者入门,读下来,不会有任何 晦涩难懂的知识. 1.排序: 正排:sort()    ...

  5. BZOJ2125 最短路 圆方树、倍增

    传送门 对仙人掌建立圆方树,然后对边定权 对于圆点和圆点之间的边,是原来仙人掌上的桥,边权保持不变 对于圆点和方点之间的边,将圆方树看做以一个圆点为根的有根树之后,一个方点的父亲一定是一个圆点.对于这 ...

  6. Vue-条件渲染v-if与v-show

    一.共同点 根据数据值来判断是否显示DOM元素 二.区别 代码: <!DOCTYPE html> <html lang="en"> <head> ...

  7. BootStrap学习(5)_多媒体对象&列表组

    一.多媒体对象 这些抽象的对象样式用于创建各种类型的组件(比如:博客评论),我们可以在组件中使用图文混排,图像可以左对齐或者右对齐.媒体对象可以用更少的代码来实现媒体对象与文字的混排. .media: ...

  8. Qt实现软件自动更新的一种简单方法

    前言 最近在学习Qt开发上位机,想实现一个检查更新的功能,网上搜索了一大圈,发现实现过程都很复杂,关键是代码看不懂,所以就自己开发一种简单的方式来实现.实现效果如下: 点击"检查更新&quo ...

  9. Bash : 冒泡排序

    冒泡排序是非常基础的排序算法,本文我们看看在 Bash 脚本中如何写冒泡排序.本文的演示环境为 ubuntu 16.04. 冒泡排序的简要描述如下: 通过连续的比较对数组中的元素进行排序 比较两个相邻 ...

  10. Webpack 2 视频教程 001 - Webpack 简介

    这是我免费发布的高质量超清「Webpack 2 视频教程」. Webpack 作为目前前端开发必备的框架,Webpack 发布了 2.0 版本,此视频就是基于 2.0 的版本讲解的. 这个基本就是目前 ...