使用 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}
例如,我有以下矩阵:
$$\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}