python矩阵的特征向量和特征值

时间:2021-01-10 05:52:34

标签: python

#当元素包含一些变量而不是实际数字时,如何使用python找到矩阵的特征值和特征向量?

   from sympy import *
   from numpy import matrix
   from numpy import linalg
   from sympy import Matrix
   import numpy as np 
   m,c,k = symbols('m,c,k')
   A = Matrix( [[0, 0, m,0],[0, 0, 0,2*m],[m,0,0,0],[0,2*m,0,c]])
   B = Matrix( [[-m, 0, 0,0],[0, -2*m, 0,0],[0,0,3*k,-2*k],[0,0,-2*k,2*k]])
   A_inverse = A.inv()
   a = np.array(A_inverse)
   b = np.array(B)
   m= np.matmul(a, b)
   print(B)
   print(A) 
   print(A_inverse)
   w, v = linalg.eig(m) ###this does not work!!!`
   print("w:",w)
   print("v:",v)

1 个答案:

答案 0 :(得分:0)

我不认为 numpy 与 sympy 那样集成,但是,sympy 内置了对角化方法,您可以尝试以下方法

from sympy import *
from numpy import matrix
from numpy import linalg
from sympy import Matrix
import numpy as np 
m,c,k = symbols('m,c,k')
A = Matrix( [[0, 0, m,0],[0, 0, 0,2*m],[m,0,0,0],[0,2*m,0,c]])
B = Matrix( [[-m, 0, 0,0],[0, -2*m, 0,0],[0,0,3*k,-2*k],[0,0,-2*k,2*k]])

(P,D) = A.diagonalize()

然后你可以在 ipython 控制台中输入 D,它会显示答案的乳胶可视化

相关问题