线性代数的本质——几何角度理解

B站网课来自 3Blue1Brown的翻译版,看完醍醐灌顶,强烈推荐:

线性代数的本质

本课程从几何的角度翻译了线代中各种核心的概念及性质,对做题和练习效果有实质性的提高,下面博主来总结一下自己的理解


1.向量的本质

在物理中的理解是一个有起点和终点的方向矢量,而在计算机科学中的理解——更像是某种类似于列表的结构体(只不过这是一种以数字为元素的列表)。

对应在数学的领域,可以理解为一种坐标——分别用列表中的项来对应起点与终点(二维向量)。 

而向量加法的本质,即为对应维度上的线性相消。 而另一种理解为,向量是空间中的某种运动,在不同维度上的线性抵消,如下图——这一性质也可以扩展到n维

2.向量的坐标

首先理解单位向量的概念——i(1,0),j(0,1),由i与j的线性相加可以得到空间中的任一向量~

而向量【-3,2】,可以将两个元素理解为2个标量——即对向量的拉伸与压缩。

基向量,也就是单位向量,即为所谓拉伸与压缩的对象!

两个数型向量的相加,被称为这2个向量的线性组合~

对于线性的一种理解:只允许1个标量变化,其余n-1个维度的坐标固定,所产生的向量集即为一条直线!

3.张成空间

定义:所有可以表示为给定向量线性组合的向量的集合。

  • 对于二维,表示所有二维空间中向量的集合,亦或终点相同的向量的集合
  • 对于三维,表示一个平面或者一个空间

