如何通过python查找矩阵的特征多项式?

mes*_*sel 4 python scipy python-3.x

假设$ A $是一个n乘以n $的矩阵。我想计算$ A $的特征多项式,即我想计算$$ det(xI-A)$$。

有什么功能可以在python中找到它吗?

dal*_*lum 7

听起来您对符号解决方案感兴趣?特征多项式在数值上没有多大意义,您可能会对特征值更感兴趣。要M在SymPy 中获得符号矩阵的特征多项式,您想使用该M.charpoly方法。

有关更多信息,请参见有关矩阵和线性代数的SymPy文档:http : //docs.sympy.org/latest/modules/matrices/matrices.html

如果要查找一个numpy数组的特征值,numpy.linalg.eigvals(或者numpy.linalg.eigvalsh如果您有一个Hermitian矩阵)就是您想要的。

  • 是的,它们针对两个根本不同的问题。Numpy适用于数值计算,即涉及原始数字的计算,并且特别有效(对于Python模块而言)。另一方面,SymPy类似于Maple或Mathematica,它不提供有效的数值算法,而是利用Python的基本对象结构来允许动态创建符号表达式。在这些表达式上使用`sympy.lambdify`,您可以将它们转换为numpy函数,但是在某些科学领域中,它们具有一些非常有用的用例。 (2认同)