본문 바로가기

선형대수학

[Linear Algebra] Lecture 21, 고유값(Eigenvalues)과 고유벡터(Eigenvectors)

Introduction

이번에 선형대수를 공부하면서 내용을 정리해보았습니다.

강의 영상 : https://ocw.mit.edu/courses/18-06-linear-algebra-spring-2010/video_galleries/video-lectures/

 

Video Lectures | Linear Algebra | Mathematics | MIT OpenCourseWare

This section contains a complete set of video lectures on linear algebra along with transcripts and related resource files.

ocw.mit.edu

스터디 github : https://github.com/jwkweon/study-linear-algebra

 

GitHub - jwkweon/study-linear-algebra

Contribute to jwkweon/study-linear-algebra development by creating an account on GitHub.

github.com

참고한 블로그 :

https://blog.naver.com/PostView.naver?blogId=skkong89&logNo=221390721562&categoryNo=48&parentCategoryNo=0&viewDate=&currentPage=1&postListTopCurrentPage=1&from=postList&userTopListOpen=true&userTopListCount=30&userTopListManageOpen=false&userTopListCurrentPage=1 

 

Lecture 21: Eigenvalues and eigenvectors

Lecture 21: Eigenvalues and eigenvectors (6/18) - 좋아. 이 강의는 고유값 eigenvalues와 고유벡터 ei...

blog.naver.com

https://twlab.tistory.com/46

 

[Linear Algebra] Lecture 21-(1) 고유값(eigenvalues)과 고유 벡터(eigenvectors)

이번 시간에 다룰 내용은 고유값(eigenvalues)과 고유벡터(eigenvectors)이다. 고유값과 고유벡터에 대한 관련 내용도 꽤 방대하기 때문에 몇 개로 나누어서 다루도록 하겠다. 고유값과 고유벡터에 대

twlab.tistory.com

 

(제가 이해하기 쉽게 요약해서 적었으므로 좀더 자세히 공부하고싶다면 위 블로그를 참고하시면 됩니다.)


고유값(Eigenvalue)과 고유벡터(Eigenvector)

어떤 정방행렬 A가 있다고 하자.

다음 식을 봐보자.

$$ Ax $$

시스템 행렬 A는 벡터 x를 입력으로 받아 Ax라는 벡터를 출력해낸다.

우리가 관심있는 것은 입력으로 들어온 벡터와 출력으로 나가는 벡터가 평행할 때 이다.

대부분의 출력 벡터 Ax는 입력 벡터 x와 서로 다른 방향을 가리키는데

어떤 벡터들은 Ax는 x와 평행을 이루게 된다. 이러한 벡터 x들이 고유벡터(Eigenvector)가 된다.

 

고유벡터 x는 시스템 행렬의 거쳐 Ax가 되는데 이는 원래 x에서 몇배가 된다.

이때의 배수를 람다($\lambda$)라고 부르며 람다가 바로 고유값(Eigenvalue)이다.

$$ Ax \quad : \quad {\rm Eigenvectors \ \ parallel \ \ to} \ \ x $$

$$ Ax = \lambda x $$

 

평행하다는 같은방향, 반대방향, 0도 포함되며 람다($\lambda$)는 양수, 음수, 0이 될 수 있고 심지어 복소수도 될 수 있다.

 

고유값이 0일때를 생각해 보자.

$$Ax = 0x$$

$$Ax = 0 $$

위 식을 보면 고유값 0을 가지는 고유벡터는 A의 Null space 그 자체가 된다.

이때, A가 Null space가 존재하려면 A는 특이행렬(singular matrix)이어야 한다.


투영행렬의 고유값과 고유벡터

이번에는 투영행렬(Projection matrix)을 생각해보자. 투영행렬은 Ax=b에서 우변 벡터 b를 A의 column space에 존재하는 벡터들 중 가장 유사한 벡터로 만드는 행렬이다.

