Python で行列のジョルダン標準形を求める - NumPy と SymPy の応用
2023.02.18
Python で行列のジョルダン標準形を求めるには NumPy と SymPy をくみあわせます。
import numpy
from sympy import Matrix
array = numpy.array([[5, 4, 2, 1], [0, 1, -1, -1], [-1, -1, 3, 0], [1, 1, -1, 2]])
matrix = Matrix(array)
P, Jordan = matrix.jordan_form()
print(Jordan)
# Matrix([[1, 0, 0, 0], [0, 2, 0, 0], [0, 0, 4, 1], [0, 0, 0, 4]])
NumPy でつくった配列を SymPy の Matrix で行列にして、jordan_form
関数をつかう。この関数は P とジョルダン標準形のタプルを返します。
ソースコードに使った行列はウィキペディアより参考にしました。