線形代数〜数値解析諸法に慣れる〜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)