그렇다면 투영행렬의 고유값은 무엇이 될까?

 

$$ Ax = b $$

$$ P= A(A^T A)^{-1} A^T $$

$$ p = Pb $$

A의 column space 상에 있는 벡터 $a_1$을 투영행렬 P에 곱하면 아무런 변화도 일으키지 않을 것이다.

마찬가지로, A의 column space 상에 있는 벡터 $a_2$도 아무런 변화를 일으키지 않을 것이다.

왜냐하면, $a_1$과 $a_2$는 이미 투영된 벡터들이기 때문이다.

$a_1$과 $a_2$는 아무런 변화가 없기 때문에 방향도 그대로고 크기도 그대로이다.

따라서, A의 column space 상에 있는 모든 벡터가 고유벡터가 되며 고유값은 1이 된다.

$${\rm Any \ \ vectors} \ \ x \ \ {\rm in \ \ plane} \ \ : \ \ Px = x, \ \ \lambda = 1 $$

 

또 다른 고유벡터는 없을까?

일단, 3차원이라면 3개의 서로 독립인 고유벡터가 있다. (n차원이면 n개의 서로 독립인 고유벡터)

3개 중 2개는 A의 column space상에 있을 것이고,

나머지 하나는 A의 column space에 수직인 벡터들일 것이다.

왜냐하면 평면에 수직인 벡터를 투영시키면 0이 되기 때문이다. 이는 즉 고유값이 0이라는 의미이다.

$${\rm Any \ \ vectors} \ \ x \ \ {\rm \bot \ \ plane} \ \ : \ \ Px = 0, \ \ \lambda = 0 $$

따라서, 투영행렬의 Null space상에 있는 벡터들이 나머지 하나의 고유벡터가 되고 고유값은 0이 된다.


치환행렬의 고유값과 고유벡터

이번에는 치환행렬(Permutation matrix)에 대해 알아보자. 다음과 같은 치환행렬 A가 있다.

$$ A = \begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix} $$

치환행렬을 벡터에 곱하면 벡터의 성분 위치를 서로 바꾼다.

만일, 벡터 x가 다음과 같다고 해보자.

$$ x = \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} $$

Ax를 구해 치환행렬의 고유값과 고유벡터를 찾아보자.

$$ Ax = \begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} = \begin{bmatrix} x_2 \\ x_1 \end{bmatrix} \ $$

위와 같이 치환행렬은 성분을 서로 바꿔버린다. 성분이 서로 바뀌면 방향이 달라지는 경우가 많다.

그러면 어떻게해야 원래 벡터와 방향이 같을까?

바로 각 성분이 서로 동일해야 한다. 다음과 같이 1로 같게 할 수 있다.

$$ x = \begin{bmatrix} 1 \\ 1 \end{bmatrix} $$

$$ Ax = \begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix} \begin{bmatrix} 1 \\ 1 \end{bmatrix} = \begin{bmatrix} 1 \\ 1 \end{bmatrix} \ $$

$$ Ax = x $$

따라서, 고유값 람다($\lambda$)는 1임을 알 수 있다.

 

여기서, 2x2의 행렬이니 고유값은 총 2개 있을 것이고, 나머지 하나를 생각하자.

아마, 고유값($\lambda$)이 -1일 것이다. 즉, 방향이 반대로 바뀌는 형태일 것이다.

$$ Ax= -x$$

위 식을 유도하기 위해 x를 다음과 같이 설정하면 된다.

$$ x = \begin{bmatrix} -1 \\ 1 \end{bmatrix} $$

$$ Ax = \begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix} \begin{bmatrix} -1 \\ 1 \end{bmatrix} = \begin{bmatrix} 1 \\ -1 \end{bmatrix} \ $$

$$ Ax= -x$$

 

여기서 하나의 특별한 규칙이 있다.

행렬의 대각성분의 합을 trace라고 하는데 이 trace가 고유값의 합과 같다는 특징이 있다.

