Python 基于numpy的相似矩阵计算
我试图找到一个类似于3x3矩阵的矩阵B:a使用随机可逆矩阵p。 B=P_存货A.PPython 基于numpy的相似矩阵计算,python,numpy,matrix,Python,Numpy,Matrix,我试图找到一个类似于3x3矩阵的矩阵B:a使用随机可逆矩阵p。 B=P_存货A.P import numpy as np from scipy import linalg as LA from numpy.linalg import inv A = np.random.randint(1,10,9).reshape(3,3) P = np.random.randn(3,3) P_inv = inv(P) eig1 = LA.eigvalsh(A) eig1 = np.sort(eig1) B
import numpy as np
from scipy import linalg as LA
from numpy.linalg import inv
A = np.random.randint(1,10,9).reshape(3,3)
P = np.random.randn(3,3)
P_inv = inv(P)
eig1 = LA.eigvalsh(A)
eig1 = np.sort(eig1)
B1 = P_inv.dot(A)
B = B1.dot(P)
eig2 = LA.eigvalsh(B)
eig2 = np.sort(eig2)
print(np.round(eig1 ,3))
print(np.round(eig2,3))
然而,我认为eig1和eig2永远不相等。
我遗漏了什么,还是一个数字错误
谢谢
Kedar您使用的是
eigvalsh
,它要求矩阵是实对称的(或复厄米特矩阵),而随机生成的矩阵不是
删除h
并改用eigvals
修复此问题