Python与矩阵论——特征值与特征向量
Python计算特征值与特征向量案例
例子1
import numpy as np
A = np.array([[3,-1],[-1,3]])
print('打印A:\n{}'.format(A))
a, b = np.linalg.eig(A)
print('打印特征值a:\n{}'.format(a))
print('打印特征向量b:\n{}'.format(b))
打印A:
[[ 3 -1]
[-1 3]]
打印特征值a:
[4. 2.]
打印特征向量b:
[[ 0.70710678 0.70710678]
[-0.70710678 0.70710678]]
例子2
import numpy as np
A = np.array([[-1,1,0],[-4,3,0],[1,0,2]])
print('打印A:\n{}'.format(A))
a, b = np.linalg.eig(A)
print('打印特征值a:\n{}'.format(a))
print('打印特征向量b:\n{}'.format(b))
打印A:
[[-1 1 0]
[-4 3 0]
[ 1 0 2]]
打印特征值a:
[2. 1. 1.]
打印特征向量b:
[[ 0. 0.40824829 0.40824829]
[ 0. 0.81649658 0.81649658]
[ 1. -0.40824829 -0.40824829]]
例子3
import numpy as np
A = np.array([[-2,1,1],[0,2,0],[-4,1,3]])
print('打印A:\n{}'.format(A))
a, b = np.linalg.eig(A)
print('打印特征值a:\n{}'.format(a))
print('打印特征向量b:\n{}'.format(b))
打印A:
[[-2 1 1]
[ 0 2 0]
[-4 1 3]]
打印特征值a:
[-1. 2. 2.]
打印特征向量b:
[[-0.70710678 -0.24253563 0.30151134]
[ 0. 0. 0.90453403]
[-0.70710678 -0.9701425 0.30151134]]
特征值

- 判断矩阵是不是方阵(即行数和列数相等的矩阵。若行数和列数不相等,那就谈不上奇异矩阵和非奇异矩阵)。
- 看矩阵的行列式|A|是否等于0,若等于0,称矩阵A为奇异矩阵;若不等于0,称矩阵A为非奇异矩阵。
- 若|A|≠0可知矩阵A可逆,可逆矩阵就是非奇异矩阵,非奇异矩阵也是可逆矩阵。
- 若A为奇异矩阵,则AX=0有无穷解,AX=b有无穷解或者无解。
- 若A为非奇异矩阵,则AX=0有且只有唯一零解,AX=b有唯一解。
特征向量




总结:
特征值和特征向量的计算方法:

特征值与特征向量

特征值的性质:

特征向量的性质

例题1

import numpy as np
A = np.array([[1,2,2],[2,1,2],[2,2,1]])
print('打印A:\n{}'.format(A))
a, b = np.linalg.eig(A)
print('打印特征值a:\n{}'.format(a))
print('打印特征向量b:\n{}'.format(b))
打印A:
[[1 2 2]
[2 1 2]
[2 2 1]]
打印特征值a:
[-1. 5. -1.]
打印特征向量b:
[[-0.81649658 0.57735027 0. ]
[ 0.40824829 0.57735027 -0.70710678]
[ 0.40824829 0.57735027 0.70710678]]
例题2


import numpy as np
A = np.array([[2,-3,1],[1,-2,1],[1,-3,2]])
print('打印A:\n{}'.format(A))
a, b = np.linalg.eig(A)
print('打印特征值a:\n{}'.format(a))
print('打印特征向量b:\n{}'.format(b))
打印A:
[[ 2 -3 1]
[ 1 -2 1]
[ 1 -3 2]]
打印特征值a:
[2.09037533e-15+0.00000000e+00j 1.00000000e+00+5.87474805e-16j
1.00000000e+00-5.87474805e-16j]
打印特征向量b:
[[0.57735027+0.j 0.84946664+0.j 0.84946664-0.j ]
[0.57735027+0.j 0.34188085-0.11423045j 0.34188085+0.11423045j]
[0.57735027+0.j 0.17617591-0.34269135j 0.17617591+0.34269135j]]
例题3


