十分钟理解线性代数的本质_十分钟理解线性代数的本质
原标题:十分钟理解线性代数的本质
我在上个月修了数值矩阵运算这门课 (Numerical Matrix Computing),对矩阵的变换和一些性质有了一定的理解。
在这里总结一下自己的研究的一些心得。
在经过了这次的学习之后,我由衷地感慨,我以前学的线性代数是什么鬼呀!
最近由于选修博士的课程《矩阵运算》。所以我重新在网上恶补了一遍《线性代数》的基本概念[1],对这门课有了全新的认识。
现在想想我大学学的线性代数,我真的会感慨,我之前都在学些什么呀!
如果你觉得自己当初线性代数也是学的一团雾水,不妨接着往下看看,绝对让你能够透彻的理解线性代数!
线性代数的本质
先一句话先把最重要的东西说了,什么是线性代数?
线性代数的本质,其实是一种高维空间上的变换。
这句话虽然简单,但这句话具体什么意思呢。别急,我们引入一个很直观的例子来理解这个数学表达。
拿二维空间中的小纸片人为例来说,小人在此:
我对一个小人进行位移,拉伸的一系列线性操作,它可以变成另一个样子:
这就是线性代数要做的一些事情。我对这个小人做的一些操作,就叫矩阵,也就是对这个对象的一些操作或者说映射。
所以乍一看,这个问题好像并没有什么特别难的,为啥线性代数这么难呢。
主要是很多的基本概念和实际的物理含义没有挂钩。
接下来,我们就来讲讲线性代数中的各个名词和物理含义的联系。
行列式
首先第一个概念就是矩阵的行列式。还记得刚开始学习线性代数的时候,老师上来就咔咔给我们一顿求解矩阵的行列式。
二阶矩阵的行列式是下面的这个公式,大家应该依稀还记得求矩阵的行列式的求法(不是定义),对角线相乘再相减:
然而,我还记得一个学期的线性代数学完了,我连第一个问题都没有解决。那就是,老师,咱们为什么要求一个矩阵的行列式?
为什么?
为什么?
在这里,我就来告诉大家,为什么要求解矩阵的行列式!
还是举一个例子,这次我们把上面的小纸片人换成一个面积是1*1的小方块:
我们用一个矩阵对它进行一顿操作,就得到了下面的样子:
可以看到,经过了图中所示的矩阵的变换之后,我们之前的小方块变成了大一点的矩形,面积变成了3*2,也就是6。
而我们再算算图中这个矩阵的行列式的数值,也是6。
行列式的数值和矩阵变换之后的面积一样!
朋友们,这不是巧合!
我们可以再试验一个矩阵变化:
我们用另一个矩阵对原来的小方块进行一顿操作,可以看到之前的小方块变成了一个斜一点的矩形。
变换后的斜方形的面积是1,而图中这个矩阵变换的行列式的数值也是1。
行列式的数值和矩阵变换之后的面积仍然一样!
这!其实就是行列式的非常重要的物理意义!它其实就是矩阵变换带来的面积变化。
我第一次看到这个概念的时候,觉得醍醐灌顶,原来行列式的意义可以这么理解!
同时感慨,曾经我求解了不下一千个矩阵的行列式,原来自己根本不知道自己在求些什么东西!
当然,上面的定义是不准确的,对于二维来说,行列式代表的就是面积变化,三维来说,行列式表征的就是体积变化了,推之高维空间亦然。这样就严谨一些了。
逆矩阵
现在我们应该知道了矩阵是一种变换,想想上面的矩阵变换,我们可以把一个小方块变成一个斜斜的方块。
那么一定存在另一种矩阵的映射,能把这个斜斜的方块变回原来的小方块,是不是?
所以逆矩阵的物理意义就出来了,如果有个矩阵能把经过变换之后的斜斜的这个方块:
还原成为之前的小方块:
那么它就是原来那个矩阵的逆矩阵。
可以这么理解,逆矩阵就是一种对原矩阵的逆向变换。
对于逆矩阵,在数学上,有这么个表达:
A 是一个矩阵, A-1是A 的逆矩阵,它们相乘会得到一个单位矩阵。
结合物理意义我们就能理解这个公式了:一个物体经过了A矩阵的变换,在经过A 的逆矩阵的变换,就等于保持不变(单位矩阵就是保持不变)。
简单来说一句话,变过去又变回来,那就是没有变。
这就是逆矩阵的性质。
矩阵的秩
如果说上面的东西还只是有点意思的话,那接下来讲的东西就要进入高潮了。
由上面的论述,我们知道了逆矩阵是啥东西——就是一种反向变换。
一切看似没啥问题。
但是问题来了。我们喜欢折腾的数学家不久发现,有些矩阵变换没法求逆变换!
这是为什么呢?
这还要从矩阵的行列式说起。
我们从上面知道了,行列式表征的一种面积的变化。但是我们会发现有很多矩阵的行列式的数值是0。
啥意思呢?
很不严谨地举一个例子,想想我们上面提到的那个小方块。
现在有一种变换,让这个小方块的面积变换后变成零了。你觉得这是一个什么变换?
不知道你猜出来没(反正我一开始是没有头绪),只有一种可能:
这个小方块被压缩成了平面上的一个点或者一条线!
以至于变换后的面积为零!
这就是行列式为零的物理意义。
借由这个物理意义,我们进一步可以知道:
如果一个矩阵变换的行列式为零,代表这个变换将对目标进行降维(比如从平面变成点)。
然后我们可以想象,一个物体维度一旦下降(比如从平面变成点),这个过程将不能逆转(从点重新恢复成平面)。
这就是为什么有些矩阵变换不能求逆矩阵!
进一步,我们就能得到线性代数里面最常用的一个结论:
行列式为0的矩阵是不可逆矩阵,不可逆矩阵的行列式就是0。
我第一次看到这个结论,内心是在咆哮的:
这就是传说中的降维打击啊!
科幻里面的东西原来就在身边,只是我一直没有去挖掘过!
那么什么又是矩阵的秩呢?
一句话解释就是,矩阵变换之后所给出的维度,就是矩阵的秩。
什么意思,打个比方,很简单,如果对一个三维物体进行一个矩阵变换,变成了一维的,那么这个矩阵的秩就是1,如果得到的是二维的,那么这个矩阵的秩就是2。
如果变换之后仍然是三维物体,那么这个矩阵的秩就是3,也叫做满秩(没有维度的损失)。
前两种情况下,经过矩阵变换后,维度都会下降,信息都会丢失。可以想象,他们相应的行列式都为零——对于一个三维物体,无论是变成了直线还是点,面积都是变成了0。
所以我们又得到了一个重要结论:
只有满秩的矩阵(变换之后维度不变)行列式才不为零。
我们可以看到,用物理含义来看这些定义,会显得格外通俗易懂。
特征根与特征向量
接下来我们来讲讲线性代数里面最最核心的最经典的一个问题:
求解矩阵的特征根和特征向量。
我刚开始学习矩阵这门课的时候,老师啥也没说,整节课就围绕着求解一个矩阵的特征向量和特征根展开了。
遗憾的是,我再次懵圈了,因为我连一个最基本的问题都没搞明白,嘿,老师,我们为啥要求解特征根和特征向量呀?
啥是矩阵的特征根?
啥事矩阵的特征向量?
啥?啥?啥?
于是我下课自己查看了相关资料之后,网友的一通介绍让我豁然开朗:
什么是特征向量呢,就是在高维空间中,经过了某个矩阵变换之后,保持不变的向量,就是这个矩阵的特征向量。
看不懂?
没关系,一如既往地,我们还是来举个例子。如下图,假设我们有一对向量是下面这个样子的:
经过了一个矩阵变换之后就变成了这个样子:
然后我们再随意的取另一个向量,黄色的箭头:
看看它经过了这个矩阵变换之后的样子:
可以看到,这个黄色的向量经过矩阵变换之后,方向和大小都改变了,注意那个粉色的延长线。
我们接下来再看一个经过了变换之后,方向可以不改变的向量,图中的黄色箭头:
我们可以看到,经过了矩阵变换之后,这个黄色的箭头的方向保持了不变!
重点来了!!!
从物理意义来讲,这种经过了矩阵变换之后,方向依然能保持不变的向量,就是这个矩阵的特征向量,这些特征向量经过变换后大小的改变,就是该特征向量的对应特征值了。
为什么叫这个矩阵的特征向量呢,数学家说了,这是因为咱们只用这一个向量,就能代表这个矩阵的变换,所以叫做特征向量。
可能你又要问了,特征向量有啥用呢?
好的,例子再次登场!
如下图,我们有一个立方体的物体:
我们现在对这个物体进行一波3D 旋转,得到下面这个样子:
虽然我告诉旋转的过程是,红的那一面从右边转到了左边。
但是你可能还是很难想象它到底是怎么转过来的,对吧?
计算机也很难想到!
然后,怎么办呢?
为了直观起见,我们可以想象一下这给它添加一个旋转轴,如下图:
它旋转的时候,就是围绕着这个轴来转的:
你可能会说,行吧,好像能想象出来了。
但是旋转就旋转吧,和特征向量有啥关系呢。
人数学家说了,这个旋转其实就是一种矩阵变换,而这个轴就叫做这个旋转变换的特征向量!
因为在整个变换中,只有这个轴的方向是没有改变的!
也就是说,我们找到了这个轴,也就是特征向量,我们就找到了这个旋转,也就是矩阵变换的最简洁的表征方法!
基于上述的这个理论,在现代的矩阵求解特征向量的运算中,有一个叫 Power 迭代法的算法被广泛用于计算机求解矩阵的特征向量。
它的原理就是基于——特征向量就是,经过矩阵变换后,方向保持不变的向量。
Power 迭代法它具体是怎么进行求解一个矩阵的特征向量的呢?非常简单。
我们首先任意选一个向量,对它进行矩阵的变换,然后得到一个新的向量,我们再对这个新的向量进行矩阵变换,如此反复。我们可以想见,经过了无数次的矩阵变换后,向量会趋近于不变。而这就是特征向量的定义——经过矩阵变换后,方向保持不变的向量。
以上,就是我在课余时间对线性代数物理含义的一些总结。
总结
通过线性代数的学习,我的收获很大。一方面,我发现学习一定要多问为什么,把整个事情的来龙去脉摸清楚。如果只是一知半解,那么不仅学的知识很不牢固,学习的时候也会很枯燥。
另一方面,借用万门大学(一个网上课堂)的老师的一句话来说就是:
所以我们学的越多,我们发现自己不懂的东西越多,但是我们的知识体系变大,仍然是一件有趣的事情,因为它可以更好的帮助我们做决策。
以及如果我们不去扩大自己的知识体系,生命实在是太无聊了,翻来覆去就那几种需求。
多多学习新的知识,探索别人没有发现过的乐趣,真的能让人感受快乐。
[1] https://www.bilibili.com/video/av6540378/返回搜狐,查看更多
责任编辑:
十分钟理解线性代数的本质_十分钟理解线性代数的本质相关推荐
- java线性表合并_合并两个线性表
严蔚敏版数据结构,算法2.1#include using namespace std; typedef int element; #define maxsize 100 typedef struct ...
- 十分钟理解线性代数的本质_数学对于编程来说到底有多重要?来看看编程大佬眼里的线性代数!...
本文提出了一种观点:从应用的角度,我们可以把线性代数视为一门特定领域的程序语言.我们一起来看看!文章有点偏理论讨论,可能比较枯燥,对于一名程序员,你如果看下去,你将会有不一样的收获! 线性代数是什么? ...
- 逗号后面统一加空格_十分钟搞定字幕,教你做加字幕的“快手菜”
平台上许多同学有疑问:做视频是否有加字幕的必要呢? 其实除了外语需要翻译.语速过快加字幕方便理解.普通话不标准等情况之外,还是建议有余力的同学可以加上字幕,提升用户的观看体验. 那么问题来了,存在以下 ...
- 大白话5分钟带你走进人工智能-第二十节逻辑回归和Softmax多分类问题(5)
大白话5分钟带你走进人工智能-第二十节逻辑回归和Softmax多分类问题(5) 上一节中,我们讲 ...
- 技术系统进化法则包括_技术系统进化法则_十六种典型创新方法
技术系统进化法则_十六种典型创新方法 技术进化法则是技术系统为提高自身的有用功能,从一种状态过渡到另一种状态时,系统内部组件之间.系统组件与外界环境间本质关系的体现.即技术系统与生物系统一样,也有一个 ...
- 大白话5分钟带你走进人工智能-第二十九节集成学习之随机森林随机方式 ,out of bag data及代码(2)
大白话5分钟带你走进人工智能-第二十九节集成学习之随机森林随机方式 ,out of bag data及代码(2) 上一节中我们讲解了随机森林的基本概念,本节的话我们讲解随机森 ...
- 一步步学习SPD2010--第十章节--SP网站品牌化(9)--理解SP的CSS继承
一步步学习SPD2010--第十章节--SP网站品牌化(9)--理解SP的CSS继承 和你在本书中处理的许多其他文件一样,corev4.css和其他样式表处在每个Web服务器的根目录中.如果你使用SP ...
- 全球及中国线性电位器行业研究及十四五规划分析报告
2022-2028全球及中国线性电位器行业研究及十四五规划分析报告 受新冠肺炎疫情等影响,QYResearch调研显示,2021年全球线性电位器市场规模大约为 亿元(人民币),预计2028年将达到 亿 ...
- 每天淡定五分钟+每天淡定五分钟,你能多活十几年
每天淡定五分钟+每天淡定五分钟,你能多活十几年 <每天淡定五分钟,你能多活十几年:自主神经决定你的健康>内容简介:为什么有的人容易生病,而有的人却不容易生病?为什么女人比男人活得长?为什么 ...
- 冒泡和快速排序的时间复杂度_十大经典排序算法——快速排序
目录 1.1.排序分类 1.2.排序的定义: 对一序列对象根据某个关键字进行排序. 1.3.术语说明 稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面. 不稳定:如果a原本在b的前面,而a ...
最新文章
- mysql isreg_`Innodb` MySQL中如何优雅的删除大表跑路
- UE4链接第三方库(lib和dll)
- java数据类型的一些注意事项
- Python 的AES加密与解密
- 朗文3000词汇表带音标_英语零基础音标语法都不会词汇量3000 学雅思到6/6.5分 需要多久 该如何做?...
- redis-稿件-python连接redis-使用连接池的方式来创建
- C# .NET 使用 NPOI 生成 .xlsx 格式 Excel
- 真的掏空了吗?华为开始疯狂出4G手机
- 判断一个数是否为质数
- 天锐绿盾注册机 使用手册
- android 字体特效,Android自定义View实现闪耀字体效果
- 2019年读书记录及总结
- 通过 ICMP 协议实现 Ping Tunnel 建立可穿透网络隧道
- 奈奎斯特采样定理之我见
- 小程序嵌套h5页面_快速小程序开发之微信小程序内嵌 H5
- 【C++】栈~~(很详细哦)
- 计算机考研2018大纲,2018计算机考研大纲(word版)
- android开发之收藏网页功能
- Leetcode Best Time to Buy and Sell Stock IV(最大子段和)
- conda 安装太慢
热门文章
- 牛顿迭代法求解开根号、泰勒展开式求解arctan及cordic的原理
- 导出excel 手动拼装复杂表头
- Linux 克隆虚拟机以及克隆之后引起的“Device eth0 does not seem to be present, delaying initialization”问题解决...
- Excel 无法打开文件“新建 Microsoft Excel 工作表.xlsx”,因为文件格式或文件扩展名无效
- 路由器下一跳地址怎么判断_路由器工作原理(一)
- matlab中图例的字怎么改,如何在Matlab图形图例中设置自定义标记
- XtuningTheBert
- Java反射创建对象效率高还是通过new创建对象的效率高?
- 概念数据模型(CDM)
- 别了,腾讯!别了,深圳!我去老家当富豪了!