본문 바로가기
수학의 재미/행렬 이론

대칭행렬을 분해합시다 - 고유값 분해(eigen decomposition) #2

by hustler78 2022. 6. 29.
728x90
반응형

이번 글은 

2022.06.03 - [수학의 재미/행렬 이론] - 고유값 분해(eigen decomposition) #1

 

고유값 분해(eigen decomposition) #1

2차원 땅이나 3차원 공간에서 물체의 움직임이나 현상의 변화를 설명할 때, 행렬이 많이 쓰입니다. 또는 숫자의 배열로서 행렬이 쓰이는데, 분석을 쉽게, 또 간단히 하기 위해 주어진 행렬을 더

sine-qua-none.tistory.com

에서 이어집니다. 정방행렬(square matrix)에서 고윳값 분해를 정의했었죠. 복습을 해보자면, $n \times n$ 정방 행렬 $\mathbf{A}$에 대해서 

$$\det(\mathbf{A}-\lambda \mathbf{I_n}) =0\tag{1}$$

을 만족하는 $\lambda$가 고유값(eigenvalue), 또 이 고유값에 대해 $\mathbf{Av}= \lambda \mathbf{v}$를 만족하는 $\mathbf{v}$가 고유벡터라고 했습니다($\mathbf{I}_n$은 $n$차 단위행렬입니다.)

 그런데 수식(1)은 $n$차 방정식이고 복소수 범위에서 근이 존재합니다. 즉, eigenvalue가 복소수가 나올 수도 있다는 얘기죠. 덩달아 eigenvector의 원소들도 복소수가 나올 수 있습니다.

 

그런데 $\mathbf{A}$가 원소가 모두 실수인 대칭행렬이면 훨씬 더 아름다운 결과를 얻습니다.

대칭은 아름다워~

 

 

실수를 원소로 하는 대칭행렬은
○ 고윳값(eigen value)이 실수이고
○ 고유 벡터들은 모두 직교한다.

두 벡터 $\mathbf{v}, \mathbf{w} \in \mathbb{R}^n$가 직교한다는 뜻은 다음과 같습니다.

 

두 벡터가 직교한다는 뜻

$$ \mathbf{v} = \pmatrix{v_1\\v_2\\ \vdots \\v_n} ~,~\mathbf{w} = \pmatrix{w_1\\w_2\\ \vdots \\w_n}$$
이라 할때, $\mathbf{v}, \mathbf{w}$가 직교한다는 뜻은
$$v_1 w_1 + v_2 w_2 +\cdots + v_n w_n =0 $$ 이라는 뜻입니다. 즉 내적(inner product)이 0이라는 얘기인데 내적은 기호로 $\mathbf{v}\cdot \mathbf{w}$라 쓰고 행렬표시로 하면
$$\mathbf{v}\cdot \mathbf{w}= \mathbf{v}^T \mathbf{w} $$
입니다.

 

이제 켤레복소수(complex conjugte)에 대해 살짝 복습해 봅시다.

복소수 $z=a+bi$의 conjugate는 기호로 $\bar{z}$라 쓰고 

$$ \bar{z} = a-bi$$

입니다.  conjugate의 여러 성질이 많은데 몇 가지만 보자면,

conjugate의 성질

복소수 $z, w$에 대해서,
○  $\overline{z+w} = \bar{z} + \bar{w}$
○  $\overline{zw} = \bar{z} \bar{w}$
○  $\bar{z} z \geq 0$ 이고 등호가 성립할 필요충분조건은 $z=0$일 때이다.

3번째 성질은 보이기 쉬운데, $z=a+bi$ 라 놓으면 $\bar{z}z = (a-bi)(a+bi)= a^2+b^2 $이므로 성립하는 것입니다.

 

이런 배경지식을 이용하여 대칭행렬의 고유값과 고유벡터가 가지는 성질을 증명해 봅시다.

 

1. 실수를 원소로 하는 대칭 행렬의 고유값은 실수이다.

대칭행렬 $\mathbf {A}$의 고유값을 $\lambda$,   대응하는 고유벡터를 $\mathbf{v}$ 라 합시다. 즉

$$ \mathbf{A} \mathbf{v} = \lambda \mathbf{v}~,~ \mathbf{v} \neq 0$$

입니다. 실수 행렬이므로 $\bar{\mathbf{A}} = \mathbf{A}$ 이고 ($\bar{\mathbf{A}}$는 행렬의 모든 원소에 conjugate) 

따라서

$$\overline{\mathbf{A}\mathbf{v}} = \overline{\lambda \mathbf{v}} \Rightarrow  \mathbf{A}\bar{\mathbf{v}} =\bar{\lambda}\bar{\mathbf{v}}$$ 

