강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của gyungyoonpark9378
gyungyoonpark9378

câu hỏi đã được viết

Đại số tuyến tính sử dụng Python - Sử dụng NumPy và SciPy

고유벡터 고유값 차이 질문

Viết

·

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로 계산하니까 이상한 값이 나오더라고요ㅠ 왜이런거죠?

 

행렬선형대수학

Câu trả lời 1

0

tkn님의 프로필 이미지
tkn
Người chia sẻ kiến thức

안녕하세요.

답변이 많이 늦어져서 죄송합니다.

코드상으론 이상이 없어보이는데 뭔가 구버전의 문제일지도 모른다는 생각이 듭니다.

아래 코드를 사용했을때,  결과는 아래와 같이 정상적으로 출력됩니다. (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])
Hình ảnh hồ sơ của gyungyoonpark9378
gyungyoonpark9378

câu hỏi đã được viết

Đặt câu hỏi