2017-09-22 138 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