スポンサーリンク
行列の核(零空間)は、Pythonで簡単に計算することができます。
本記事では、Pythonを使用した行列の核(零空間)の計算方法について、詳しくご説明します。
零空間(核)
零空間(null space)とは、ベクトル空間において、\(Ax=0\)を満たす入力ベクトル\(x\)の集合のことです。
scipy.linalg.null_space()
SciPyのscipy.linalg.null_space()を使用すると、引数に指定した行列の零空間(基底ベクトルを並列した行列)を計算することができます。
#input
import numpy as np
np.set_printoptions(precision=3)
from scipy import linalg
np.random.seed(7)
A = np.random.randint(0, 10, (3, 5))
ns = linalg.null_space(A)
print("A:\n{}\n".format(A))
print("ns:\n{}".format(ns))
#output
A:
[[4 9 6 3 3]
[7 7 9 7 8]
[9 8 7 6 4]]
ns:
[[-0.378 0.147]
[ 0.142 0.289]
[-0.267 -0.768]
[ 0.844 -0.075]
[-0.231 0.548]]
Aと零空間の積は零行列になります。
#input
print(np.dot(A,ns))
#output
[[-1.277e-15 5.551e-16]
[-8.882e-16 0.000e+00]
[-8.882e-16 -4.441e-16]]
まとめ
この記事では、Pythonを使用した、行列の核(零空間)の計算方法について、ご説明しました。
本記事を参考に、ぜひ試してみて下さい。
参考
Python学習用おすすめ教材
Pythonの基本を学びたい方向け
リンク
統計学基礎を学びたい方向け
リンク
Pythonの統計解析を学びたい方向け
リンク
おすすめプログラミングスクール
Pythonをはじめ、プログラミングを学ぶなら、TechAcademy(テックアカデミー)がおすすめです。
私も入っていますが、好きな時間に気軽にオンラインで学べますので、何より楽しいです。
現役エンジニアからマンツーマンで学べるので、一人では中々続かない人にも、向いていると思います。
無料体験ができますので、まずは試してみてください!
\まずは無料体験!/
スポンサーリンク