MATLAB 고유값·고유벡터 마스터하기: 실전 가이드
고유값(Eigenvalues)과 고유벡터(Eigenvectors)는 선형대수학의 근본 개념으로 물리학, 공학, 데이터 분석 등 다양한 분야에서 널리 쓰입니다. MATLAB에서 이 개념들을 쉽게 탐색하고 계산할 수 있습니다.
고유값(Eigenvalues)이란?
고유값(λ)은 벡터 공간의 선형 변환과 연관된 스칼라입니다. 변환 중 해당 고유벡터가 스케일링되는 비율을 나타냅니다.
고유벡터(Eigenvectors)란?
고유벡터는 선형 변환이 적용될 때 스칼라 배수만으로 변하는 0이 아닌 벡터입니다. 즉, A가 행렬이고 v가 A의 고유벡터(고유값 λ 대응)라면:
Av = λv
여기서 A는 정방행렬, v는 고유벡터, λ는 고유값입니다.
MATLAB 내장 함수
MATLAB은 고유값과 고유벡터 계산을 위한 내장 함수를 제공합니다.
eig 함수 사용
행렬의 고유값과 고유벡터를 계산합니다.
문법
e = eig(A)
[V,D] = eig(A)
[V,D,W] = eig(A)
e = eig(A,B)
[V,D] = eig(A,B)
[V,D,W] = eig(A,B)
[___] = eig(A,balanceOption)
[___] = eig(A,B,algorithm)
[___] = eig(___,outputForm)
문법 설명
- e = eig(A) — 정방행렬 A의 고유값을 열 벡터로 반환
- [V,D] = eig(A) — 대각 행렬 D에 A의 고유값, 행렬 V의 열에 대응하는 고유벡터 반환. A×V = V×D 관계 성립
- [V,D,W] = eig(A) — 좌측 고유벡터 열을 가진 정방행렬 W 추가 반환. W'×A = D×W' 관계 성립
- 고유값 문제: Av = λv 해 찾기. λ가 고유값, v가 우측 고유벡터. 좌측 고유벡터 w는 w'A = λw' 만족
- e = eig(A,B) — 정방행렬 A, B의 일반화 고유값 열 벡터 반환
- [V,D] = eig(A,B) — 일반화 고유값 대각행렬 D와 우측 고유벡터 열 행렬 V 반환. A×V = B×V×D
- [V,D,W] = eig(A,B) — 좌측 고유벡터 행렬 W 추가. W'×A = D×W'×B
- 일반화 고유값 문제: Av = λBv 해 찾기. λ가 일반화 고유값, v가 우측 고유벡터. 좌측 고유벡터 w는 w'A = λw'B 만족
- balanceOption — "nobalance"로 예비 밸런싱 단계 끄기(기본 "balance")
- algorithm — "chol"로 B의 콜레스키 분해 사용(기본은 A,B 속성 의존, 비대칭 시 "qz" QZ 알고리즘)
- outputForm — "vector"(열 벡터) 또는 "matrix"(대각 행렬) 형식 지정
MATLAB eig() 함수 예제
예제 1: e = eig(A)로 고유값만 계산
% 행렬 A 정의
A = [1, 2, 3; 4, 5, 6; 7, 8, 9];
% 고유값 계산
e = eig(A)
출력:
e =
16.1168
-1.1168
-0.0000
예제 2: [V,D] = eig(A)로 고유값과 고유벡터 동시 계산
% 2×2 행렬 A
A = [2, -1; 4, 3];
% 고유값과 고유벡터 계산
[V, D] = eig(A);
disp('Eigenvalues:'); disp(D);
disp('Eigenvectors:'); disp(V);
출력:
Eigenvalues:
2.5000 + 1.9365i 0
0 2.5000 - 1.9365i
Eigenvectors:
-0.1118 + 0.4330i -0.1118 - 0.4330i
0.8944 + 0.0000i 0.8944 + 0.0000i