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$이 아닌 고유 벡터의 선형 결합으로 완전하게 표현할 수 있다. 고유 벡터 ${\bf x}_i$의 크기가 $1$인 경우는 단위 고유 벡터(unit eigenvector) $\hat {\bf x}_i$라고 한다. 단위 고유 벡터를 기저(basis)로 해서 선형 결합을 표현하면, 다양한 수치 계산에 유용하다.

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

                  (20)

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

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

                  (21)
______________________________

고유 분해의 직접적인 응용 중 하나는 행렬의 제곱근(square root of a matrix)이다.

[행렬의 제곱근]
행렬 $\bf A$를 고유 분해(eigendecomposition)하여 $\bf A$의 제곱근을 다음처럼 정의한다.

                  (22)

여기서 ${\bf \Lambda}^{1/2}$는 대각 행렬(diagonal matrix) $\bf \Lambda$의 제곱근[${\bf \Lambda}^{1/2}{\bf \Lambda}^{1/2}$ = $\bf \Lambda$]이며 ${\bf \Lambda}^{1/2}$ = ${\rm diag}(\sqrt{\lambda_1}, \sqrt{\lambda_2}, \cdots, \sqrt{\lambda_n})$처럼 구할 수 있다.
 
[증명]
식 (22)에 정의한 제곱근 행렬을 서로 곱해본다.

                  (23)
______________________________

서로 다른 고유치를 가진 행렬을 고유 분해하면, 식 (22)와 비슷하게 실수 지수를 가진 행렬의 거듭제곱(power of a matrix)을 만들 수 있다.

                  (24)

여기서 $r$은 실수, ${\bf \Lambda}^r$ = ${\rm diag}(\lambda_1^r, \lambda_2^r, \cdots, \lambda_n^r)$이다.

[행렬의 제곱근과 대칭 행렬]
(a) 행렬 ${\bf A}$에 대해 ${\bf A} = {\bf A}^T$ $\Leftrightarrow$ ${\bf A}^{1/2} = ({\bf A}^{1/2})^T$을 만족한다.
(b) 역행렬이 존재하는 행렬 ${\bf B}$에 대해 ${\bf AB} = {\bf BA}$ $\Rightarrow$ ${\bf A}^{1/2} {\bf B} = {\bf B} {\bf A}^{1/2}$이 성립한다.
(c) 대칭 행렬 ${\bf A}, {\bf B}$인 경우 ${\bf AB} = {\bf BA}$ $\Leftrightarrow$ ${\bf A}^{1/2} {\bf B}^{1/2} = {\bf B}^{1/2} {\bf A}^{1/2}$이다.

[명제 (a)의 증명]
행렬 $\bf A$가 대각 행렬이라면, 식 (15)에 의해 고유 분해가 되어서 다음 관계식을 얻는다.

                  (25)

행렬 $\bf A$의 제곱근이 대칭 행렬인 경우는 대칭 행렬의 성질에 의해 ${\bf A}^{1/2}$의 제곱도 대칭 행렬이 된다.

[명제 (b)의 증명]
교환 법칙 ${\bf AB} = {\bf BA}$에 의해 $\bf A$ = ${\bf BAB}^{-1}$이 성립한다. 만약 $\bf C$ = ${\bf BA}^{1/2} {\bf B}^{-1}$로 둔 경우는 ${\bf C}^2$ = $\bf A$가 되어서 $\bf C$는 $\bf A$의 제곱근이다. 따라서 ${\bf C B}$ = ${\bf BA}^{1/2} {\bf B}^{-1} {\bf B}$ = ${\bf BA}^{1/2}$이 얻어진다.

[명제 (c)의 증명]
관계 ${\bf AB} = {\bf BA}$인 경우, 명제 (b)에 의해 ${\bf A}^{1/2} {\bf B}^{1/2}$ = ${\bf B}^{1/2} {\bf A}^{1/2}$이다. 왜냐하면 명제 (b)의 조건에는 $\bf B$의 역행렬만 필요하기 때문이다. 조건 ${\bf A}^{1/2} {\bf B}^{1/2}$ = ${\bf B}^{1/2} {\bf A}^{1/2}$이 주어지면, $\bf AB$ = $({\bf A}^{1/2})^2 ({\bf B}^{1/2})^2$ = $({\bf A}^{1/2} {\bf B}^{1/2})^2$에 의해 왼쪽 식이 만족된다.
______________________________

명제 (b)에 나오는 역행렬의 존재성은 식 (17)에 의해 대각화 가능성으로 치환될 수 있다.

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

[다음 읽을거리]

댓글 4개 :

  1. 안녕하세요 FEM을 공부하다가 에르미트 행렬에 대한 기본지식이 부족해서 블로그 글을 보게 되었습니다. 후배들을 위한 정성이 담긴 자세한 설명 너무 감사드립니다. 날씨도 춥고 이래저래 뒤숭숭하지만 항상 건강하시길 바라겠습니다.

    답글삭제
    답글
    1. DSK님, 방문 감사해요 ^^ 열공하셔서 FEM 분야에 좋은 결과를 만드시길 바래요~~

      삭제
  2. 대학원 준비하는데 정말 많은 도움이 되고 있습니다. 감사합니다.

    답글삭제
    답글
    1. Unknown님에게 도움이 되었다니 기쁘네요 ^^ 원하시는 대학원에 꼭 진학하세요~~

      삭제

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