가 성립합니다. 또한 $\mathbf{A}^t = \mathbf{A}$ 를 이용합니다. 증명은 $\bar{\mathbf{v}}^T \mathbf{A}\mathbf{v}$를 두 가지로 해석하여 비교하는 것으로 할 수 있는데요.

$$ \bar{\mathbf{v}}^T \mathbf{A}\mathbf{v} = \bar{\mathbf{v}}^T (\mathbf{A}\mathbf{v}) = \bar{\mathbf{v}}^T (\lambda \mathbf{v}) = \lambda(   \bar{\mathbf{v}}\cdot {\mathbf{v}}),  $$

또, 다른 해석으로

$$ \bar{\mathbf{v}}^T \mathbf{A}\mathbf{v} = (\mathbf{A}\bar{\mathbf{v}})T \mathbf{v}  = (\bar{\lambda} \bar{\mathbf{v}})^T \mathbf{v} = \bar{\lambda} (\bar{\mathbf{v}}\cdot {\mathbf{v}})$$

입니다. 

따라서, $\bar{\mathbf{v}}\cdot {\mathbf{v}} \neq 0$ 이므로

$$\lambda = \bar{\lambda}$$

일 수밖에 없겠죠. 따라서 $\lambda$는 실수입니다. 

 

 

2. 실수를 원소로 하는 대칭 행렬의 고유 벡터는  서로 직교한다.

사실 수식(1)이 중근을 가질 때도 많습니다. 하지만 우선 서로 다른 고윳값을 가지는 고유 벡터들이 직교한다는 것을 먼저 증명해보죠.

서로 다른 eigenvalue $\lambda, \mu$에 대해서 eigenvector를 각각 $\mathbf{x}, \mathbf{y}$ 라 합시다. 즉,

$$ \mathbf{A}\mathbf{x} = \lambda \mathbf{x} ~,~ \mathbf{A}\mathbf{y} = \mu \mathbf{y} $$

입니다. 

 

$$
\begin{align}
\lambda (\mathbf{x}\cdot \mathbf{y}) &= \lambda \mathbf{y}^T \mathbf{x} \\
& = \mathbf{y}^T (\lambda \mathbf{x}) \\
                                                  & = \mathbf{y}^T \mathbf{A}\mathbf{x} \\
&  =(\mathbf{y}^T \mathbf{A}\mathbf{x})^T \\
                                                  & = \mathbf{x}^T \mathbf{A}^T\mathbf{y} \\
                                                  & = \mathbf{x}^T \mathbf{A}\mathbf{y} ~~(\because A^t=A)\\
                                                  & = \mathbf{x}^T \mu\mathbf{y} \\
&  =\mu (\mathbf{x}\cdot \mathbf{y})
\end{align}
$$

입니다(네 번째 등식은 실수의 transpose는 실수, 즉 $\mathbf{y}^T \mathbf{A}\mathbf{x} $가 실수이기 떄문에 성립)

 

$\lambda \neq \mu$이므로  필연적으로 $\mathbf{x} \cdot \mathbf{y} =0$ 입니다. 즉 $\mathbf{x}$와 $\mathbf{y}$는 직교합니다.

 

만일 두 eigen vector가 하나의 eigen value를 공유한다면,  eigen vector 두 개를 선형 결합하여 Gram Schmidt 방법으로 직교하게끔 만들 수 있습니다. 이것까지 증명하긴 너무 번잡하므로 이렇게 말로 때우겠습니다.

 


이제 다시 저번 글로 돌아가 봅시다(여기 참조)

정방행렬 $\mathbf{A}$는

$$ \mathbf{A}\mathbf{Q} = \mathbf{Q}\mathbf{D} $$

로 쓸 수 있다 했습니다. $\mathbf{Q}$는 eigenvector를 열벡터로 하여 이루어진 행렬, $\mathbf{D}$는 eigenvalue를 대각원소로 하는 대각행렬입니다.  그런데 $\mathbf{A}$가 실수 대칭행렬이라는 조건까지 가미되면

 

  • $\mathbf{D}$의 원소는 모두 실수
  • eigen vector의 크기가 1이 되게끔 조절하면 $\mathbf{Q}$가 직교행렬이 되어 역행렬이 존재함. 즉 $\mathbf{Q}^{-1} = \mathbf{Q}^T$ 

까지 만족하므로

 

$$ \mathbf{A} = \mathbf{Q} \mathbf{D} \mathbf{Q}^T $$

로 아주 멋있게 분해가 됩니다. 

(Fact. $\mathbf{Q}$가 직교행렬이면, $\mathbf{Q}\mathbf{Q^T} =\mathbf{I}_n$ 을 만족)

 

 

다음 글에서는 python code를 통하여 이론을 정복해보겠습니다.

728x90
반응형

댓글