-
고윳값 분해와 직교 대각화수학/선형대수 2024. 5. 11. 01:04
(이 글에서는 행렬의 모든 원소가 실수인 경우를 다룬다.)
우선 행렬의 대각화의 의미부터 알아보자.
행렬의 대각화
실수인 정사각 행렬 \( A \)가 주어졌을 때 이 행렬에 \( P^{-1} \)와 \( P \)를 곱한 결과인 \( P^{-1} A P \)가 대각 행렬이 된다면 \( A \)는 대각화 가능하다고 말하고, 대각 행렬 \(D\)를 이용하여 \( A = P D P^{-1}\)로 표현하는 것을 행렬의 대각화라고 한다.
어떤 행렬이 대각화된다는 것은 여러모로 편리한 일인데, 예를 들어 \( A^n \)을 계산하기 위해 행렬 곱셈을 여러 번 하는 것이 아니라 \( A^n = P D P^{-1} P D P^{-1} \ldots \, P D P^{-1} = P D^n P^{-1} \)와 같이 간단히 \( A^n \)를 계산할 수 있다.
문제는 행렬들을 곱하는 일은 상대적으로 쉬운데 반해 주어진 행렬을 여러 행렬들의 곱으로 표현하는 것은 쉽지 않다는 것이다. 게다가 모든 행렬이 대각화가 가능한 것도 아니다.
여기에서는 (대각화가 가능한) 행렬을 대각화하는 한 가지 방법을 설명한다.
고윳값과 고유벡터
행렬의 대각화를 위해 고윳값(eigenvalue)과 고유벡터(eigenvector)를 사용할텐데, 이들의 정의는 워낙 유명하므로 여기에서는 간단하게 설명한다.
\( n \times n \) 정사각 행렬 \( A \)가 주어졌을 때
$$ Ax = \lambda x $$
을 만족하는 \( 0 \)이 아닌 벡터 \( x \)가 존재하면 이런 \( \lambda \)와 \( x \)를 각각 고윳값과 고유벡터라고 한다.
고윳값과 고유벡터를 정의하고나서 그 다음으로 관심이 있는 주제로는 이 값들을 실제로 어떻게 구하는지, 어떤 행렬의 고윳값과 고유벡터가 같은지, 또는 어떤 경우에 고유벡터들이 선형 독립적인지 등이 있다.
여기에서는 일단 고윳값과 고유벡터의 쌍을 \( n \)개 찾을 수 있다는 것만 얘기하고 넘어가도록 한다. 다만 일반적으로 이 \( n \)개의 고윳값들이 서로 다르다거나 \( n \)개의 고유벡터들이 항상 선형 독립이라는 의미는 아니다.
고윳값과 대각화의 관계 (고윳값 분해)
고윳값과 고유벡터의 정의까지만 보면 이것과 대각화가 어떤 관계가 있는지 알아채기 쉽지 않다.
하지만 각각의 고윳값 \( \lambda_i \)에 대응되는 고유백터 \( x_i \)들을 생각해보면, \( Ax_i \)들은 \( \lambda_i x_i \)들이기 때문에 고유벡터들을 열벡터로 보고 이런 열벡터들을 \( n \) 개 모아서 새로운 행렬 \( P \)를 만든다면 \( AP \)는 \( \lambda_i x_i (i = 1, \ldots, n) \)들을 열벡터로 하는 행렬이 된다. 그런데 이 \( \lambda_i x_i \)들을 열벡터로 하는 행렬은 다음과 같이 \( P \)와 고윳값 \( \lambda_i \)로 이루어진 대각 행렬의 곱으로 나타낼 수 있다.
$$ P \begin{bmatrix} \lambda_1 & 0 & \dots & 0 \\\ 0 & \lambda_2 & 0 & \vdots \\\ \vdots & 0 & \ddots & 0 \\\ 0 & \dots & 0 & \lambda_n \end{bmatrix} $$
(만약 이 사실이 잘 믿어지지 않는다면 적당히 작은 \( P \)와 대각행렬을 곱해보자.)
따라서 바로 위에서 등장한 대각행렬을 \( D \)라고 하면, \( AP = PD \)라고 쓸 수 있고 결과적으로 \( A = PDP^{-1} \)이 되어 \( A \)가 대각화되었다! (정말?)
바로 위의 문장을 이렇게 적은 것은 이유가 있다. 상황이 그렇게 간단하지 않아서인데, \( AP = PD \) 까지는 특별한 문제없이 얻을 수 있지만, \( P \)의 역행렬이 꼭 존재하지 않을 수도 있기 때문에 항상 \( A = PDP^{-1} \)을 얻을 수 있는 것은 아니다.
즉, \( P \)를 이루는 고유벡터들이 선형 독립인 경우는 그 역행렬이 존재하기 때문에 \( A = PDP^{-1} \)이 성립하지만, 선형 독립인 고유벡터들을 찾을 수 없다면 \( P^{-1} \)가 존재하지 않아서 대각화는 불가능하다.
정리하면 행렬 \( A \)가 대각화 가능한 경우는 정확히 선형 독립인 고유벡터가 \( n \)개 존재하는 경우이고 이 경우 \( PDP^{-1} \)를 \( A \)의 고윳값 분해(Eigendecomposition)라고 한다.
직교 대각화
항상 그렇다는 것은 아니지만 고윳값 분해 \( PDP^{-1} \) 가 되는 상황에서 한 가지 특수한 경우는 \( P \)가 직교 행렬인 경우인데, 이런 경우 직교 대각화 가능하다고 한다.
직교 행렬 \( P \)의 대표적인 성질은 \( P^{-1} = P^T \), 즉 전치행렬이 역행렬이 되는 것이다. 일반적인 경우 어떤 행렬의 역행렬을 구하는 것이 아주 간단하지는 않다는 점을 기억한다면 행과 열의 역할을 바꾸는 것만으로 역행열을 만들 수 있다는건 상당히 이례적이라 할 수 있다.
아무튼 이런 경우라면 고윳값 분해는 \( A = P D P^{-1} = P D P^T \)로 다시 쓸 수 있고, 이렇게 되는 필요조건은 \( A \)가 대칭 행렬이 되는 것이다. \( A^T = P D^T P^T = P D P^T = A \)이기 때문이다.
놀라운 점은 실수 행렬의 경우 이 필요조건이 동시에 충분조건이기도하다는 사실이다(!)
다시 말해 직교 대각화되는 행렬은 대칭이고, 거꾸로 어떤 (실수) 행렬이 대칭이면 직교 행렬인 \( P \)가 존재해서 \( P D P^T \)로 대각화할 수 있기 때문에 직교 대각화 가능성을 판별하는 기준은 그 행렬이 대칭인지 여부이다.
이쯤해서 궁금할 수 있는 것은 실제로 직교 대각화를 가능하게하는 직교 행렬을 어떻게 찾을 수 있는지이다. 위에서 직교 대각화의 필요충분 조건을 제시했지만 그것만으로는 직교 대각화하는 직교 행렬을 찾을 수 있는 것은 아니다.
이를 위해 고윳값과 고유벡터에 대한 두 가지 예비 지식을 (증명 없이) 소개한다.
- 어떤 고정된 고윳값을 만족하는 고유벡터들은 벡터공간을 이룬다. 이 벡터공간을 고유공간(eigenspace)이라고 부른다.
- 대칭 행렬을 가정하면, 서로 다른 고윳값의 고유벡터들은 서로 직교한다.
위 두 가지 사실을 바탕으로 \( n \times n \) 대칭 행렬 \( A \)의 직교 대각화는 다음과 같이 할 수 있다.
- \( n \) 개의 선형 독립인 고유벡터를 찾는다. (이게 가능한 이유는 \( A \)가 대칭 행렬이라서 대각화가 가능하기 때문이다. 즉, 대칭 행렬이라는 것은 꽤나 강력한 조건이다. )
- 위에서 찾은 고유벡터를 고윳값에 따라 분류한다. 다른 고윳값에 대한 고유벡터들은 서로 직교하므로 걱정할 필요없고 하나의 고윳값에 해당하는 고유벡터들은 벡터공간을 이루므로 각각의 벡터공간에서 직교 기저(basis)를 찾는다. 직교 기저를 찾는 전형적인 방법은 Gram-Schmidt 직교화이다. 여기까지 진행하면 \( n \) 개의 직교하는 고유벡터를 가지게 된다.
- \( n \) 개의 직교하는 고유벡터의 길이는 다양할 수 있기 때문에 각각의 고유벡터를 자신의 길이로 나누어 길이가 1인 직교하는 고유벡터를 얻고 앞에서 본대로 이것들로 직교 대각화를 할 수 있다.
'수학 > 선형대수' 카테고리의 다른 글
행렬곱의 의미에 대해 (0) 2024.11.23 특이값 분해 (SVD) (1) 2024.06.14