【Python入門】階数・退化次数の定理|次元定理を確認する

階数・退化次数の定理|次元定理を確認する_アイキャッチ プログラミング

※ 当サイトはアフィリエイト広告を利用しています。

levtech-ad
スポンサーリンク

階数・退化次数の定理は、Pythonで確認することができます。

本記事では、Pythonを使用した階数・退化次数の定理の確認方法について、詳しくご説明します。

こんな人に読んでほしい
  • Python初心者の人
  • Pythonを使用した階数・退化次数の定理の確認方法について学びたい人
levtech-ad

階数・退化次数の定理

階数・退化次数の定理(rank–nullity theorem)とは、任意の行列\(A\)の階数と退化次数の和は、その行列の列数\(n\)と等しいという定理です。

\(rankA+nulityA=n\)

Pythonを使用して、上記定理を確認してみます。

階数・退化次数の定理の検証

SciPyのscipy.linalgを使用して、上記定理を確認してみます。

#input
import numpy as np
from scipy import linalg

np.random.seed(7)
A = np.random.randint(-9,10,(5,7))
print("行列A:\n{}\n".format(A))

# Aの階数
rank_A = np.linalg.matrix_rank(A)

# Aの核
Ker_A = linalg.null_space(A)

# 退化次数
dim_Ker_A = Ker_A.shape[1]

print("階数 : {}\n".format(rank_A))
print("退化次数 : {}\n".format(dim_Ker_A))
print("階数 + 退化次数 : {}".format(rank_A+dim_Ker_A))
#output
行列A:
[[ 6 -5 -6 -2  5 -1  5]
 [ 1 -1 -2 -3 -5  7 -2]
 [ 3 -9  2 -3  3 -4  7]
 [-9 -7  0  5 -3 -5  5]
 [ 0 -6 -6 -1  7 -8 -9]]

階数 : 5

核の次元 : 2

階数 + 核の次元 : 7

定理を検証することができました。

列数が1の行列の場合、以下のようになります。

#input
import numpy as np
from scipy import linalg

np.random.seed(9)
A = np.random.randint(-9,10,(5,1))
print("行列A:\n{}\n".format(A))

# Aの階数
rank_A = np.linalg.matrix_rank(A)

# Aの核
Ker_A = linalg.null_space(A)

# 退化次数
dim_Ker_A = Ker_A.shape[1]

print("階数 : {}\n".format(rank_A))
print("退化次数 : {}\n".format(dim_Ker_A))
print("階数 + 退化次数 : {}".format(rank_A+dim_Ker_A))
#output
行列A:
[[-8]
 [-1]
 [ 8]
 [-8]
 [-9]]

階数 : 1

退化次数 : 0

階数 + 退化次数 : 1

まとめ

この記事では、Pythonを使用した、階数・退化次数の定理の確認方法について、ご説明しました。

本記事を参考に、ぜひ試してみて下さい。

参考

Python学習用おすすめ教材

Pythonの基本を学びたい方向け

統計学基礎を学びたい方向け

Pythonの統計解析を学びたい方向け

おすすめプログラミングスクール

Pythonをはじめ、プログラミングを学ぶなら、TechAcademy(テックアカデミー)がおすすめです。

私も入っていますが、好きな時間に気軽にオンラインで学べますので、何より楽しいです。

現役エンジニアからマンツーマンで学べるので、一人では中々続かない人にも、向いていると思います。

無料体験ができますので、まずは試してみてください!

\まずは無料体験!/
スポンサーリンク
タイトルとURLをコピーしました