2020년 7월 31일 금요일

행렬의 고유치와 고유 벡터(Eigenvalue and Eigenvector of Matrix)

[경고] 아래 글을 읽지 않고 "행렬의 고유치와 고유 벡터"를 보면 바보로 느껴질 수 있습니다.


[고유치와 고유 벡터의 시각화]

행렬(matrix) 이론은 1차 연립 방정식인 ${\bf AX} = {\bf B}$를 효율적으로 풀려는 의도에서 시작했다. 행렬로 표현한 ${\bf AX} = {\bf B}$를 뜯어서 보자. 해를 표현하는 열 벡터(column vector) $\bf X$와 연립 방정식 행렬 $\bf A$의 곱 ${\bf AX}$가 평면의 교점을 나타내는 열 벡터 $\bf B$와 같게 하는 $\bf X$를 찾는 과정이 1차 연립 방정식의 해법이다. 하지만 행렬을 1차 연립 방정식의 해법에만 묶어두기에는 행렬의 잠재력과 파급력이 너무 크다. 그래서 행렬의 곱 ${\bf AX}$를 다시 보자. 해 $\bf X$와 연립 방정식 행렬 $\bf A$의 곱인 ${\bf AX}$로 보지 말고, 열 벡터 $\bf X$의 선형 변환 $f({\bf X})$ = ${\bf AX}$라 생각하자. 그러면 어떤 열 벡터 $\bf x$에 대해, 선형 변환을 하더라도 $\bf x$와 같은 방향에 놓이는 열 벡터가 존재할 수 있다. 이를 행렬 관계식으로 표현하면 다음과 같다.

                  (1)

여기서 $\bf x$는 고유 벡터(eigenvector), $\lambda$는 $\bf x$에 대한 고유치(eigenvalue)라 부른다. 고유 벡터와 고유치에 있는 영어 아이건(eigen, 고유한)은 독일어에서 유래한다. 고유치 개념에서 독일 수학의 위대함을 넌지시 볼 수 있다. 만약 고유치 $\lambda$ = $1$이라면, 고유 벡터 $\bf x$는 선형 변환 $\bf A$에 대한 고정점(fixed point)이라 생각할 수도 있다. 즉 고유 벡터는 선형 변환을 하더라도 원래 벡터의 방향을 그대로 가지고 있고, 원래 벡터와 선형 변환한 벡터는 고유치만큼만 다르다. 고유 벡터의 대표적인 예는 [그림 1]에 소개한 회전 연산에 대한 주축(主軸, principal axis)이다. 3차원 공간에서 회전을 하면, 주축 벡터 $\hat e$를 중심으로 벡터가 $\theta$만큼 회전한다. 하지만 $\hat e$와 나란한 벡터는 회전하지 않고 원래 방향을 그대로 유지한다. 그래서 [그림 1]의 회전 연산에 대한 고유 벡터는 주축 벡터 $\hat e$가 된다. 회전 연산은 벡터의 크기를 바꾸지 않기 때문에 $\hat e$의 고유치는 $1$이 된다.

[그림 1] 3차원 공간에서 주축 $\hat e$에 대한 회전(출처: wikipedia.org)

고유 벡터를 식 (1)처럼 정의해서 행렬을 선형 변환으로 보는 관점은 이해가 간다. 하지만 1차 연립 방정식에 사용한 행렬을 식 (1)처럼 썼다고 해서, 고유치와 고유 벡터가 매우 큰 개념일 수 있을까? 이 부분을 이해하려면 식 (1)을 다르게 봐야 한다. 과감하게 행렬과 스칼라(scalar) 개념을 착각해야 한다. 식 (1)의 좌변과 우변이 같다면, ${\bf A} \equiv \lambda$라 생각할 수 있다.[행렬 ${\bf A}$가 $1\times1$ 행렬이 아닌 다음에야 스칼라 $\lambda$와 절대 같을 수는 없다. 하지만 ${\bf A}$의 특성을 표현하는 스칼라로 $\lambda$를 선택할 수는 있다.] 즉 식 (1)에 의해 복잡한 행렬 ${\bf A}$를 단 하나의 스칼라 $\lambda$로 표현할 수 있는 길이 열린다. 우리가 행렬을 분석할 때, ${\bf A}$를 직접 공략하기보다 ${\bf A}$를 바꾼 $\lambda$로 분석하면 더 쉽게 행렬의 여러 특성을 예측할 수 있다. 그래서 행렬 이론의 전반전이 1차 연립 방정식의 해법인 ${\bf AX}$ = ${\bf B}$라면, 후반전은 ${\bf Ax}$ = $\lambda{\bf x}$로 시작한다.
행렬이 주어지면 고유치부터 먼저 정해야 한다. 식 (1)을 이항해서 고유치 $\lambda$에 대한 방정식을 만든다.

                  (2)

