スポンサーリンク
行列のトレース(対角和)は、Pythonで簡単に確認することができます。
本記事では、Pythonを使用した行列のトレースの確認方法について、詳しくご説明します。
行列のトレース
行列のトレース(trace)とは、正方行列の対角和のことです。
線形写像のトレースとして定義することができ、固有値の総和と等しくなります。
numpy.trace
NumPyのnumpy.trace()を使用すると、引数に指定した行列のトレースを出力することができます。
#input
import numpy as np
np.random.seed(3)
A = np.random.randint(0,10,(10,10))
print("行列A:\n{}".format(A))
A_tr = np.trace(A)
print("行列Aのトレース:\n{}".format(A_tr))
#output
行列A:
[[8 9 3 8 8 0 5 3 9 9]
[5 7 6 0 4 7 8 1 6 2]
[2 1 3 5 8 1 8 7 8 1]
[0 5 4 1 5 4 7 6 0 0]
[9 2 4 5 8 8 7 5 1 1]
[1 5 5 7 4 3 0 0 0 0]
[2 2 7 0 5 0 1 4 1 2]
[2 4 8 0 6 0 4 1 5 1]
[8 8 7 0 0 9 1 7 8 7]
[4 0 0 4 3 0 8 2 7 2]]
行列Aのトレース:
42
任意の正方行列\(A\)と\(B\)について、行列積\(AB\)のトレースと行列積\(BA\)のトレースは等しくなります。
以下に確認した例をご紹介します。
#input
import numpy as np
np.random.seed(7)
A = np.random.randint(0,10,(5,5))
print("行列A:\n{}".format(A))
B = np.random.randint(0,10,(5,5))
print("行列B:\n{}".format(B))
AB = np.dot(A,B)
print("行列積AB:\n{}".format(AB))
BA = np.dot(B,A)
print("行列積BA:\n{}".format(BA))
AB_tr = np.trace(AB)
BA_tr = np.trace(BA)
print("行列積ABのトレース:\n{}".format(AB_tr))
print("行列積BAのトレース:\n{}".format(BA_tr))
#output
行列A:
[[4 9 6 3 3]
[7 7 9 7 8]
[9 8 7 6 4]
[0 7 0 7 6]
[3 5 8 8 7]]
行列B:
[[5 0 0 2 8]
[9 6 4 9 7]
[3 3 8 3 0]
[1 0 0 6 7]
[7 9 3 0 7]]
行列積AB:
[[143 99 93 125 137]
[188 141 124 146 210]
[172 105 100 147 198]
[112 96 46 105 140]
[141 117 105 123 164]]
行列積BA:
[[ 44 99 94 93 83]
[135 253 192 212 194]
[105 133 101 99 83]
[ 25 86 62 101 88]
[139 185 200 158 154]]
行列積ABのトレース:
653
行列積BAのトレース:
653
まとめ
この記事では、Pythonを使用した行列のトレースの確認方法について、ご説明しました。
本記事を参考に、ぜひ試してみて下さい。
参考
Python学習用おすすめ教材
Pythonの基本を学びたい方向け
リンク
統計学基礎を学びたい方向け
リンク
Pythonの統計解析を学びたい方向け
リンク
おすすめプログラミングスクール
Pythonをはじめ、プログラミングを学ぶなら、TechAcademy(テックアカデミー)がおすすめです。
私も入っていますが、好きな時間に気軽にオンラインで学べますので、何より楽しいです。
現役エンジニアからマンツーマンで学べるので、一人では中々続かない人にも、向いていると思います。
無料体験ができますので、まずは試してみてください!
\まずは無料体験!/
スポンサーリンク