我看到了对Hermitian矩阵进行特征分解的方法,但找不到执行Jordan Canonical Form的方法。任何人都可以建议使用功能吗?
答案 0 :(得分:0)
对于一个纯粹的numpy / scipy实现(欺骗没有给出),我建议只做一些事情:
from scipy.sparse import dia_matrix
def JordanForm(a, thr = 10**-5):
data = np.zeros((2, a.shape[0]))
data[0] = scipy.linalg.eigh(a)[0]
data[1,:-1] = (np.diff(data[0]) < thr).astype(int)
return dia_matrix((data, np.arange(2)), shape = a.shape)