点击上方蓝字,和我一起学技术。

今天和大家聊一个非常重要,在机器学习领域也广泛使用的一个概念——矩阵的特征值与特征向量

我们先来看它的定义,定义本身很简单,假设我们有一个n阶的矩阵A以及一个实数λ,使得我们可以找到一个非零向量x,满足:

如果能够找到的话,我们就称λ是矩阵A的特征值,非零向量x是矩阵A的特征向量

  几何意义  

光从上面的式子其实我们很难看出来什么,但是我们可以结合矩阵变换的几何意义,就会明朗很多。

我们都知道,对于一个n维的向量x来说,如果我们给他乘上一个n阶的方阵A,得到Ax。从几何角度来说,是对向量x进行了一个线性变换。变换之后得到的向量y和原向量x的方向和长度都发生了改变。

但是,对于一个特定的矩阵A来说,总存在一些特定方向的向量x,使得Ax和x的方向没有发生变化,只是长度发生了变化。我们令这个长度发生的变化当做是系数λ,那么对于这样的向量就称为是矩阵A的特征向量,λ就是这个特征向量对应的特殊值

  求解过程  

我们对原式来进行一个很简单的变形:

这里的I表示单位矩阵,如果把它展开的话,可以得到一个n元n次的齐次线性方程组。这个我们已经很熟悉了,这个齐次线性方程组要存在非零解,那么需要系数行列式不为零,也就是系数矩阵的秩小于n。

我们将这个行列式展开:

这是一个以λ为未知数的一元n次方程组,n次方程组在复数集内一共有n个解。我们观察上式,可以发现λ只出现在正对角线上,显然,A的特征值就是方程组的解。因为n次方程组有n个复数集内的解,所以矩阵A在复数集内有n个特征值。

我们举个例子,尝试一下:

假设:

那么,我们套入秋根公式可以得出使得的两个根有:

这个结论可以推广到所有的n都可以成立,也就是说对于一个n阶的方阵A,都可以得到:

  案例  

我们下面来看一个例子:

我们带入

,可以得到:所以: ,可以看出来当λ=2时:解之,可以得到:,所有(x,−x)向量都是A的特征向量。同理,当λ=4时:解之,可以得到:,所有(x,x)向量都是A的特征向量。

  使用Python求解特征值和特征向量  

在我们之前的文章当中,我们就介绍过了Python在计算科学上的强大能力,这一次在特征值和特征矩阵的求解上也不例外。通过使用numpy当中的库函数,我们可以非常轻松,一行代码,完成特征值和特征向量的双重计算。我们一起来看代码:

import numpy as npa = np.mat([[3, 1], [1, 3]])lam, vet = np.linalg.eig(a)

np.linalg.eig 方法会返回两个值,第一个返回值是矩阵的特征值,第二个返回值是矩阵的特征向量,我们看下结果:这里的特征向量为什么是0.707呢?因为Python自动帮我们做好了单位化,返回的向量都是单位向量,不得不说实在是太贴心了。

  总结  

关于矩阵的特征值和特征向量的介绍到这里就结束了,对于算法工程师而言,相比于具体怎么计算特征向量以及特征值。理解清楚它们的概念和几何意义更加重要,因为这两者在机器学习的领域当中广泛使用,在许多降维算法当中,大量使用矩阵的特征值和特征向量。对于降维算法的原理,这里不过多赘述,我们会在以后的文章当中更新相关内容。感兴趣的同学可以小小期待一下。文章到这里就结束了,这也是线性代数专题的最后一篇文章,短短六篇文章当然不能涵盖线性代数这门学科当中的所有知识点,但实际当中常用的内容基本上已经都包括了。下周一我们将开始全新的Python专题,希望大家多多期待。如果觉得有所收获,请顺手点个在看或者转发吧,你们的支持是我最大的动力。

