Python 将矩阵的特征值绘制为矩阵元素的函数

Python 将矩阵的特征值绘制为矩阵元素的函数,python,numpy,matrix,eigenvalue,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的函数呢?提前感谢您的帮助有很多方法可以循环查看您感兴趣的x的值。您可以

我以前从未使用过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的函数呢?提前感谢您的帮助

有很多方法可以循环查看您感兴趣的
x
的值。您可以为循环执行显式的
,也可以使用列表理解。在下面的例子中,我计算了一个包含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()
给予