在Numpy中是否有内置/简易的Jordan Canonical Form方法?

时间:2017-08-02 13:58:50

标签: python numpy linear-algebra

我看到了对Hermitian矩阵进行特征分解的方法,但找不到执行Jordan Canonical Form的方法。任何人都可以建议使用功能吗?

1 个答案:

答案 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)