식 (2)의 우변에 있는 행렬식이 $0$이 아니면 식 (2)의 좌변에 있는 방정식이 풀린다. 그러면 $\bf x$ = $0$이 되므로, $\lambda$에 관계 없고 의미도 없는 고유 벡터가 된다.[∵ 해 $\bf x$ = $0$은 자명하므로, 고유 벡터에서 제외한다.] 따라서 식 (2)의 우변이 꼭 성립해야 한다. 대수학의 기본 정리(fundamental theorem of algebra)를 쓰면 식 (2)의 우변을 다음처럼 공식화할 수도 있다.

                  (3)

여기서 ${\bf A}$의 차원은 $n \times n$, $\lambda_i$는 $i$번째 고유치이다. 고유치에 대한 행렬식이 $0$이므로, 정방 행렬(square matrix) ${\bf A} - \lambda {\bf I}$를 구성하는 행 벡터 중에서 하나 이상은 선형 종속(linear dependence)이 되어야 한다. 예를 들어 $i$번째 행이 다른 행과 선형 종속이라 가정한다. 그러면 식 (2)의 좌변에 따라 고유 벡터 $\bf x$를 다음처럼 결정할 수 있다.

             (4)

여기서 $x_i \ne 0$이 되도록 $i$번째 행을 선택한다. 이외에도 식 (1)을 이용하면, 정방 행렬 $\bf A$, 고유 벡터 $\bf x$, 고유치 $\lambda$의 관계를 다양하게 증명할 수 있다.

[고유치의 합]
모든 고유치의 합은 정방 행렬의 대각합과 같다.

[증명]
행렬의 대각합(對角合, trace) $\operatorname{tr}({\bf A})$은 대각선 원소의 합으로 정의한다.

                  (5)

식 (3)의 원래 의미는 $\lambda$에 대한 $n$차 방정식이다. 하지만 식 (3)의 처음 두 식에는 임의의 $\lambda$를 넣을 수 있다. 이 경우 $\lambda \to \infty$로 가는 극한(limit)을 생각한다. 그러면 정방 행렬 ${\bf A} - \lambda {\bf I}$은 대각 행렬(diagonal matrix)로 수렴해서 다음 관계가 성립한다.

                  (6)

식 (6)에서 $\lambda^{n-1}$ 항의 계수를 비교하면, 정방 행렬의 대각합은 모든 고유치의 합과 같다.
______________________________

고유치의 합 특성에 의해, 모든 고유치가 양수가 되려면 정방 행렬의 대각합이 반드시 $0$보다 커야 한다.

[고유치의 곱]
모든 고유치의 곱은 정방 행렬의 행렬식이다.

[증명]
식 (3)에서 $\lambda$ = $0$을 대입하면 증명할 수 있다.
______________________________

고유치의 곱 특성에 따라 행렬식이 $0$이면, $0$인 고유치가 반드시 존재한다. 또한 고유치가 $0$인 고유 벡터는 식 (4)에 $\lambda$ = $0$을 대입해 계산할 수 있다. 

[고유치와 고유 벡터의 관계]
서로 다른 고유치에 대한 고유 벡터는 선형 독립이다.

[증명]
고유치 $\lambda_1, \lambda_2$에 대한 고유 벡터를 ${\bf x}_1, {\bf x}_2$라 한다. 고유 벡터 ${\bf x}_1, {\bf x}_2$의 선형 결합에 식 (1)을 적용해서 정리하면 다음과 같다[1].

                  (7)

