【Python入門】固有値と固有ベクトル|eig()関数を学ぶ

固有値と固有ベクトル|eig()関数を学ぶ_アイキャッチ プログラミング

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

levtech-ad
スポンサーリンク

行列の固有値と固有ベクトルは、Pythonで簡単に出力することができます。

本記事では、Pythonを使用した行列の固有値と固有ベクトルの出力方法について、詳しくご説明します。

こんな人に読んでほしい
  • Python初心者の人
  • Pythonを使用した固有値や固有ベクトルの確認方法について学びたい人
levtech-ad

固有値と固有ベクトル

固有値(eigenvalue)とは、0でないベクトルを線形写像した際の拡大率(スカラー)のことです。

このとき、0でないベクトルのことを固有ベクトル(eigenvector)といいます。

numpy.linalg.eig()

NumPyのnumpy.linalg.eig()を使用すると、引数に指定した行列の固有値と固有ベクトルをタプルで出力することができます。

結果のタプルは、インデックス0が固有値、インデックス1が固有ベクトルになります。

#input
import numpy as np
np.set_printoptions(precision=3)

np.random.seed(3)

A = np.random.randint(0,10,(2,2))
print("行列A:\n{}\n".format(A))


A_eig = np.linalg.eig(A)

print("固有値:\n{}\n".format(A_eig[0]))
print("固有ベクトル\n{}".format(A_eig[1]))
#output
行列A:
[[8 9] 
 [3 8]]

固有値:
[13.196  2.804]

固有ベクトル
[[ 0.866 -0.866]
 [ 0.5    0.5  ]]

numpy.linalg.eigvals()

NumPyのnumpy.linalg.eigvals()を使用すると、引数に指定した行列の固有値を出力することができます。

#input
import numpy as np
np.set_printoptions(precision=3)

np.random.seed(3)

A = np.random.randint(0,10,(2,2))
print("行列A:\n{}\n".format(A))


A_eig = np.linalg.eigvals(A)

print("固有値:\n{}\n".format(A_eig))
#output
固有値:
[13.196  2.804]

scipy.linalg.eig()

SciPyのscipy.linalg.eig()を使用すると、引数に指定した行列の固有値と固有ベクトルを複素数型のタプルで出力することができます。

結果のタプルは、インデックス0が固有値、インデックス1が固有ベクトルになります。

#input
import numpy as np
np.set_printoptions(precision=3)
from scipy import linalg

A = np.array([[-7 + 3j, 7 + 6j],
              [-4 + 5j, 2 - 4j]])
print("行列A:\n{}\n".format(A))

A_eig = linalg.eig(A)

print("固有値:\n{}\n".format(A_eig[0]))
print("固有ベクトル\n{}".format(A_eig[1]))
#output
行列A:
[[-7.+3.j  7.+6.j]
 [-4.+5.j  2.-4.j]]

固有値:
[-3.921+6.712j -1.079-7.712j]

固有ベクトル
[[ 0.886+0.j    -0.122+0.589j]
 [ 0.457+0.078j  0.799+0.j   ]]

scipy.linalg.eigvals()

SciPyのscipy.linalg.eigvals()を使用すると、引数に指定した行列の固有値を複素数型で出力することができます。

#input
import numpy as np
np.set_printoptions(precision=3)
from scipy import linalg

np.random.seed(3)

A = np.random.randint(0,10,(4,4))
print("行列A:\n{}\n".format(A))

A_eig = linalg.eigvals(A)

print("固有値:\n{}\n".format(A_eig))
#output
行列A:
[[8 9 3 8]
 [8 0 5 3]
 [9 9 5 7]
 [6 0 4 7]]

固有値:
[22.779+0.j -6.936+0.j  0.989+0.j  3.167+0.j]

まとめ

この記事では、Pythonを使用した固有値や固有ベクトルの確認方法について、ご説明しました。

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

参考

Python学習用おすすめ教材

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

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

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

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

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

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

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

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

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