import numpy as np
A = np.array([[2,-1,2],[5,-3,3],[-1,0,-2]])
print('打印A:\n{}'.format(A))
a, b = np.linalg.eig(A)
print('打印特征值a:\n{}'.format(a))
print('打印特征向量b:\n{}'.format(b))
打印A:
[[ 2 -1 2]
[ 5 -3 3]
[-1 0 -2]]
打印特征值a:
[-0.99998465+0.00000000e+00j -1.00000768+1.32949166e-05j
-1.00000768-1.32949166e-05j]
打印特征向量b:
[[ 0.57735027+0.00000000e+00j 0.57735027+7.67588259e-06j
0.57735027-7.67588259e-06j]
[ 0.57735913+0.00000000e+00j 0.57734584+1.53518830e-05j
0.57734584-1.53518830e-05j]
[-0.57734141+0.00000000e+00j -0.5773547 +0.00000000e+00j
-0.5773547 -0.00000000e+00j]]
Python与矩阵论——特征值与特征向量的更多相关文章
- python计算平面的法向-利用协方差矩阵求解特征值和特征向量
Obvious,最小特征值对应的特征向量为平面的法向 这个问题还有个关键是通过python求协方差矩阵的特征值和特征向量,np.linalg.eig()方法直接返回了特征值的向量和特征向量的矩阵 sc ...
- 利用python做矩阵的简单运算(行列式、特征值、特征向量等的求解)
import numpy as np lis = np.mat([[1,2,3],[3,4,5],[4,5,6]]) print(np.linalg.inv(lis)) # 求矩阵的逆矩阵 [[-1. ...
- 采用梯度下降优化器(Gradient Descent optimizer)结合禁忌搜索(Tabu Search)求解矩阵的全部特征值和特征向量
[前言] 对于矩阵(Matrix)的特征值(Eigens)求解,采用数值分析(Number Analysis)的方法有一些,我熟知的是针对实对称矩阵(Real Symmetric Matrix)的特征 ...
- 矩阵的特征值和特征向量的雅克比算法C/C++实现
矩阵的特征值和特征向量是线性代数以及矩阵论中很重要的一个概念.在遥感领域也是经经常使用到.比方多光谱以及高光谱图像的主成分分析要求解波段间协方差矩阵或者相关系数矩阵的特征值和特征向量. 依据普通线性代 ...
- c语言计算矩阵特征值和特征向量-1(幂法)
#include <stdio.h> #include <math.h> #include <stdlib.h> #define M 3 //方阵的行数 列数 #d ...
- (原)使用mkl计算特征值和特征向量
转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5585271.html 参考文档:mkl官方文档 lapack_int LAPACKE_sgeev(in ...
- opencv学习之路(38)、Mat像素统计基础——均值,标准差,协方差;特征值,特征向量
本文部分内容转自 https://www.cnblogs.com/chaosimple/p/3182157.html 一.统计学概念 二.为什么需要协方差 三.协方差矩阵 注:上述协方差矩阵还需要除以 ...
- eig()函数求特征值、特征向量、归一化
在MATLAB中,计算矩阵A的特征值和特征向量的函数是eig(A),常用的调用格式有 5种:(1) E=eig(A):求矩阵A的全部特征值,构成向量E. 想求最大特征值用:max(eig(A))就好了 ...
- 特征值、特征向量与PCA算法
一.复习几个矩阵的基本知识 1. 向量 1)既有大小又有方向的量成为向量,物理学中也被称为矢量,向量的坐标表示a=(2,3),意为a=2*i + 3*j,其中i,j分别是x,y轴的单位向量. 2)向量 ...
随机推荐
- Mysql主从同步(1) - 概念和原理介绍 以及 主从/主主模式 部署记录
Mysql复制概念Mysql内建的复制功能是构建大型高性能应用程序的基础, 将Mysql数据分布到多个系统上,这种分布机制是通过将Mysql某一台主机数据复制到其它主机(slaves)上,并重新执行一 ...
- LVS负载均衡-基础知识梳理
一. 集群的概念 服务器集群简称集群是一种服务器系统,它通过一组松散集成的服务器软件和/或硬件连接起来高度紧密地协作完成计算工作.在某种意义上,他们可以被看作是一台服务器.集群系统中的单个服务器通常称 ...
- vue-cli中的check-versions.js配置文件包括semver,chalk,shell插件的解释
本文介绍vue-cli脚手架build目录中check-versions.js的配置 本文件是用来检测node和npm版本的 直接上代码加注释 // 下面的插件是chalk插件,他的作用是在控制台中输 ...
- D. Fun with Integers
链接 [http://codeforces.com/contest/1062/problem/D] 题意 给你n,让你从2到n这个区间找任意两个数,使得一个数是另一个的因子,绝对值小的可以变为绝对值大 ...
- [百家号]看完再也不会被坑!笔记本接口大揭秘:HDMI、DP、雷电
看完再也不会被坑!笔记本接口大揭秘:HDMI.DP.雷电 https://baijiahao.baidu.com/s?id=1577309281431438678&wfr=spider& ...
- 深入理解 Laravel 中 config 配置加载原理
Laravel的配置加载其实就是加载config目录下所有文件配置.如何过使用php artisan config:cache则会把加载的配置合并到一个配置文件中,下次请求就不会再去加载config目 ...
- pandas.Series
1.系列(Series)是能够保存任何类型的数据(整数,字符串,浮点数,Python对象等)的一维标记数组.轴标签统称为索引. Pandas系列可以使用以下构造函数创建 - pandas.Series ...
- python自动化运维笔记2 —— IP地址处理模块IPy
1.2 实用的IP地址处理模块IPy ip地址规划是网络设计中非常重要的一个环节,规划的好坏会直接影响路由协议算法的效率,包括网络性能.可扩展性等方面,在这个过程当中,免不了要计算大量的IP地址,包括 ...
- unwrap bug
https://cn.mathworks.com/matlabcentral/newsreader/view_thread/93276
- appium使用错误集合
原因:没有加载该文件 解决方案: cmd 使用:adb shell uiautomator dump 在cmd生成 然后就可以获取元素了 使用send_keys()输入报错 selenium.c ...