2017-09-22 134 views
1

我以前從未使用python,但現在需要它,因爲我正在處理同事的項目。我想繪製矩陣的特徵值作爲矩陣的元素的功能,也就是我的矩陣看起來像繪製矩陣的特徵值作爲矩陣元素的函數

M=[[40,0,4],[0,0,4],[4,4,x]] 

其中x是一個變量。所以矩陣有三個特徵值

eig=numpy.linalg.eigvals(M) 
    eig1=eig[0] 
    eig2=eig[1] 
    eig3=eig[0] 

但是我怎樣才能將這個函數作爲x的函數?預先感謝您的幫助

回答

1

有很多方法可以循環使用您感興趣的x的值。您可以執行明確的for循環,也可以使用列表理解。在下面的例子中,我計算了一個3列的二維數組,每個特徵值一個。行數是我們正在使用的x值的數量。

import numpy as np 
import matplotlib.pyplot as plt 

xx = np.linspace(0,100,101) # consider x values 0, 1, .., 100 
eigenvalues = np.array([np.sort(np.linalg.eigvals([[40,0,4],[0,0,4],[4,4,x]])) for x in xx]) 

plt.plot(xx, eigenvalues[:,2],label="largest") 
plt.plot(xx, eigenvalues[:,1],label="medium") 
plt.plot(xx, eigenvalues[:,0],label="smallest") 
plt.legend() 
plt.show() 

enter image description here