Numpy庫進階教程(二)


第一篇在這里:Numpy庫進階教程(一)求解線性方程組

求解特征值和特征向量

關於特征值和特征向量的介紹,可以點擊這里
首先創建一個矩陣

In [1]: A=mat("3 -2;1 0")

In [2]: A
Out[2]:
matrix([[ 3, -2],
[ 1, 0]]
)

在numpy.linalg模塊中,eigvals函數可以計算矩陣的特征值,而eig函數可以返回一個包含特征值和對應特征向量的元組。

使用eigvals函數求解特征值

In [3]: linalg.eigvals(A)
Out[3]: array([ 2., 1.])

使用eig函數求解特征值和特征向量。該函數將返回一個元祖,按列排放着特征值和對應的特征向量,其中第一列為特征值,第二列為特征向量。

In [5]: B=eig(A)

In [6]: B
Out[6]:
(array([ 2., 1.]), matrix([[ 0.89442719, 0.70710678],
[ 0.4472136 , 0.70710678]]
))

使用dot函數使矩陣相乘驗證求得的解是否正確

eigenvalues, eigenvectors = np.linalg.eig(A)
print "First tuple of eig", eigenvalues
print "Second tuple of eig\n", eigenvectors

for i in range(len(eigenvalues)):
print "Left", np.dot(A, eigenvectors[:,i])
print "Right", eigenvalues[i] * eigenvectors[:,i]
print

輸出為

Left [[ 1.78885438]
[ 0.89442719]]

Right [[ 1.78885438]
[ 0.89442719]]


Left [[ 0.70710678]
[ 0.70710678]]

Right [[ 0.70710678]
[ 0.70710678]]

計算矩陣行列式

In [51]: A = np.mat("3 4;5 6")

In [52]: print "A\n", A
A
[[3 4]
[5 6]]



使用det函數計算行列式

In [53]: print "Determinant", np.linalg.det(A)
Determinant -2.0

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com