Inflearn Community Q&A
고유벡터 고유값 차이 질문
Written on
·
459
0
2 1 2
4 2 4
2 1 2
이 벡터의 eigenvalue 와 eigenvector를 구하려고 하는데
eigenvalue 값을 비슷하게 나오는 것 같은데, eigenvector들이 제대로 나오지 않습니다.
x1 =(0, −2, 1), x2 =(1, −2, 0), x3 =(1, 2, 1) 이게 eigen vector 들이어야 하는데, numpy로 계산하니까 이상한 값이 나오더라고요ㅠ 왜이런거죠?
행렬선형대수학
Answer 1
0
tkn
Instructor
안녕하세요.
답변이 많이 늦어져서 죄송합니다.
코드상으론 이상이 없어보이는데 뭔가 구버전의 문제일지도 모른다는 생각이 듭니다.
아래 코드를 사용했을때, 결과는 아래와 같이 정상적으로 출력됩니다. (numerical error내에서)
[-4.4408921e-16+0.j 6.0000000e+00+0.j 0.0000000e+00+0.j]
[-0.66666667 0.66666667 0.33333333]
[0.40824829 0.81649658 0.40824829]
[ 0. -0.89442719 0.4472136 ]
참고로 방금 제가 테스트한 버전은 intel numpy는 아닙니다. 제가 사용한 버전은 아래와 같습니다.
요약하자면, 버전문제인것으로 예측됩니다. (특정버전에 특정오류가 충분히 발생할거라 생각합니다.)
numpy == 1.19.5
scipy == 1.5.4
python == 3.6.8
import numpy as np
from scipy import linalg
a = np.array([[2,1,2],[4,2,4],[2,1,2]], dtype=np.float64)
vals, vecs = linalg.eig(a)
print(vals)
print(vecs[:,0])
print(vecs[:,1])
print(vecs[:,2])





