numpy求解矩陣的特徵值和特徵向量

代碼如下:

#-*- 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的結果完全一致。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章