고유 벡터의 선형 결합에 $\lambda_2$를 곱하면 다음 관계도 얻는다.

                  (8)

식 (7), (8)의 최종 결과를 서로 빼주어 ${\bf x}_2$를 없애자.

                  (9)

고유치는 서로 다르고 ${\bf x}_1$이 영 벡터가 아니기 때문에, 식 (4)의 좌변을 만족하려면 $\alpha_1$ = $0$이 되어야 한다. 비슷한 방법으로 식 (7)에서 ${\bf x}_1$을 없애면 다음과 같다.

                  (10)

따라서 $\alpha_1$ = $\alpha_2$ = $0$이 되어야 하므로, ${\bf x}_1$과 ${\bf x}_2$는 서로 선형 독립이다. 고유 벡터가 두 개보다 더 많더라도 식 (9), (10)과 동일한 방법으로 $\alpha_i$ = $0$을 증명할 수 있다. 그래서 고유치가 서로 다르면 고유 벡터는 항상 선형 독립이다. 
______________________________

[대칭 행렬과 고유치의 관계]
대칭 행렬의 고유치는 항상 실수이다.

[증명]
실수 원소로 구성한 대칭 행렬은 에르미트 행렬(Hermitian matrix)이므로, 고유치는 항상 실수가 되어야 한다.
______________________________

실수 원소만 있는 행렬은 실수 행렬(real matrix)라 한다. 원소의 범위가 더 확장되어 복소수까지 가능하면 실수 행렬의 일반화인 복소 행렬(complex matrix)이 된다. 복소 행렬에 포함되는 켤레 행렬(conjugate matrix)을 이용해 실수 행렬을 다음처럼 정의할 수 있다.

                  (11)

여기서 ${\bf A}^*$는 $\bf A$의 원소에 켤레 복소수를 취한 켤레 행렬이다.

[대칭 행렬과 고유 벡터의 관계]
서로 다른 고유치를 가진 대칭 행렬의 고유 벡터는 서로 직교한다.

[증명]
고유 벡터의 직교성(orthogonality)은 내적(inner product)으로 결정할 수 있다. 정방 행렬 ${\bf A}$의 두 고유 벡터를 ${\bf x}_1$, ${\bf x}_2$, 고유 벡터에 대응하는 고유치를 $\lambda_1, \lambda_2$라 하자. 그러면 다음과 같은 2차 형식(quadratic form)을 계산할 수 있다.

                  (12)

여기서 2차 형식은 스칼라이므로 ${\bf y}^T {\bf Ax}$ = $({\bf y}^T {\bf Ax})^T$ = ${\bf x}^T {\bf A}^T {\bf y}$가 성립한다. 따라서 식 (12)에 의해 ${\bf x}_1$과 ${\bf x}_2$는 서로 직교한다.
______________________________

고유치와 고유 벡터의 유용성은 행렬의 대각화(diagonalization)에서 분명히 확인된다. 원소가 빽빽하게 채워진 행렬은 계산이 매우 어렵지만, 대각화를 해서 대각 행렬로 만들면 효율적인 행렬 처리가 가능하다.

[행렬의 대각화]
정방 행렬 $\bf A$가 서로 다른 고유치를 가지면, 행렬을 대각화할 수 있다.

                  (13)
 
여기서 $\bf S$는 고유 벡터를 열 벡터로 구성한 정방 행렬인 고유 벡터 행렬(eigenvector matrix), $\bf \Lambda$는 고유치로 구성한 대각 행렬인 고유치 행렬(eigenvalue matrix)이다.

[증명]
식 (3)을 보면 $n \times n$ 행렬은 $n$개의 고유치를 가진다. 가정에 의해 고유치가 모두 다르기 때문에, 고유 벡터는 모두 선형 독립이다. 그러면 식 (1)에 따라 다음처럼 행렬의 대각화를 할 수 있다.

                  (14)

정방 행렬 $\bf S$는 열 벡터가 모두 선형 독립이므로, 역행렬이 존재해서 식 (13)처럼 표현할 수 있다.
______________________________

