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"------------------下面計(jì)算原始矩陣的特征值和特征向量-----------------------" eigenvalue,featurevector=np.linalg.eig(X) print"原始矩陣的特征值" print"eigenvalue=",eigenvalue print"featurevector=",featurevector上面的注釋很多人在評(píng)論里面有爭(zhēng)議,那我就詳細(xì)寫一下:
| 變量/值 | 解釋 |
| X=np.array(X).T | 注釋里面"[1,2,1,1]在numpy的眼中是一列" 說的是X, 這里的[1,2,1,1]已經(jīng)是代碼處理后的向量了 ? 如果您覺得必須寫上^T, 那是因?yàn)椴煌瑪?shù)學(xué)書規(guī)定不同, 有的數(shù)學(xué)書默認(rèn)就是列向量, 有的默認(rèn)就是橫向量。 ? 如果您曾經(jīng)閱讀過的數(shù)學(xué)書默認(rèn)x不帶^T是橫向量, 那么對(duì)于上面的這句注釋, 您在這里將它理解為[1,2,1,1]^T就好 ? np.dot(x,y)時(shí),y被認(rèn)為是列向量 ? |
注:
numpy里面不存在向量的概念,那個(gè)都是數(shù)組array
上面的注釋只是根據(jù)需要寫的。
?
?
下面是百度經(jīng)驗(yàn)的上的一個(gè)計(jì)算實(shí)例,與上面代碼對(duì)應(yīng)
https://jingyan.baidu.com/album/27fa7326afb4c146f8271ff3.html?picindex=9
最終我們可以得到運(yùn)行結(jié)果是:
?
eigenvalue= [ 2. ?1. ?1.]
featurevector= [[ 0. ? ? ? ? ?0.40824829 ?0.40824829]
?[ 0. ? ? ? ? ?0.81649658 ?0.81649658]
?[ 1. ? ? ? ? -0.40824829 -0.40824829]]
--------------------
所以λ=2時(shí),特征向量=[0,0,1]^T
λ=1時(shí),特征向量=[0.40824829,0.81649658,?-0.40824829]^T,可以看到,代碼結(jié)果與百度經(jīng)驗(yàn)上的ppt的結(jié)果完全一致。
注意:
numpy的計(jì)算結(jié)果是經(jīng)過單位化的,百度文庫(kù)上的ppt單位化以后也是這個(gè)結(jié)果,所以是一致的。
?
--------------------------------------------注意----------------------------------------------------------------
這是我私人筆記,我不欠您們的,
如果您們不滿意可以自己去寫,也可以向CSDN客服舉報(bào)。
①我不回復(fù)吧,我想想不太禮貌。
②回復(fù)吧,您們覺得不重要,是扯淡。
做事情之前,先自己反思下,學(xué)會(huì)怎么做人吧。
本人不再做任何回復(fù),請(qǐng)勿留言,
本人不會(huì)刪除您們的任何留言,請(qǐng)注意自己的措辭,做一個(gè)文明的人。
總結(jié)
以上是生活随笔為你收集整理的numpy求解矩阵的特征值和特征向量的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图片转注释python代码(转)
- 下一篇: python行数最短的PCA实现方式