使用 numpy.linalg.eig 查找具有未知变量的矩阵的特征值

Finding eigenvalues of a matrix with unknown variables using numpy.linalg.eig

例如,我有以下矩阵:

$$\begin{bmatrix}a+1&1&1\end{bmatrix}$$

我想求 python 矩阵的特征值。 这是我的尝试:

arr = np.array( [[ a+1, 1],
             [ 1, 1]] )
print(np.linalg.eig(arr))

显然,python 告诉我 a 没有定义。但我不想定义一个。 a 应该只是一个变量,我希望特征值由 a.

表示

有什么想法吗?

亲切的问候,

斑马板

ddejohn 是对的。你想要的是一个符号操作,所以使用 sympy:

from sympy import var, Matrix

var('a')
arr = Matrix( [[ a+1, 1],
             [ 1, 1]] )

arr.eigenvals()

给予

{a/2 - sqrt(a**2 + 4)/2 + 1: 1, a/2 + sqrt(a**2 + 4)/2 + 1: 1}