開發四年只會寫業務代碼,分布式高并發都不會還做程式員?->>>
C2 = np.array([[ 5, 10],[ 10, 33]])
[V2, P2] = np.linalg.eig(C2)
print (V2, P2)
print ( np.dot( np.dot(P2, C2), P2.T) )
輸出框為:
[ 1.79534947 36.20465053]
[[-0.95229551 -0.30517743]
[ 0.30517743 -0.95229551]]
[[ 13.42011334 16.27466942]
[ 16.27466942 24.57988666]]
而正確的特征向量應該是
[[-0.95229551 0.30517743]
[ 0.30517743 0.95229551]]
和linalg.eig()函式算出來的特征向量在第二列差了一個負號
驗算:
P3 = np.array([[-0.95229551, 0.30517743], [ 0.30517743, 0.95229551]])
print ( np.dot( np.dot(P3, C2), P3.T) )
輸出
[[ 1.79534947e+00 -4.82620511e-08]
[ -4.82620521e-08 3.62046506e+01]]
所以對于這個矩陣linalg.eig()函式算出來的特征值是對的,特征向量是不對的???
有大神知道linalg.eig()里用的是什么逼近方法???
linalg.eig()函式是不是不能用了???
uj5u.com熱心網友回復:
我的也是,特征向量的第二列查了一個負號。樓主解決了嗎?轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/200330.html
標籤:其他技術討論專區
上一篇:ArcGIS python批量獲取柵格資料四至(top,bottom,left,right)坐標代碼
下一篇:從0開始JAVA學習