식 (13)과 같은 행렬의 분해는 고유치와 고유 벡터를 사용하기 때문에 고유 분해(eigendecomposition) 혹은 스펙트럼 분해(spectral decomposition)라 부른다. 행렬에서 스펙트럼(spectrum)이란 용어가 나와서 어색할 수 있지만, 주파수(frequency) 분석에 쓰는 푸리에 급수의 직교성처럼 고유 벡터의 직교성을 사용한 분해이기 때문에 스펙트럼이란 말을 쓴다. 행렬의 고유 분해에서 고유치 행렬 $\bf \Lambda$의 알파벳은 고유치 $\lambda$의 대문자인 $\Lambda$를 사용한다. 고유 벡터 행렬 $\bf S$는 스펙트럼 분해에 사용되므로, 알파벳은 S를 선택한다.
대각 행렬인 경우는 고유 벡터가 서로 직교하므로 $\bf S$의 열 벡터의 크기를 $1$로 만들면, $\bf S$는 직교 행렬(orthogonal matrix) $\bf Q$로 쓸 수 있다. 그래서 대각 행렬 $\bf A$에 대한 대각화는 다음처럼 공식화한다.

                  (15)

여기서 $\bf Q$의 역행렬은 전치 행렬이다.

[대각화와 행렬의 곱]

                  (16)

[증명]
식 (13)을 $k$번 곱하면 ${\bf S}^{-1}$와 ${\bf S}$의 곱이 항등 행렬을 만들기 때문에, 식 (16)을 증명할 수 있다.
______________________________

행렬의 대각화가 가능하기 때문에 행렬의 곱도 식 (16)처럼 매우 간략화된다. 즉 행렬 곱의 핵심은 내부에 있는 대각 행렬의 곱이므로, 대각선 원소를 $k$번 곱하면 ${\bf \Lambda}^k$를 쉽게 계산해서 원래 행렬의 곱 ${\bf A}^k$를 효과적으로 얻을 수 있다.

[대각화와 역행렬]

                  (17)

[증명]
식 (17)에 있는 $\bf A$와 ${\bf A}^{-1}$을 서로 곱하면 다음을 얻는다.

                  (18)
______________________________

식 (13)처럼 행렬의 대각화를 한 후 대각 행렬 $\bf \Lambda$의 역행렬을 구하면, 더 쉽게 원래 행렬의 역행렬을 구할 수 있다.

[고유 벡터의 선형 결합]
임의의 행렬 $\bf AX$를 $0$이 아닌 고유치와 고유 벡터의 선형 결합으로 표현할 수 있다.

                  (19)

여기서 $\bf X$는 임의의 열 벡터, 고유치가 $0$인 고유 벡터는 ${\bf x}_\text{null}$, $r$ = $\operatorname{rank}({\bf A})$, 고유치 $\lambda_i$는 서로 다르다.

[증명]
열 벡터 $\bf X$를 고유 벡터의 선형 결합으로 표현할 때, 고유치가 $0$인 기저 ${\bf x}_\text{null}$까지 사용해야 한다. 하지만 식 (19)의 마지막식에 의해, 이 기저는 행렬 합에 기여하지 않으므로 최종 선형 결합에서는 제외한다.
______________________________

식 (19)를 이용하면, 행렬 $\bf AX$의 결과는 고유치가 $0$이 아닌 고유 벡터의 선형 결합으로 완전하게 표현할 수 있다.

[역행렬의 고유치]
역행렬의 고유치는 원래 행렬에 대한 고유치의 역수이며, 역행렬의 고유 벡터는 원래 행렬의 고유 벡터와 같다.

                  (20)

여기서 $\lambda$는 행렬 $\bf A$의 고유치이다.

[증명]
식 (1)을 다음처럼 변형하면 증명할 수 있다.

                  (21)
______________________________


[참고문헌]
[1] G. Strang, Linear Algebra and its Applications, 4th ed., Brooks/Cole, 2006.

[다음 읽을거리]

댓글 없음 :

댓글 쓰기

욕설이나 스팸글은 삭제될 수 있습니다. [전파거북이]는 선플운동의 아름다운 인터넷을 지지합니다.