목록으로

Chapter 4: 고유값과 고유벡터

진행률: 4 / 8
예상 시간: 25분난이도: 중급

고유값과 고유벡터

학습 목표

  • 고유값과 고유벡터의 기하학적 의미
  • 특성방정식과 고유값 계산
  • 대각화와 그 응용

고유값과 고유벡터란?

정의: Av = λv를 만족하는 0이 아닌 벡터 v와 스칼라 λ

  • • λ: 고유값 (eigenvalue)
  • • v: 고유벡터 (eigenvector)

기하학적 의미: 행렬 A에 의한 변환에서 방향이 바뀌지 않는 벡터

고유값 계산 과정

1

특성방정식 설정

det(A - λI) = 0
2

특성다항식 전개

n차 다항식을 얻고 근을 구함

3

고유벡터 계산

(A - λI)v = 0 해결

행렬의 대각화

대각화 조건

  • n개의 선형독립인 고유벡터 존재
  • 대칭행렬은 항상 대각화 가능
  • 서로 다른 고유값 → 대각화 가능

대각화 공식

A = PDP⁻¹
  • • P: 고유벡터 행렬
  • • D: 고유값 대각행렬

응용 분야

PCA

주성분 분석에서 공분산 행렬의 고유벡터 활용

PageRank

구글의 페이지 순위 알고리즘

진동 분석

고유진동수와 모드 해석

고유값 분해 실습

import numpy as np
from numpy.linalg import eig, inv

# 행렬 정의
A = np.array([[4, -2], 
              [1,  1]])

# 고유값과 고유벡터 계산
eigenvalues, eigenvectors = eig(A)

print("고유값:", eigenvalues)
print("고유벡터:\n", eigenvectors)

# 대각화 검증
P = eigenvectors
D = np.diag(eigenvalues)
P_inv = inv(P)

# A = PDP^(-1) 검증
A_reconstructed = P @ D @ P_inv
print("\n원본 행렬:\n", A)
print("재구성된 행렬:\n", A_reconstructed)

# 거듭제곱 계산 (대각화 활용)
def matrix_power(A, n):
    """대각화를 이용한 행렬 거듭제곱"""
    eigenvalues, P = eig(A)
    D_n = np.diag(eigenvalues ** n)
    return P @ D_n @ inv(P)

A_10 = matrix_power(A, 10)
print("\nA^10:\n", A_10)