def isSimple(A):
# check if A is a squre matrix
if A.shape[1] != A.shape[0]:
return False
eigenValues, eigenVectors = la.eig(A)
while (eigenValues.shape[0] != 0):
#dictValues.update({eigenValues[0]: 1})
index = np.argwhere(abs(eigenValues - eigenValues[0]) < 0.00001)
algebraicMulti = len(index)
geometricMulti = eigenVectors[:, index].shape[1]
if algebraicMulti != geometricMulti:
return False
#dictValues.update({eigenValues[0]: len})
eigenValues = np.delete(eigenValues, index)
# stack another spaces of eigenvalue and eigenvector
return True
评论列表
文章目录