python中向量长度_线性代数精华——矩阵的特征值与特征向量相关推荐

  1. python中向量长度_Python线性代数学习笔记——什么是向量?实现我们自己的向量...

    上一篇已经说明了为什么要学习线性代数? 下面我们正式开始学习 一切从向量开始 什么是向量,究竟为什么引⼊向量? 从研究一个数,变成了研究一组数,向量表示的就是一组数 学过中学物理都知道力,速度,加速度 ...

  2. 线性代数之 矩阵的特征值,特征向量,特征分解

    线性代数之 矩阵的特征值,特征向量和特征分解 前言 特征值和特征向量 求矩阵特征值 矩阵的特征分解 补充:实对称矩阵 后记 前言 矩阵的特征分解是比较基础的知识了,但是应用却十分广泛,比如主成分分析. ...

  3. python中向量长度_python中向量指的是什么意思

    展开全部 一.向量是什么e69da5e6ba903231313335323631343130323136353331333433646531 在数学中,向量(也称为欧几里得向量.几何向量.矢量),指具 ...

  4. python求向量长度_得到向量的大小(x,y)

    我正在努力让这个工作,因为我能找到的所有答案,大多数答案都集中在numpy数组中的向量上,而不像我的类(OOP).(希望我的措辞正确,否则请原谅). 我想找出向量的大小(x,y),这是我的代码:cla ...

  5. matlab编程 利用生成一个10阶魔方矩阵,求矩阵的特征值、特征向量,对于特征值,请按照降序进行排列,对应的特征向量进行同样的排序。...

    您可以使用 Matlab 中的 eig 函数来计算矩阵的特征值和特征向量.例如,假设您要求解的矩阵为 A,则可以使用以下代码求解: [V,D] = eig(A);

  6. 【20211127】【Python】Python中常用的矩阵操作,单位阵、对角阵、矩阵的特征值和特征向量、矩阵的协方差

    一.生成单位阵 numpy.identity(N) 和 numpy.eye(N) 都可以用来产生单位阵,且产生的单位阵都是 np.array() 类型,矩阵元素都是 float 型. import n ...

  7. python中字典长度可变吗_python中列表长度可变吗

    python中列表长度可变吗?下面给大家介绍一下python中可变和不可变的类型: 可变.不可变 可变/不可变类型,指的是:内存id不变,type也不变的前提下,value是否是可变的. int()和 ...

  8. python随机抽签列表中的同学值日_神奇的大抽签--Python中的列表_章节测验,期末考试,慕课答案查询公众号...

    神奇的大抽签--Python中的列表_章节测验,期末考试,慕课答案查询公众号 更多相关问题 下图表示几个植物类群的进化关系.下列叙述不正确的是[ ]A.最先出现的植物类群是甲B.乙和丙都是由甲进化来的 ...

  9. Python中利用numpy将数组(矩阵)存成csv文件,将csv文件读取为数组(矩阵)

    Python中利用numpy将数组(矩阵)存成csv文件,将csv文件读取为数组(矩阵) 本博客转载自:https://blog.csdn.net/vernice/article/details/50 ...

最新文章

  1. 5- RAC 集合 RACTuple RACSequence
  2. 学Redis这篇就够了!
  3. Keepalived实现LVS-DR双机热备_2015101601
  4. spring里头各种获取ApplicationContext的方法
  5. 老牌社交网站Friends Reunited宣布关闭
  6. 头脑风暴算法代码_混乱的头脑导致混乱的代码
  7. 【PostgreSQL-9.6.3】psql常用命令
  8. java char 比较,为什么我在Java中使用char和int进行比较?
  9. 戴尔:未来就绪的IT
  10. 网络安全问题及防护措施有哪些
  11. matlab画圆的命令_matlab画圆命令.doc
  12. Android入门,android基础开发
  13. 国内最新语音服务器,语音聊天社交很热门,带你搭建自己的语音聊天服务器
  14. Region Proposal by Guided Anchoring解读
  15. [Unity]摘录笔记UnityShader(重写SurfaceShader)
  16. C语言中常用的标准数学函数
  17. PHP 小程序中微信支付
  18. 深信服X计划-云计算基础1
  19. (三)Qlabel显示图片
  20. 机械革命code01卡顿

热门文章

  1. PyTorch: 各种图像格式相互转化
  2. QT串口QSerialPort解决接收数据不完整问题
  3. Qt使用MSVC编译器关闭“C4100:未引用的形参”警告的方法
  4. VC++编程中的文件操作API和CFile类
  5. QT中如何固定窗口的大小?
  6. golang语言渐入佳境[29]-math包核心方法
  7. ArcGIS Enterprise 10.5.1 静默安装部署记录(Centos 7.2 minimal)- 6、总结
  8. 分页总页数计算方法 所有分页通用
  9. Error: Trying to remove yum, which is protected
  10. hdu Super Jumping