固有値と固有ベクトル

Ax = λEx
λを固有値、xを固有ベクトルと言う
(A – λE)x = 0
線形変換でベクトルの回転が起こらず、拡大・縮小のみで表現

2×2の行列の場合、固有値と固有ベクトルは必ず2ペア存在する。

import numpy as np

import numpy.linalg as LA
a = np.array([[1,0],[0,2]])
print(a)

print(LA.eig(a))

b = np.array([[2,5],[3, -8]])

print(b)
print(LA.eig(b))

[vagrant@localhost python]$ python app.py
[[1 0]
[0 2]]
(array([1., 2.]), array([[1., 0.],
[0., 1.]]))
[[ 2 5]
[ 3 -8]]
(array([ 3.32455532, -9.32455532]), array([[ 0.96665615, -0.40390206],
[ 0.25607791, 0.91480224]]))

なるほど、確かに2ペアあります。
LA.eig(x)が固有値、固有ベクトルの計算ですね。

c = np.random.randint(-10,10,size=(3,3))

w,v = LA.eig(c)
print(w)
print(v)

[vagrant@localhost python]$ python app.py
[ 4.97854958+7.44028681j 4.97854958-7.44028681j -9.95709916+0.j ]
[[ 0.08381118-0.45630028j 0.08381118+0.45630028j 0.41009134+0.j ]
[ 0.81099969+0.j 0.81099969-0.j -0.22863604+0.j ]
[ 0.30533936+0.18388344j 0.30533936-0.18388344j 0.88292166+0.j ]]