行列の階数は np.linalg.matrix_rank()
を用いて求めることができます.例えば逆行列が存在した \(n\) 次元の正則行列の階数を求めると \(n\) になります.
行列の階数 1
import numpy as np # プログラムの先頭でモジュールを読み込む
A = np.array([[2, 0, 1], [-1, 1, 0],[-2, 3, 4]])
rank = np.linalg.matrix_rank(A)
print(A)
print(rank)
[[ 2 0 1] [-1 1 0] [-2 3 4]] 3
逆行列が求まらなかった \(n\) 次元行列の階数を求めると \(n\) より小さくなります.
行列の階数 2
A = np.array([[2, 0, 1], [2, 0, 1],[-2, 3, 4]])
rank = np.linalg.matrix_rank(A)
print(A)
print(rank)
[[ 2 0 1] [ 2 0 1] [-2 3 4]] 2