[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를 사용하여 대칭행렬의 고유값과 고유벡터를 분석하는 방법을 살펴보았습니다. 이를 통해 고유값 분석을 통해 대칭행렬의 중요한 특성을 파악하고, 다양한 응용 분야에서 활용할 수 있을 것입니다.


참고 문헌: