線形代数〜数値解析諸法に慣れる〜scipy
# 適当に正方行列を作る n = 100 m = np.array(np.random.randn(n**2)).reshape(n,n) # Determinant linalg.det(m) # 逆行列 m_inv = linalg.inv(m) np.allclose(np.dot(m, m_inv), np.eye(n)) # 特異値分解 u, s, v = linalg.svd(m) s_ = np.diag(s) # 特異値分解の出力から行列積を用いてオリジナル行列を算出 svd_mat = u.dot(s_).dot(v) np.allclose(svd_mat, m)