4.线性相关与线性无关

  • 所谓线性相关,即向量组中至少有一个是多余的,即没有对张成空间的形成做出贡献——换句话说,有至少一个向量可由其他向量线性相加获得(线性组合
  • 而所谓线性无关,即每一个向量的存在都会使得张成空间的维度增加

5.矩阵的本质——线性变换

所谓变化,其实就是函数的一种花哨说法~

本质上,向量a是由i和j的一个线性组合,而空间发生变化后a1则变为了同样发生变化的i1与j1与原来保持一致的线性组合

所以,如果将变化后的i1与j1按照列向量合集表示,如下图,即形成了所谓的矩阵

也就是说,在二维空间的线性变换,仅由4个数就可以决定

 此刻若给出一个矩阵和一个已知变量 ,即可得出:对该向量进行目标矩阵的变换后可以得出的新向量!

关于上面的一个理解,不要晕:所谓的5/7,本质上的意味是:a=5i+7j,也就是说,所谓的目标向量,本质也是对i和j的一种变化!!!而为什么有的变化就是向量,而有的变化就是矩阵呢?那是因为,所谓的5/7,他对应的均为当前方向上的变化——即翻倍延长,而矩阵中,第一行的变化,均为在i方向上的变化,而第二行则全部对应j方向的变化——也就是说,矩阵变化后的i1和j1,实际上是在两个方向上同时变化!!!因此不难理解矩阵乘法的底层逻辑:这里第一行乘以第一列的意义,实际上是原来对应的5i,在i变成i1后所需要对应的变化——即i方向变3,j方向变2!第二行也是同理~此刻即使扩展到n维,这一原理仍成立!

 再进行一个更炸裂的理解:所谓m行n列的矩阵,m即为当前基向量的个数——即坐标系的维度,而所谓的mn列,即为对原始的基向量,需要进行几维的线性变换!

因此,我们可以说:矩阵的本质就是一种线性变换!(也就是作用于向量的函数)

6.矩阵的乘法

如果将矩阵理解为一种线性变换,那么矩阵的相乘本质即为连续的线性变换~

注意一个细节——同函数一致,需要向右往左看!

对于相乘后得到的矩阵:第一列即为第一个矩阵进行变换变为i1后,第二个矩阵使他变换为了i2;j2的诞生亦是如此~

至于乘法的规则,再描述一遍:如上的1/1,即为对i的变化,现在需要将i1变化为i2,则需要再对i1进行i和j两个维度上的一次变化! 所以i1的i方向1在i上变0,j上变1;j1的i方向上2而j方向上变0!

非常抽象,需要反复琢磨!

7.三维空间中的线性变换

同二维平面一致,此处仅需要9个数,即可完成三维空间下的线性变换,将这9个数组为三维向量。

此处对3维方阵与向量的乘积做出如下两种理解:

  • 首先,按列看,1~3列可以分别对应为基向量i、j、k的线性变换,而按行看,则代表i、j、k向量在当前所对应的维度上各自的变化量。
  •  另一种解释,如上图,xyz后面的向量,实际意义是经过线性变换后坐标系里的基向量,而此刻把xyz可以理解为一种给定的标量,并作用于当前变换后的基向量

8.行列式

单位正方形:在二维平面内,以i和j两个基向量为边所圈成的正方形

行列式的本质,即为线性变换对原面积改变的比例——行列式的值即为对面积的缩放比例数值

  • 在二维平面里,如果行列式的值为负,本质是在将矩阵翻转~
  • 在三维空间里,行雷士的值即为对应体积的缩放比例~

在三维的情况下,当行列式为0时,即当前的体积被压缩为0,几何角度的理解为:存在共线向量、共面甚至重合的一个点!——这便是所谓线性相关的几何意义。

这也从某种角度解释了——为什么对应的行列式为0的向量组必然线性相关,实质上还是那个理解,存在未对维度变化做出贡献的向量

(可以说,空间压缩的本质是行列式为0)

9.线性方程组

首先要注意——线性方程组存在的意义和向量的乘法非常的类似~

如上是一种非常具有技巧性的理解:方程组可以表示为矩阵与向量的积

其中系数矩阵A本质上就是对于向量的某种函数;而这里的向量是一个未知数,由x/y/z三个未知的数值表示。

上述Ax=v的理解可以有两种:

  • 矩阵代表一种线性变换,在一元函数中可以理解为k、b这样的常数,而xyz组成的向量本质上就是一元函数中的自变量
  • 同理,依旧可以理解为,xyz是对当前经过矩阵A变换后的新的基向量的数值,则这一方程本质上变为了求解标量xyz的过程

 10.逆矩阵

顾名思义,几何意义即为逆向的线性变换

存在的意义为,A-1和A可以相互抵消,形成一个本质上什么都做的变换,这样的变换又被称为恒等变换

单位矩阵E的集合意义在这里就解释得同了:对角线为1的性质,带来了仅对当前向量的基向量所对应维度的变换,且倍数为1。

11.秩

本质为线性变换后的空间维数(国内的课本定义为:非0子式的最高阶数......)

秩为1表示变换后的直线落在一条一维的线上,秩为2表示为二维空间

列空间:所有可能得输出向量所构成的集合——所以秩也可以定义为列空间的维数

满秩:秩数与列数相等

12.非方阵的矩阵

如上图,结合一个具体的例子产生矩阵的数值意义:2列代表着,输入空间有两个基向量,即该向量的张成空间可以理解为是二维的;而3行,又意味着每一个基向量又有3个坐标组成。而这样一个三行两列的句子,意味着空间中的一个平面。

总的来说,矩阵的行数即为当前向量坐标的个数,而列数则是基向量的个数~

因此这里提出一个比较炸裂的理解:为什么不是方阵的矩阵均没有行列式呢?这是因为,方阵与向量的积不会改变向量的维度,而矩阵本身又是一个线性变换,所以可以理解为乘以对应的行列式——即某个倍数;而矩阵乘以一个向量,会改变向量的维度!因此在不同的维度下讨论倍数,便不再具有意义。这里打个比方,有一桶水,所谓的伸缩本质上就是给水桶里添加/减少容量的过程,而如果水洒了一地,维度改变,即不再具有倍数的讨论

13.特征值与特征向量

特征值:衡量特征向量在变换中拉伸或压缩的比例的因子~

特征向量:线性变换中不离开自己张成空间的特殊向量~

(一部分暂不展开更细的讲解,之后有机会更新)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/135902.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mac中IntelliJ IDEA每次打开立刻“意外退出”的解决方法

本文介绍在Mac电脑中,无法打开IntelliJ IDEA软件,出现“意外退出”的报错提示,且重启软件依然出现这一情况的通用解决思路与方法。 最近,不知道怎么回事,点击图标准备打开IntelliJ IDEA软件时,很快就会出现…

SpringBoot实战(二十四)集成 LoadBalancer

目录 一、简介1.定义2.取代 Ribbon3.主要特点与功能4.LoadBalancer 和 OpenFeign 的关系 二、使用场景一:Eureka LoadBalancer服务A:loadbalancer-consumer 消费者1.Maven依赖2.application.yml配置3.RestTemplateConfig.java4.DemoController.java 服务…

计算机专业毕业设计项目推荐07-科研成果管理系统(JavaSpringBoot+Vue+Mysql)

科研成果管理系统(JavaSpringBootVueMysql) **介绍****系统总体开发情况-功能模块****各部分模块实现****最后想说的****联系方式** 介绍 本系列(后期可能博主会统一为专栏)博文献给即将毕业的计算机专业同学们,因为博主自身本科和硕士也是科班出生,所以…

Mybatis学习笔记8 查询返回专题

1.返回实体类 2.返回List<实体类> 3.返回Map 4.返回List<Map> 5.返回Map<String,Map> 6.resultMap结果集映射 7.返回总记录条数 新建模块 依赖 目录结构 1.返回实体类 如果返回多条,用单个实体接收会出异常 2.返回List<实体类> 即使返回一条记…

​bing许少辉乡村振兴战略下传统村落文化旅游设计images

​bing许少辉乡村振兴战略下传统村落文化旅游设计images

PHP8的类与对象的基本操作之成员方法-PHP8知识详解

成员方法是指在类中声明的函数。 在类中可以声明多个函数&#xff0c;所以对象中可以存在多个成员方法。类的成员方法可以通过关键字进行修饰&#xff0c;从而控制成员方法的商用权限。 函数和成员方法唯一的区别就是&#xff0c;函数实现的是某个独立的功能&#xff0c;而成…

【Gradle-8】Gradle插件开发指南

1、前言 Gradle插件开发在Android进阶知识中是占有一定比例的&#xff0c;特别是在性能优化领域&#xff0c;基本都会涉及&#xff0c;而且跟我们日常的编译打包也息息相关&#xff0c;加上有不少招聘要求里也明确要有Gradle插件开发经验&#xff0c;所以即使大部分人的日常开…

Vue3_vite

使用Vue-cli创建 使用vite创建 Composition API 组合API setup 1.Vue3中的一个新的配置项,值为一个函数 2.可以将组件中所用到的数据,方法等配置在setup中. 3.setup函数的两种返回值 3.1若返回一个对象,则对象中的属性,方法,在模板中均可以直接使用. 3.2若返回一个渲染函数…

【数据库系统概论】数据模型

数据模型是什么两类数据模型两步抽象概念模型数据模型 常用的数据模型感谢 &#x1f496; 数据模型是什么 模型是对现实世界中某个对象特征的模拟和抽象。比如飞机模型就体现了飞机的特性&#xff0c;它模拟飞机的起飞、飞行和降落&#xff0c;它抽象了飞机的基本特征——机头…

前端录入音频并上传

目录 纯 js 实现&#xff08;有问题&#xff09;使用插件 recorder-core &#xff08;没问题&#xff09; 纯 js 实现&#xff08;有问题&#xff09; 上传音频文件时 blob 数据中 size 一直是0&#xff0c;导致上传之后音频不可播放&#xff08;本地录制后本地是可以播放的&am…

【基于MBD开发模式的matlab持续集成(一)】

基于MBD开发模式的matlab持续集成 引言 或许是感受到行业内卷的愈加激烈&#xff0c;在传统制造和高新技术相结合的新能源领域对软件工程开发的要求也愈加提高&#xff0c;尤其在互联网已经大行 其道的敏捷开发&#xff0c;便顺其自然的被新能源的老板们所看重。 概述 本文…

浅述数据中心供配电系统解决方案及产品选型

安科瑞 华楠 【摘 要】现如今&#xff0c;社会主要领域已从对单个设备的关注转化为对于系统解决方案的关注&#xff0c;数据中心的供应商们也想尽办法去满足所面对的各方面需求。基于此&#xff0c;主要提出了云计算数据中心供配电解决方案&#xff0c;同时还对数据中心供配电…

系统架构设计师(第二版)学习笔记----信息安全系统及信息安全技术

【原文链接】系统架构设计师&#xff08;第二版&#xff09;学习笔记----信息加解密技术 文章目录 一、信息安全系统的组成框架1.1 信息安全系统组成框架1.2 信息安全系统技术内容1.3 常用的基础安全设备1.4 网络安全技术内容1.5 操作系统安全内容1.6 操作系统安全机制1.7 数据…

I Pa?sWorD

2023icpc网络赛第一场 I 题意&#xff1a;题目给出只包含大小写字母&#xff0c;数字以及?的字符串&#xff0c;对于每一个小写字母&#xff0c;这一位字符既有可能是该小写字母&#xff0c;也有可能是该小写字母的对应大写字母&#xff0c;也就是该位的字符有两种可能&#x…

基于Java+SpringBoot+Vue的旧物置换网站设计和实现

基于JavaSpringBootVue的旧物置换网站设计和实现 源码传送入口前言主要技术系统设计功能截图数据库设计代码论文目录订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码传送入口 前言 摘 要 随着时代在一步一步在进步&#xff0c;旧物也成人们的烦恼&#xff0c;…

多线程的学习上篇

座右铭: 天行健&#xff0c;君子以自强不息;地势坤&#xff0c;君子以厚德载物. 引入进程这个概念的目的 引入进程这个概念,最主要的目的,是为了解决“并发编程"这样的问题. 这是因为CPU进入了多核心的时代 要想进一步提高程序的执行速度,就需要充分的利用CPU 的多核资源…

《PostgreSQL中的JSON处理:技巧与应用》

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f405;&#x1f43e;猫头虎建议程序员必备技术栈一览表&#x1f4d6;&#xff1a; &#x1f6e0;️ 全栈技术 Full Stack: &#x1f4da…

为什么qt设置了utf-8 bom 格式后还是有乱码

有乱码 void SingleApplication::_showInstanceRunningDialog() {// 创建一个提示窗口QMessageBox msgBox;msgBox.setIcon(QMessageBox::Information);msgBox.setWindowTitle("应用已运行");msgBox.setText("应用程序已经在运行中。");msgBox.setStandardB…

【深度学习实验】线性模型(二):使用NumPy实现线性模型:梯度下降法

目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 三、实验内容 0. 导入库 1. 初始化参数 2. 线性模型 linear_model 3. 损失函数loss_function 4. 梯度计算函数compute_gradients 5. 梯度下降函数gradient_descent 6. 调用函数 一、实验介绍 使用Nu…