代码如下:
#-*- 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
下面是百度经验的上的一个计算实例,与上面代码对应
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]
λ=1时,特征向量=[0.40824829,0.81649658, -0.40824829],可以看到,代码结果与百度经验上的ppt的结果完全一致。