0
我看到了對Hermitian矩陣執行特徵分解的方法,但找不到執行Jordan規範形式的方法。任何人都可以提出一個功能使用?Numpy中是否有內建/簡單的Jordan規範表單方法?
我看到了對Hermitian矩陣執行特徵分解的方法,但找不到執行Jordan規範形式的方法。任何人都可以提出一個功能使用?Numpy中是否有內建/簡單的Jordan規範表單方法?
對於純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)
有在最後一行丟失的圓括號。如果返回值是'dia_matrix((data,np.arange(2)),shape = a.shape)'? –
該函數不能正確計算Jordan範式。嘗試一下,說'a = np.eye(4)'。它應該返回相同的標識矩陣,但它會創建一個3號的Jordan塊。 –