수학/인공지능을 위한 선형대수

18. 대각화 (Diagonalization)

공부중인학생 2021. 12. 29. 01:32

대각화란 주어진 행렬을 대각행렬로 만드는 것을 말합니다. 기본적으로 square matrix를 사용합니다.

 

$D = V^{-1}AV$

 

A라는 matrix에 V와 V의 역행렬을 곱해주어 대각 성분만 남게 만듭니다. 이 방법은 항상 가능한 것이 아니라 상황에 따라 달라집니다. 위에 식을 만족시키는 V를 찾을 수 있는 경우에만 대각화가 가능합니다. V의 shape은 A의 shape과 동일합니다.

 

 

 

 

$VD = AV$란 식을 얻었습니다. A가 (3, 3) 행렬이라고 할 때 V도 (3, 3) 행렬이 됩니다.

 

 

 

 

$AV_1 = \lambda V_1...$

 

여기서 $V$를 Eigenvector $\lambda$를 Eigenvalue로 생각해보면 이전에 배웠던 Eigenvalue, Eigenvector가 만족해야 하는 식과 동일해졌습니다.

 

- 대각화는 Eigenvector, Eigenvalue와 연관성이 있다.

- 대각화를 하냐 안 하냐 = 차원 개수만큼의 linear independent 한 Eigen vector을 찾을 수 있느냐

 

 

 

 

다음과 같이 3과 5라는 Eigenvalue를 찾았고 각각의 고유값에 대한 고유벡터가 다음과 같을 때

 

$\left [ \begin{matrix} 1 \\ 2 \\ 3 \end{matrix} \right] $ $\left [ \begin{matrix} 3 \\ 2 \\ 5 \end{matrix} \right] $

 

행렬 $\times$ 고유벡터 = 고유벡터 $\times$ 고유값이 되므로

- $AV = VD$ 

 

V에 해당하는 행렬은 아래와 같이 나오게 됩니다.

$\left [ \begin{matrix} 1 & 3 \\ 2 & 2 \\ 3 & 5 \end{matrix} \right] $ 

 

square matrix에서 inverse matrix가 존재한다는 것을 생각해보면 여기서 추가적으로 1개의 Eigenvector을 구해서 $3 \times 3$ matrix로 만들어주지 않는 한 inverse matrix가 존재하지 않습니다.

 

- 하지만 matrix에 따라 Eigenvector가 차원만큼 안 나오는 경우도 있습니다. 이런 경우에는 대각화가 불가능합니다.