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)向量 ...
随机推荐
- 安装Visual Studio 2013以及简单使用
首先,在网上找到安装Visual Studio 2013的教程以及相关软件资源http://jingyan.baidu.com/article/09ea3ede3b2496c0afde3944.htm ...
- Linux内核分析 期末总结
Linux内核分析 期末总结 一.知识概要 1. 计算机是如何工作的 存储程序计算机工作模型:冯诺依曼体系结构 X86汇编基础 会变一个简单的C程序分析其汇编指令执行过程 2. 操作系统是如何工作的 ...
- SPRINT四则运算(第二天)
1.小组成员: 李豌湄:master 江丹仪:产品负责人 2.现状: a.已经下载APP分析他们的界面.优缺点和闪光点 b.已改进代码添加功能 3.任务认领: 完成任务的第一个模块: a.下载五个类 ...
- Python轻松爬取Rosimm写真网站全部图片
RosimmImage 爬取Rosimm写真网站图片 有图有真相 def main_start(url): """ 爬虫入口,主要爬取操作 ""&qu ...
- 用Axios Element 实现全局的请求 loading
Kapture 2018-06-07 at 14.57.40.gif demo in github 背景 业务需求是这样子的,每当发请求到后端时就触发一个全屏的 loading,多个请求合并为 ...
- dotnet core的下载地址 以及sdk和runtime的 version 简单说明
1. dotnet core 2.1 的下载地址 https://dotnet.microsoft.com/download/dotnet-core/2.1 2. dotnet core 2.2 的下 ...
- python 协程库gevent学习--源码学习(一)
总算还是要来梳理一下这几天深入研究之后学习到的东西了. 这几天一直在看以前跟jd对接的项目写的那个gevent代码.为了查错,基本上深入浅出了一次gevent几个重要部件的实现和其工作的原理. 这里用 ...
- HTTP消息头(HTTP headers)-常用的HTTP请求头与响应头
HTTP消息头是指,在超文本传输协议( Hypertext Transfer Protocol ,HTTP)的请求和响应消息中,协议头部分的那些组件.HTTP消息头用来准确描述正在获取的资源.服务器或 ...
- python之pygal:掷一个骰子统计次数并以直方图形式显示
源码如下: # pygal包:生成可缩放的矢量图形文件,可自适应不同尺寸的屏幕显示 # 安装:python -m pip intall pygal-2.4.0-py2.py3-none-any.whl ...
- C-Lodop获取打印机列表Create_Printer_List
C-Lodop获取打印机列表Create_Printer_List,此方法Lodop不支持,是C-Lodop特有的函数,客户端本地打印单独用c-lodop,或集中打印等,可以获得本机或云主机的打印机列 ...