numpy求解矩阵的特征值和特征向量

python2.7代码如下:

#-*- encoding:utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import numpy as np
from numpy import *
# X=[ [1,2,1,1],
#     [3,3,1,2],
#     [3,5,4,3],
#     [5,4,5,4],
#     [5,6,1,5],
#     [6,5,2,6],
#     [8,7,1,2],
#     [9,8,3,7]]
# X=np.array(X).T#这里注意,[1,2,1,1]在numpy的眼中是一列


np.linalg.eig
X=[[-1,1,0],
[-4,3,0],
[1,0,2]]

print"X=",X
X=matrix(X)

print"------------------下面计算原始矩阵的特征值和特征向量-----------------------"
eigenvalue,featurevector=np.linalg.eig(X)
print"原始矩阵的特征值"
print"eigenvalue=",eigenvalue
print"featurevector=",featurevector

上面的注释很多人在评论里面有争议,那我就详细写一下:

变量/值解释
X=np.array(X).T

注释里面"[1,2,1,1]在numpy的眼中是一列"

说的是X,

这里的[1,2,1,1]已经是代码处理后的向量了

 

如果您觉得必须写上^T,

那是因为不同数学书规定不同,

有的数学书默认就是列向量,

有的默认就是横向量。

 

如果您曾经阅读过的数学书默认x不带^T是横向量,

那么对于上面的这句注释,

您在这里将它理解为[1,2,1,1]^T就好

 

np.dot(x,y)时,y被认为是列向量

 

注:

numpy里面不存在向量的概念,那个都是数组array

上面的注释只是根据需要写的。

 

 

下面是百度经验的上的一个计算实例,与上面代码对应

https://jingyan.baidu.com/album/27fa7326afb4c146f8271ff3.html?picindex=9

最终我们可以得到运行结果是:

 

eigenvalue= [ 2.  1.  1.]
featurevector= [[ 0.          0.40824829  0.40824829]
 [ 0.          0.81649658  0.81649658]
 [ 1.         -0.40824829 -0.40824829]]

--------------------

所以λ=2时,特征向量=[0,0,1]^T

λ=1时,特征向量=[0.40824829,0.81649658, -0.40824829]^T,可以看到,代码结果与百度经验上的ppt的结果完全一致。

注意:

numpy的计算结果是经过单位化的,百度文库上的ppt单位化以后也是这个结果,所以是一致的。

 

--------------------------------------------注意----------------------------------------------------------------

这是我私人笔记,我不欠您们的,

如果您们不满意可以自己去写,也可以向CSDN客服举报。

①我不回复吧,我想想不太礼貌。

②回复吧,您们觉得不重要,是扯淡。

做事情之前,先自己反思下,学会怎么做人吧。

本人不再做任何回复,请勿留言,

本人不会删除您们的任何留言,请注意自己的措辞,做一个文明的人。

评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值