绘制矩阵的特征值作为矩阵元的函数

时间:2017-09-22 21:35:59

标签: python numpy matrix eigenvalue

我之前从未使用过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 个答案:

答案 0 :(得分:4)

有许多方法可以循环您感兴趣的x的值。您可以执行显式for循环,也可以使用列表推导。在下面的示例中,我计算了一个包含3列的2维数组,每个特征值对应一列。行数是我们使用的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