위의 치환행렬을 다시 봐보자.

$$ A = \begin{bmatrix} (0) & 1 \\ 1 & (0) \end{bmatrix} $$

$$ 0 + 0 = 1 + (-1) = 0 $$

 

$$ {\rm Sum \ \ of \ \ \lambda_s = trace \ \ of \ \ } A $$

$$ \lambda_1 + \lambda_2 + \ \ \cdots \ \ + \lambda_n = a_{11} +a_{22} +\ \ \cdots \ \ + a_{nn} $$

 

이 규칙을 통해 고유값 1을 하나 찾으면 나머지 고유값은 -1임을 바로 알 수 있다.

특히 2x2에서 쓰기 좋은 규칙이다.

 

또 하나의 규칙은 행렬 A의 행렬식이 고유값들의 곱과 같다는 것이다.

$$ {\rm product \ \ of \ \ \lambda_s = determinant \ \ of \ \ } A $$

$$ \lambda_1 \lambda_2  \ \ \cdots \ \  \lambda_n = | A | $$

 

참고로 위 치환행렬은 대칭행렬의 형태이고 고유값이 실수(real)가 나오게 된다.

여기서 고유벡터에 대해 주목해보면 고유벡터의 내적값이 0임을 알 수 있다.

따라서, 이 2개의 고유벡터가 서로 수직(perpendicular)함을 알 수 있다.

$$ (1, \ \ 1) \cdot (-1, \ \ 1 )  = 0 $$


고유값과 고유벡터의 계산 방법

그렇다면 고유값과 고유벡터를 어떻게 찾을까? 아래 식을 풀면 된다.

$$ Ax = \lambda x $$

$$ Ax - \lambda x  = 0  $$

$$ (A- \lambda I ) x = 0 $$

여기서 $(A- \lambda I)$는 A에서 $\lambda I$만큼 이동한 행렬인데,

 x가 0이 아닌 벡터라면 $(A- \lambda I)$는 특이행렬(singula matrix)이 된다는 거다.

$$ det \ \ (A- \lambda I) = 0 $$

이렇게 x가 없는 고유값($\lambda$)에 대한 방정식을 얻었다.

이것을 특성 방정식(Characteristic equation) 또는 고유값 방정식(Eigenvalue equation)이라고 부른다.

이 아이디어를 통해 고유값을 먼저 찾는다.

하나의 고유값을 찾는게 아닌 n개의 서로 다른 람다를 찾아야 한다.

아마도 n개의 서로 다른 람다는 아닐 것이고 람다값은 중복될 수도 있다.

하지만, 반복된 람다값은 모든 문제의 원인이 된다. 일단은 서로 다른 람다값이라 생각하고 풀어보자.

 

이제, 고유값을 찾았으니 고유 벡터를 찾아야한다. 어떻게 찾을까?

$$ (A- \lambda I ) x = 0 $$

이 식에서 행렬 $(A- \lambda I)$가 특이행렬이니깐 Null space를 찾으면 된다.

Null space는 우리가 여태까지 배워왔던 방식을 통해 구하면 된다.

이때, free variable을 어떻게 설정하냐에 따라 여러개의 고유벡터를 찾을 수 있다.

 

한번 예제로 풀어보자. 다음과 같은 2x2의 대칭행렬 A가 있다고 해보자.

$$ A = \begin{bmatrix} 3 & 1 \\ 1 & 3 \end{bmatrix} $$

$$ det (A- \lambda I) $$

$(A- \lambda I)$ 행렬식은 A의 행렬식의 대각성분에 람다를 뺀 형태가 된다.

$$ = \begin{vmatrix} 3 - \lambda & 1 \\ 1 & 3 - \lambda \end{vmatrix} $$

$$ = (3- \lambda)^2 -1 $$

$$ = \lambda^2 - 6 \lambda + 8 $$

