Numpy 中有 built-in/easy Jordan Canonical Form 方法吗?
Is there a built-in/easy Jordan Canonical Form method in Numpy?
我看到了对 Hermitian 矩阵执行特征分解的方法,但找不到执行 Jordan Canonical Form 的方法。任何人都可以建议使用的功能吗?
对于纯粹的 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)
我看到了对 Hermitian 矩阵执行特征分解的方法,但找不到执行 Jordan Canonical Form 的方法。任何人都可以建议使用的功能吗?
对于纯粹的 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)