Last Updated on 2024-09-18 by BallPen
행렬의 고유값, 고유벡터를 구하는 방법과 그 의미를 알아봐요.
고유값 문제(eigenvalue problem)란 어떤 입력 벡터 x를 정방행렬 A로 변환했을 때 결과 벡터가 입력 벡터 x의 실수배 λ를 만족하는 경우, λ를 행렬 A의 고유값, x를 λ에 대응하는 고유벡터라고 합니다.
이를 식으로 표현하면 다음과 같아요.
Ax=λx(D1)
고유값 문제란 위 식을 만족하는 고유값 λ와 고유벡터 x를 구하는 구하는 것을 말해요.
그럼 이제부터 고유값 문제 해법과 그 의미를 구체적으로 알아봐요.
아래는 이번 글의 목차입니다.
이 글에서 사용된 그림 파일은 아래 링크에서 다운 받으세요. 맥의 키노트로 작성되었어요.
맥 키노트 파일: eigenvalue_problem.key
1. 고유값 문제
1-1. 정의
일반적으로 벡터 x에 선형 변환 정방행렬 A를 취하면 다른 벡터 x ′가 나옵니다. 식으로 쓰면 다음과 같아요.
Ax=x ′(1-1)
이때 결과 벡터 x′은 입력 벡터 x와는 서로 다른 방향과 크기를 갖게 됩니다.
하지만 어떤 벡터 x는 다음의 경우를 만족하기도 해요.
Ax=λx(1-2)
즉 어떤 벡터 x를 행렬 A로 변환했을 때 원래 벡터 x의 λ실수배로 나오는 거에요. 즉 변환 전 입력 벡터와 변환 후 결과 벡터의 방향이 보존되는 경우가 있다는 거에요.
이때 λ를 행렬 A의 고유값, x를 λ에 대응하는 고유벡터라고 합니다.
고유값 문제란 바로 (1-2)식의 조건을 만족하는 고유벡터 x와 고유값 λ를 구하는 것을 말해요.
1-2. 고유값 문제 의미
아래 [그림 1]의 왼쪽을 보면 검정색 정사각형이 있고, 그 안에 총 12개의 점이 있어요. 그런데 그 정사각형을 가로로 2배, 세로로 1배 확대하는 변환행렬 A를 취했더니 오른쪽 그림과 같이 직사각형으로 바뀌었어요.
[그림 1] 고유값 문제 의미. 벡터 x에 변환을 취하여 Ax를 해주면 x ′가 됩니다. 이때 빨강색과 파랑색 벡터는 Ax=2x와 Ay=1y를 만족합니다.
이때 왼쪽 정사각형 안에 있던 점도 오른쪽 그림의 위치로 바뀌게 될 것을 상상할 수 있을 거에요.
그림에서 1번 점을 원점이라고 했을 때 1번에서 4번을 향하는 빨강색 벡터와 1번에서 9번을 향하는 파랑색 벡터는 변환 전과 후에 벡터의 크기는 다를지라도 방향은 그대로 보존됨을 알 수 있어요.
이를 식으로 쓰면 다음 관계가 성립합니다. 이때 변환 전의 빨강색 벡터를 x라 하고, 파랑색 벡터는 y라고 할게요.
Ax=2xAy=1y(1-3)
하지만 이 두벡터를 제외하고 1번에서 6번을 향하는 자주색 벡터와 10번에서 7번을 향하는 보라색 벡터 들은 모두 크기와 방향이 달라졌음을 알 수 있어요.
따라서 빨강색과 파랑색의 두 벡터만이 (1-2)식의 고유값 문제를 만족하고, 이때 2와 1을 행렬 A의 고유값이라고 합니다. 물론 x와 y는 고유벡터가 되는 거에요.
2. 고유값 문제 풀이 방법
그렇다면 고유값 문제를 어떻게 풀어내는지 그 방법을 알아봐요.
2-1. 고유값
먼저 고유값 λ를 구해봐요.이를 위해서는 우선 (1-2)식의 우변을 좌변으로 이항해봐요.
(Ax−λx)=0(2-1)
그리고 위 식에서 빨강색 벡터의 좌측에 단위행렬 I를 곱해도 식은 여전히 성립하죠.
(Ax−λIx)=0(2-2)
이때 단위벡터를 곱하는 이유는 벡터 x를 공통인수로 밖으로 빼내려고 하는 거에요. 그러면 아래 식과 같이 괄호안의 수식을 행렬연산으로 묶을 수 있어요.
(A−λI)x=0(2-3)
이때 중요한 것은 x=0조건하에서 위 식이 성립하도록 하는 어떤 조건이 필요해요. 이를 위해 위 (2-3)식의 양변에 A−λI의 역행렬을 취해봐요.
(A−λI)−1(A−λI)xIxx=(A−λI)−10=0=0(2-4)
그 결과 위 식과 같이 x가 0이 되어서는 안되는데, x=0이 되는 모순적 결과가 얻어져요. 그러므로 A−λI의 역행렬이 존재해서는 안됩니다.
이때 역행렬이 존재하지 않기 위해서는 A−λI의 행렬식이 0이 되어야 해요.
∣A−λI∣=0(2-5)
예를 들어 3×3 변환 행렬을 가정했을 때 (2-5)식은 다음과 같아요.
∣∣⎝⎛a11a21a31a12a22a32a13a23a33⎠⎞−λ⎝⎛100010001⎠⎞∣∣=0(2-6)
그리고 위 식을 정리하면 다음과 같죠.
∣∣a11−λa21a31a12a22−λa32a13a23a33−λ∣∣=0(2-7)
위 (2-7)식의 행렬식을 구하면 λ의 3차 방정식이 나올거에요. 그리고 그것을 풀면 고유값인 λ를 구할 수 있습니다.
2-2. 고유벡터
그렇다면 고유벡터는 어떻게 구하면 될까요?
이미 고유값 λ를 구했으니 그 값을 (1-2)식에 대입하여 고유벡터의 각 성분을 구하면 됩니다.
3. 고유값 문제 예제 : 고유벡터의 직교성
변환행렬 A가 다음과 같을 때 고유값과 고유벡터를 구해 보세요. 또한 각 고유벡터 사이의 직교 여부를 판정해보세요.
A=⎝⎛20−1020−102⎠⎞(3-1)
3-1. 고유값
우선 고유값을 구하기 위해서는 (2-5)식인 ∣A−λI∣=0을 적용하면 됩니다.
∣∣⎝⎛20−1020−102⎠⎞−λ⎝⎛100010001⎠⎞∣∣=0(3-2)
위 식을 정리하면 다음과 같아요.
∣∣2−λ0−102−λ0−102−λ∣∣=(2−λ)3−(2−λ)=(2−λ)[(2−λ)2−1]=(2−λ)(λ2−4λ+3)=(2−λ)(λ−3)(λ−1)=0(3-3)
따라서 위 식이 성립되기 위해서는 λ=2 또는 λ=3 또는 λ=1이 만족되어야 합니다.
즉, 세개의 고유값이 구해지는데요. 크기순서로 λ1=1, λ2=2, λ3=3으로 정하겠습니다.
3-2. 고유벡터
그럼 이제부터는 고유값에 대응하는 고유벡터를 구해봐요.
[고유값 = 1인 경우]
먼저 고유값 λ1=1인 경우에 대한 고유 벡터 x1이에요.
이를 위해 고유값을 Ax=λx인 (1-2)식에 대입해보세요. 그러면 아래와 같습니다.
⎝⎛20−1020−102⎠⎞⎝⎛x1x2x3⎠⎞=1⎝⎛x1x2x3⎠⎞(3-4)
이제 위 식을 전개한 후 연립하여 풀어 벡터 x1의 각 성분 x1, x2, x3을 구하면 됩니다. 여기서 x1는 고유벡터를, x1은 고유벡터 x1의 한 성분을 나타냅니다. 헷갈리지 마셔요.
⎩⎨⎧2x1−x3=x12x2=x2−x1+2x3=x3(3-5)
그 결과 x1=x3를 만족하는 임의값 a면 되고, x2=0임을 알 수 있어요.
따라서 λ1=1에 대응하는 고유 벡터 x1은 다음과 같습니다.
x1=⎝⎛a0a⎠⎞=a⎝⎛101⎠⎞(3-6)
이때 위 식에서 a는 아무 값이나 대입되어도 성립하지만, 고유벡터의 크기가 1이 되도록 벡터 정규화(vector normalization)를 하는 것이 일반적입니다.
이를 위해서는 행렬 안의 성분이 1, 0, 1이므로 이 벡터의 크기는 다음과 같을 거에요.
12+02+12=2(3-7)
그 결과 2가 나오는데요. 이 값의 역수를 a로 정하면 고유벡터 x1의 크기는 1로 정규화됩니다.
그러므로 고유값 λ1=1에 대응하는 고유벡터 x1은 다음과 같습니다.
x1=21⎝⎛101⎠⎞(3-8)
[고유값 = 2인 경우]
이번에는 고유값 λ2=2인 경우에 대한 고유벡터 x2를 구해봐요.
먼저 고유값을 Ax=λx에 대입하세요.
⎝⎛20−1020−102⎠⎞⎝⎛x1x2x3⎠⎞=2⎝⎛x1x2x3⎠⎞(3-9)
그리고 위 식을 전개해서 고유벡터의 각 성분을 구하세요.
⎩⎨⎧2x1−x3=2x12x2=2x2−x1+3x3=2x3(3-10)
그러면 x1은 0이며 x2는 임의의 숫자 a이면 되고, x3는 0이 되어야 함을 알 수 있어요.
따라서 λ2=2에 대응하는 고유벡터 x2는 다음과 같습니다.
x2=⎝⎛0a0⎠⎞=a⎝⎛010⎠⎞(3-11)
이번에도 벡터 x2의 크기가 1이 되도록 벡터정규화를 하면 되는데요. 각 성분의 크기가 0, 1, 0이므로 벡터의 크기는 아래와 같이 1이 됩니다.
02+12+02=1(3-12)
그러므로 이 값의 역수도 1이므로 (3-11)식의 a를 1로 두면 됩니다.
결국 고유값 λ2=2에 대응하는 고유벡터 x2는 다음과 같습니다.
x2=⎝⎛010⎠⎞(3-13)
[고유값 = 3인 경우]
이번에는 고유값 λ3=3인 경우에 대한 고유벡터 x3입니다. 먼저 고유값을 Ax=λx에 대입하세요.
⎝⎛20−1020−102⎠⎞⎝⎛x1x2x3⎠⎞=3⎝⎛x1x2x3⎠⎞(3-14)
그리고 윗 식을 전개해서 고유벡터의 각 성분을 구하면, x1=−x3을 만족하는 임의의 값 a이면 되고, x2=0이 되어야 합니다.
결국 λ3=3에 대응하는 고유벡터 x3는 다음과 같습니다.
x3=⎝⎛a0−a⎠⎞=a⎝⎛10−1⎠⎞(3-15)
그리고 벡터 정규화를 하면 a=21이 되어야 벡터 x3의 크기가 1이 됩니다.
따라서 λ3=3에 대응하는 고유벡터 x3는 다음과 같습니다.
x3=21⎝⎛10−1⎠⎞(3-16)
3-3. 고유벡터의 직교성
지금까지 주어진 행렬 A에 대한 고유값과, 그 고유값에 대응하는 고유벡터들을 아래와 같이 구했어요.
x1=21⎝⎛101⎠⎞, x2=⎝⎛010⎠⎞, x3=21⎝⎛10−1⎠⎞(3-17)
그런데 이 벡터들은 서로 수직한 특성을 갖고 있는 것으로 알려져 있어요. 그래서 이번에는 이 벡터들의 직교성에 대해 알아보겠습니다.
우선 각 벡터 화살표를 매스매티카로 그려보면 [그림 2]와 같습니다. 참고로 매스매티카 코드는 아래를 참고해주세요.
[그림 2] 고유값 문제 해법을 통해 구한 고유벡터는 서로 직교합니다.
벡터들 사이의 직교성을 알기 위해서는 벡터의 내적을 활용하면 돼요. 만일 두 벡터가 서로 직교한다면 벡터의 내적은 0이 될거에요.
먼저 첫번째와 두번째 고유벡터 사이의 내적입니다.
x1⋅x2=x1Tx2=21(101)⎝⎛010⎠⎞=0(3-18)
이번에는 두번째와 세번째 고유벡터 사이의 내적입니다.
x2⋅x3=x2Tx3=(010)⎝⎛10−1⎠⎞21=0(3-19)
같은 방식으로 첫번째와 세번째 고유벡터 사이의 내적입니다.
x1⋅x3=x1Tx3=21(101)⎝⎛10−1⎠⎞21=0(3-20)
그 결과 모든 고유벡터 사이의 내적이 0이므로 서로 직교함을 알 수 있어요.
흥미롭고 도움이 되는 글이었나요? 리뷰를 부탁드립니다.
1 thought on “고유값 문제(eigenvalue problem)”