여기서 2x2에서는 다음과 같은 특이한 특징이 있다.

위 결과에서 일차항의 계수인 숫자 6은 A의 trace(3+3)와 같고 상수항인 8은 A의 행렬식과 같다.

$$ = ( \lambda - 4 ) ( \lambda - 2) $$

$$ \therefore \ \ \lambda_1 = 4, \ \ \lambda_2 = 2 $$

 

이제 고유값을 구했으니 고유벡터를 구해보자.

 

먼저, $\lambda_1 = 4 $에 대해서 고유벡터를 찾아보자.

$$ (A- 4 I ) x = 0 $$

$$ \begin{bmatrix} -1 & 1 \\ 1 & -1 \end{bmatrix} x = 0 $$

이제, 이 특이행렬의 Null space의 존재하는 벡터가 고유벡터가 된다.

여기서는 고유벡터를 쉽게 구할 수 있다.

$$ x_1 = \begin{bmatrix} 1 \\ 1 \end{bmatrix} $$

이 벡터는 Null space의 기저가 되고 이제 고유벡터의 스칼라배인 직선에 있는 모든 벡터가 고유벡터가 된다.

 

이번에는 $\lambda_2 = 2 $에 대해서 고유벡터를 찾아보자.

$$ (A- 2 I ) x = 0 $$

$$ \begin{bmatrix} 1 & 1 \\ 1 & 1 \end{bmatrix} x = 0 $$

여기서 x의 free variable인 2번째 성분을 1로 하면 쉽게 구할 수 있다.

$$ x_2 = \begin{bmatrix} -1 \\ 1 \end{bmatrix} $$


행렬의 대각성분과 고유값과의 관계

이전의 치환행렬과 바로 위에서 배운 대칭행렬의 관계를 찾아보자.

$$ A = \begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix} $$

기존의 치환행렬에 $3I$를 더하면 아래의 대칭행렬이 된다.

$$ A = \begin{bmatrix} 3 & 1 \\ 1 & 3 \end{bmatrix} $$

이때, 고유값과 고유벡터에 무슨일이 일어났을까?

 

치환행렬의 고유값은 1, -1이고 고유벡터는 (1, 1), (-1, 1)이다.

대칭행렬의 고유값은 4, 2이고 고유벡터는 (1, 1), (-1, 1)이다.

 

여기서 알 수 있는 관계는 고유값은 3만큼 더한 형태($3I$여서)가되고 고유벡터는 그대로이다.

 

다시한번 식으로 봐보자.

$$ Ax = \lambda x $$

라는 식이 있다. 여기서 A에 $3I$를 더해보자.

$$ (A+3I)x = Ax + 3Ix = Ax+3x $$

따라서 좌변에도 $3x$를 더해주면 다음과 같은 식이된다.

$$ (A+3I)x = \lambda x + 3x = (\lambda + 3) x $$

$$ (A+3I)x = (\lambda + 3) x $$

따라서, A에 $3I$를 더한경우 고유값($\lambda$)에 3이 더해지고 고유벡터인 $x$는 그대로 유지되는 것을 확인했다.


고유값, 고유벡터의 선형성

이렇게 행렬의 덧셈으로 고유값을 다룰 때 주의해야할점이 있다.

$$ Ax = \lambda x $$

A의 고유값을 알고 있다고 해보자.

$$ Bx = \alpha x $$

마찬가지로 B의 고유값도 알고있다고 해보자.

$$ (A+B)x = (\lambda + \alpha) x $$

위 식이 성립할까?

정답은 아니다. 왜냐하면 서로의 고유값이 달라 고유벡터 x가 다르기 때문이다.

 

행렬의 덧셈 $A+B$뿐만아니라 행렬의 곱셈$AB$도 고유값에서는 어떠한 의미를 얻을 수 없다.

결론적으로 고유값, 고유벡터에 있어서 행렬끼리의 덧셈, 곱셈은 선형적이지 않다.


