numpy.linalg,eig(a)函數

函數:numpy.linalg.eig(a)

參數:

  • a:想要計算奇異值和右奇異值的方陣

返回值:

  • w:特徵值。每個特徵值根據它的多重性重複。這個數組將是複雜類型,除非虛數部分爲0。當傳進的參數a是實數時,得到的特徵值是實數。
  • v:特徵向量。

例子:

當我們想要求解一個非方陣的奇異值之前,我們需要先把這個矩陣轉換爲方陣。

>>> from numpy import *
>>> import numpy as np
>>> A = mat([[4,5,6],[1,2,3]])
>>> U = A*A.T
>>> lamda,hU=linalg.eig(U)
>>> sigma=sqrt(lamda)
>>> print sigma
[9.508032   0.77286964]

在開頭先進行矩陣的乘法,把矩陣和矩陣的轉置相乘,得到一個方陣,然後這個方陣作爲參數,可以得到特徵值和特徵向量。

其中返回的第一個值w進行開根號就是data這個矩陣的奇異值。至於爲什麼w開根號的值就是svd函數的第二個返回值,可以查看我之前寫的svd函數的解釋。numpy.linalg.svd

我們可以用svd函數來驗證一下。

>>> Q,S,VT=linalg.svd(A)
>>> print S
[9.508032   0.77286964]

官方手冊:numpy.linalg.eig

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