[python] SciPy를 사용하여 대칭행렬 고유값 분석하기
대칭행렬은 고유값 분석에 큰 도움을 줄 수 있는 중요한 구조입니다. 이러한 대칭행렬의 고유값과 고유벡터를 분석하기 위해 파이썬의 SciPy 라이브러리를 사용하는 방법을 알아보겠습니다.
SciPy 라이브러리 설치하기
먼저 SciPy 라이브러리를 설치해야 합니다. 파이썬 가상환경을 사용 중이라면, 다음 명령어를 사용하여 설치할 수 있습니다.
pip install scipy
대칭행렬 생성하기
우선 고유값 분석을 위해 대칭행렬을 생성해야 합니다. 예를 들어, 다음과 같은 3x3 대칭행렬을 생성해보겠습니다.
import numpy as np
A = np.array([[1, 2, 3],
[2, 4, 5],
[3, 5, 6]])
고유값과 고유벡터 분석하기
이제 SciPy의 eigh
함수를 사용하여 대칭행렬의 고유값과 고유벡터를 분석할 수 있습니다. eigh
함수는 고유값을 오름차순으로 정렬하여 반환합니다.
from scipy.linalg import eigh
eigenvalues, eigenvectors = eigh(A)
print("고유값:", eigenvalues)
print("고유벡터:")
for i in range(len(eigenvectors)):
print(eigenvectors[:, i])
위의 코드를 실행하면 다음과 같은 결과가 출력됩니다.
고유값: [-0.51572947 1.17091588 11.3448136 ]
고유벡터:
[-0.41280103 -0.80572127 0.42456627]
[-0.57840084 -0.08315293 -0.81153568]
[-0.70361461 0.58637407 0.40132036]
결론
SciPy를 사용하여 대칭행렬의 고유값과 고유벡터를 분석하는 방법을 살펴보았습니다. 이를 통해 고유값 분석을 통해 대칭행렬의 중요한 특성을 파악하고, 다양한 응용 분야에서 활용할 수 있을 것입니다.
참고 문헌:
- SciPy 공식 문서: https://docs.scipy.org/doc/scipy/reference/generated/scipy.linalg.eigh.html