회전행렬의 고유값과 고유벡터

이번에는 회전행렬(Rotation matrix)에 대해 알아보자. 다음과 같은 회전행렬 R이 있다.

$$ R = \begin{bmatrix} \cos \theta & - \sin \theta \\ \sin \theta & \cos \theta \end{bmatrix} $$

여기서 $\theta = 90^\circ $인 Q행렬을 주로 사용하는데 이는 직교행렬의 매우 중요한 예제와 같은 것이다.

$$ Q = \begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix} $$

Q행렬의 고유값에 대한 두가지 식은 다음과 같다.

$$ {\rm trace} =  0 = \lambda_1 + \lambda_2 $$

$$ det \ \ Q = 1 = \lambda_1 \lambda_2 $$

여기서 2가지 의문이 생긴다.

람다1과 람다2가 있는데 더해서 0이 되고 곱해서 1이 되는 값은??

어떤 벡터가 회전한 후에도 그 이전벡터와 같은 방향을 유지할 수 있을까??

 

한번, 일반적으로 고유값을 구하는 방식으로 람다1과 람다2를 구해보자.

$$ det  \ \ (Q - \lambda I) $$

$$ = \begin{vmatrix} - \lambda & -1 \\ 1 & - \lambda \end{vmatrix} $$

$$ = \lambda^2 + 1 =0 $$

$$ \therefore \quad \lambda_1 = i, \quad \lambda_2 = - i $$

실수 행렬 Q이지만 고유값은 허수가 나왔다. 그리고 위의 고유값들은 서로 켤례 복소수(complex conjugates)이다

 

만약 우리가 대칭행렬이나 거의 대칭행렬에 고정한다면 고유값은 실수로 남아있을것이다.

위의 Q행렬은 $Q^T = -Q$가 된다. 따라서, 대각선을 기준으로 뒤집으면 모든 부호가 변경되는 비대칭행렬(Anti-symmetric matrix)이다.

이러한 case는 순수하게 허수인 고유값만 갖게 되는 굉장히 특이한 case이다.


삼각행렬의 고유값과 고유벡터

이번에는 삼각행렬(Triangular matrix)에 대해 알아보자.

앞서 대칭행렬에서 봤던 식에서 원소 하나를 0으로 만들어서 상삼각행렬을 만들어보자.

$$ A = \begin{bmatrix} 3 & 1 \\ 0 & 3 \end{bmatrix} $$

삼각행렬이기 때문에 행렬식을 구하는건 쉽다.

$$ det \ \ (A- \lambda I ) = \begin{vmatrix} 3 - \lambda & 1 \\ 0 & 3 - \lambda \end{vmatrix} = (3- \lambda )(3- \lambda)$$

따라서, 삼각행렬에서 행렬식은 대각성분의 곱이되고, 고유값은 대각성분의 값 자체가 된다.

$$ \therefore \quad \lambda_1 = 3, \quad \lambda_2 = 3 $$

고유값이 3으로 반복되고 있고, 대각선에서 고유값을 바로 구할 수 있다.

하지만, 이러한 행렬은 비관적이다.

먼저, $\lambda_1 = 3 $으로 고유벡터를 구해보자.

$$ (A- \lambda I) x = \begin{vmatrix} 0 & 1 \\ 0 & 0 \end{vmatrix} x = 0 $$

$$ x_1 = \begin{bmatrix} 1 \\ 0 \end{bmatrix} $$

이번에는 $\lambda_2 = 3 $로 고유벡터를 구하는데 x2는 당연히 위 x1과 똑같이 나올 것이다.

우리는 서로 독립인 고유벡터를 구하고 싶지만 이러한 행렬은 2번째 독립인 고유벡터 x2가 없다.

따라서, 단 하나의 독립적인 고유벡터를 가지고 있다.

이러한 행렬을 degenerate matrix라고 부른다.