python~numpyで固有値,固有ベクトル

はじめに

こんにちは,Keymaleです.今回Pythonで固有値,固有ベクトルの算出の仕方を説明します.手計算でやるとめんどくさいですが,Pythonなら一瞬です.

固有値,固有ベクトル

numpyのlinalgというモジュールを用います.サンプルコードは以下になります.

import numpy as np
import numpy.linalg as LA

a = np.array([[1,5],[3,7]])
b = np.array([[1,5,4],[3,7,2],[17,4,2]])

aeig_val, aeig_vec = LA.eig(a)
beig_val, beig_vec = LA.eig(b)

if __name__ == '__main__':
    print(aeig_val)
    print(aeig_vec)
    print(beig_val)
    print(beig_vec)

LA.eigの引数にnumpyの行列を入れるだけです.第一戻り値に固有値,第二戻り値に固有ベクトルが返ります.

実行すると,

print(aeig_val)
>>> [-0.89897949 8.89897949]

print(aeig_vec)
>>>[[-0.93484692 -0.53484692]
[ 0.35505103 -0.84494897]]

print(beig_val)
>>>[-6.63933547 13.49100615 3.14832933]

print(beig_vec)
>>>[[ 0.44664809 -0.4290092 0.18693557]
[ 0.03286579 -0.44115261 -0.56345552]
[-0.89410588 -0.78824836 0.80471919]]

こんな感じで計算できているのが確認できるかと思います.

今回は以上です.