본문 바로가기

수학

[선형대수-1] 행렬대각화 : 행렬의 고유값과 고유벡터의 기하학적 의미

728x90

행렬?

아마 이 글을 읽으시는 분 중에서 행렬을 모르시는 분은 없을 거라 생각합니다. 이 글을 읽는 대부분의 분들은 네이버나, 구글에서 고유값, 고유벡터 등을 검색어로 이 글을 접하시게 됐을 텐데, 위 검색어로 검색을 했다는 것은 행렬에 대해서는 알고 있지만, 행렬의 고유값과 고유벡터가 무엇인지를 모르시는 경우가 대부분일거라고 생각합니다. 행렬을 아는 사람에게 왜 행렬에 대해서 이야기를 하나면, 행렬이 무엇인지를 다시 한 번 생각해 보면 행렬의 고유값과 고유벡터가 어떤 의미를 갖는지에 대해서 좀 더 쉽게 혹은 좀 더 깊이 있게 이해할 수 있기 때문입니다.

제가 고등학교에 다닐 때는 행렬은 수학1에서 배웠습니다. 그 당시 교육과정(매우 오래전의 이야기 입니다)은 고등학교 1학년에서 공통 수학을, 2학년에서 수학1을, (이과의 경우) 3학년에서 수학2를 배웠습니다. 행렬은 수학1에서 나오고요. 잘 기억은 나지 않지만, 교과서 혹은 거의 교과서나 다름이 없었던 홍성대의 수학의 정석에서 행렬에 대해서 소개를 할 때, 행렬의 활용에 대해 아래와 같이 설명하였습니다.

 

희는 사과 3개, 배 2개를 사려고 한다. A가게에서는 사과 하나에 100원, 배 하나에 200원이며, B가게 에서는 사과 하나에 200원, 배 하나에 300원에 판매를 한다. 영희가 A가게에서 구입할 때의 가격을 x, B 가게에서 구입할 때의 가격을 y라고 하면,

$$x = 100 \cdot 3 + 200 \cdot 2, y = 200 \cdot 3 + 300 \cdot 2$$

가 되고, 이를 간단하게(이쁘게) 표현하면

 

$$\begin{pmatrix}x \\y \end{pmatrix} = \begin{pmatrix}100 \cdot 3\ +200 \cdot 2 \\200\cdot 3 +300\cdot 2\end{pmatrix}$$

 

가 되고, 이를 일반화 하여 각 가게의 과일 가격을 $ \begin{pmatrix}100&200\\200&300\end{pmatrix} $ , 사려고 하는 과일의 숫자를 $(a,b)^T$, 최종 가격을 $(x,y)^T$ 로 나타낸다면,

 

$$\begin{pmatrix}x\\y\end{pmatrix} = \begin{pmatrix}100&200\\200&300\end{pmatrix}   \begin{pmatrix}a\\b\end{pmatrix}  = \begin{pmatrix}100 \cdot a + 200 \cdot b\\200 \cdot a + 300 \cdot b\end{pmatrix}$$

 

로 쓸 수 있다.

 

이 과정에서,

 

1) 각 가계의 과일 가격 을 표현하기 위해서 "행렬" 이라는 것을 도입하였고,

2) $x = 100 \cdot a + 200 \cdot b, y = 200 \cdot a + 300 \cdot b$ 와 같은 계산을 하기 위해서 행렬과 벡터의 곱을 위와 같이 정의

 

하였습니다. 이 단계에서 자연스럽게 떠 오르는 질문은

 

1) $x, y$를 구할 때 굳이 왜 저런 방식으로 구해야하는지

2) 행렬의 곱은 왜 각 성분별 곱이 아니라, 저렇게 이상한 방식으로 곱하게 되는지

3) 행렬의 곱에서는 왜 $AB = BA$ 가 성립하지 않는지

 

였습니다.

 

행렬은 선형 변환을 표현한 것이다


사실, 위 질문들은 "행렬은 사실 선형 변환이다" 라는 것을 생각하면 쉽게 이해가 됩니다. 교등학교 과정에서는 선형 변환과 이와 관련된 선형대수학과 관련된 개념들을 소개할 수 없기 때문에, 충분한 이유를 설명하지 않고 행렬의 곱을 위와 같이 거의 반 강제적으로 정의할 수 밖에 없었습니다.

즉, 함수의 입력 변수를 "사과 a개, 배 b개" 라 하고 출력 변수를 "A가게의 비용, B가게의 비용" 인 함수로 생각하는 것 입니다. 함수의 정의역은 $(a,b)$와 같이 2차원 벡터로 나타낼 수 있고(물론 a,b는 0을 포함한 양의 정수이어야 하지만 일반적으로 실수라고 가정하겠습니다), 함수의 치역 역시 $(A, B)$ 이렇게 2차원 벡터로 나타낼 수 있습니다

 


함수라는 것은 단순히 더하기 빼기를 하는 것 보다는 훨씬 더 일반적인 연산이기에 행렬의 곱의 성분을 구하는 과정이 좀 이상해 보이더라도 그리 이상하지는 않습니다. 합성함수 f*g 는 g*f와 다르다는것을 직관적으로 알 수 있기에 행렬곱의 교환법칙이 성립하지 않는 것도 자연스럽게 받아 들일 수 있습니다. (팬티를 입고 나서 바지를 입는것은 정상적이지만, 바지를 입고나서 팬티를 입는 것은 비정상적입니다)

단순히 위 1), 2), 3)에 대한 질문의 답을 얻는 과정 뿐 아니라 수학의 거의 모든 과정에서 행렬이 나오면, 일단 행렬은 단순한 숫자의 나열이라고 생각하기 보다는 항상 "행렬 = 선형 변환" 을 염두해 두는 것이 좋습니다. 행렬은 함수입니다.

 

 

행렬의 고유값과 고유벡터

 

대학교 수준에서 행렬에 대해서 공부하면, 교과과정의 앞 부분에 나오면서도 매우 중요한 개념은 행렬의 대각화입니다. 저는 대학교 2학년때, 한 학기 선형대수학을 공부하였는데, 그 당시에는 다양한 이론과 정리에 대해서 공부했지만, 현재까지도 기억에 남으면서 가장 많이 활용한 개념은 행렬의 대학화이며, 행렬의 대각화와 관련된 정리 중 하나인 "대칭행렬(일반적으로 Herimitian 행렬)은 대각화 가능하고, 고유값은 항상 실수이다"가 가장 기억에 남습니다. 물론 개인적인 경험에 국한될 수 도 있지만, 그만큼 행렬의 대각화는 선형대수, 그리고 더 나아가 선형대수를 활용하는 수학, 물리학의 분야에서 매우 중요한 개념이라고 생각합니다.

 

행렬의 대각화가 어떤 개념인지, 고유값과 고유벡터를 어떻게 생각하면 되는지를 간단한 예를 통해서 설명해 보도록 하겠습니다.

 

가장 간단하게 2차 정사각행렬, 2 x 2 행렬에 대해서 생각하도록 하겠습니다. 구체적인 예시를 들으면 더 좋으니, 행렬 A

 

$$A = \begin{pmatrix}\frac{3}{2}&1\\1&\frac{3}{2}\end{pmatrix}$$

 

에 대한 고유값과 고유벡터를 생각해 보도록 하겠습니다.

 

 

(설명의 편의, 그리고 개념적 이해의 편이를 위해서 예시를 일반화 시키는 과정에서 행렬 A를 실수-대칭행렬(real symmetric matrix)로 국한하였습니다. 그렇지 않은 경우에 대해서는 다음 포스팅에서 설명하도록 하겠습니다)

 

행렬은 앞서 설명한대로 선형 변환이기 때문에, 이 선형 변환에 의해서 정의역의 원소가 어떻게 변화하는지를 먼저 알아보는것이 중요합니다. 일반적으로 위 선형 변환의 정의역은 2차원 공간의 모든 점이고, 치역은 역시 2차원 공간의 모든 점 입니다. 따라서 정의역의 각 점이 어떻게 변화하는지에 대해서 알아보는 것도 좋지만, 정의역 공간 그 자체게 어떻게 변화하는지를 생각해 보는 것이 더 좋습니다.

위 그래프는 행렬 A에 의해서 정의역의 공간(실선으로 표시한 정사각형)이 대각선 방향으로 길쭉한 평행사변형(점선으로 표시한 평행사변형)으로 변하게 된다는 것을 보여주고 있습니다. 일반적으로 행렬곱(즉, 선형변환)에 의해서 정의역의 정사각형은 치역의 평행사변형으로 변환됩니다. 위 그림에서 정의역의 정사각형의 각 변은 축과 평행한 방향입니다.

변환의 대상이 되는 정사각형의 각 변의 방향이 축과 나란하지 않을 때의 일반적인 모습과, 이때의 변환된 평행사변형의 모습입니다. 일반적으로는 매우 이상한 모양의 평행사변형으로 변환이 됩니다.

 

간단히 표시하면 위와 같습니다. 변환된 평행사변형(파란색)은 매우 일반적인 평행사변형 모양이며, 각 변의 방향(오렌지색, 붉은색 화살표) 역시 매우 일반적인 방향을 가리킵니다.

 

앞서서 보았던 경우에는 변환된 평행사변형이 마름모 모양이었는데, 이는 변환의 대상이 되는 정사각형의 각 변이 축의 방향과 나란했기 때문에 그렇게 된 것 입니다.

만일 변환의 대상이 되는 정사각형의 각 변의 방향이 x=y 방향, x=-y 방향과 평행이라면 어떨까요? 즉, 각 변의 방향과 축의 방향이 나란한 경우에서 45도 회전을 한 경우입니다. 이 경우엔 변환된 평행사변형이 정확이 직사각형이 되며, 이 변환된 직 사각형의 변의 방향은 x=y 방향, x=-y 방향과 일치하게 됩니다. 즉, 변환된 모양은 직사각형이며, 직사각형이 놓인 방향은 처음 변환의 대상이 되는 정사각형과 같은 방향입니다.

 

다시 표현하면 녹색 정사각형은 A 행렬에 의해서 파란색 직사각형으로 변환이 되는데, 각 사각형의 변의 방향(오렌지색, 붉은색 화살표로 표시)이 일치합니다. 이와 같이 A 행렬에 의해서 정사각형이 직사각형을 변환 되는 경우는, 정사각형의 변의 방향이 x측, y축을 45도 회전 시킨 경우 밖에 없으며, 그 경우에 변환된 직사각형(오른쪽의 파란색 정사각형)의 각 변의 길이는 원래 정사각형의 변의 길이의 2.5배(오렌지색 방향), 0.5배(붉은색 방향)가 됩니다.

 

바로 위에서 설명한 것이 행렬의 대각화 입니다.

 

2차원 정사각 행렬은 정사각형을 평행사변형으로 옮기는 선형 변환인데, 일반적인 경우에는 변환된 평행사변형은 직사각형이나 마름모가 되지 않고 각 변의 길이가 서로 다르고, (평행사변형의 네 각 중, 예각의 크기가) 0도 보다 크고 90도 보다 작은 매우 일반적인 값을 갖게 됩니다.

 

하지만, 변환의 대상이 되는 정사각형이 특정한 방향으로 놓여 있다면(위 경우에는 각 변의 방향이 x=y의 방향, x=-y의 방향과 나란한 경우), 변환된 평행사변형은 직사각형이 되며, 직사각형의 변의 방향은 정사각형의 변의 방향과 나란한 방향이 됩니다. 즉, 행렬(=선형변환)에 의해서 정사각형이 변화되는데, 방향은 유지되면서 각 변의 방향으로 확대, 혹은 축소가 되는 것 입니다.

 

이를 조금 다르게 표현하면, 오렌지색/붉은색으로 표시한 벡터는 변환에 의해서 오렌지색/붉은색 벡터로 각각 변환이 되는데, 이 벡터가 매우 일반적인 방향을 가리키고 있다면, 변환되기 전 벡터와 변환이 된 벡터의 방향이 서로 다른데, 만일 두 벡터가 특정한 방향을 가리키고 있다면 ( 위 예제에서는 x=y 방향과 x=-y 방향), 벡터의 방향은 바뀌지 않은 채, 크기가 변하는 것 입니다. 위 경우에는 오렌지색 벡터의 경우에는 2.5배, 붉은색 벡터의 경우에는 0.5배가 되었습니다.

 

위에서 설명을 수학식으로 옮기면 다음과 같습니다. (바로 위 그래프에서)

 

1) 정사각형의 각 변의 방향 = 오렌지색, 붉은색 벡터 = 행렬 A의 두 고유 벡터

2) 정사각형의 각 변의 길이의 변화 2.5배, 0.5배= 오렌지색, 붉은색 벡터의 길이 변화 = 행렬 A의 두 고유벡터에 해당하는 고유값

 

다시 한 번 요약하면,

 

행렬에 의해서 일반적인 정사각형은 평행사변형으로 변환이 되는데, 만일 정사각형의 각 변의 방향이 고유벡터의 방향과 나란하다면, 정사각형은 직사각형으로 변환이 된다. 변환의 대상이 되는 정사각형의 각 변의 길이가 1이었다면, 변환된 직사각형의 변의 길이는 행렬의 고유벡터의 값과 같다.

 

입니다.

 

또 다른 예제 그림은 아래와 같습니다.

파란색 하트 그림은 행렬 A에 의해서 주황색과 같은 모양으로 변환됩니다. 만일 이 하트를 45도 회전 시킨 하트를 변환 시키면 어떻게 될까요?

결과는 위 그림과 같습니다. 위 그림에서 파란색 하트는 고유벡터의 방향으로 그려져 있기 때문에, 이 하트를 행렬 A로 변환하는 경우, 하트의 방향은 바뀌지 않고 각 방향으로 길이만 2.5배, 0.5배가 되는 것 입니다.

 

수식이 하나도 나오지 않았으니, 수식을 통해서 정리하면 (아마도 고유값과 고유벡터의 정의는 아실거라 생각합니다), 고유값과 고유벡터는 행렬 A에 대해서 다음을 만족시키는 벡터와 스칼라입니다.

 

$$A\vec{v}_i = \lambda_i \vec{v}_i$$

 

행렬 A가 n차 정사각 행렬이면서 대각화 가능하다면, 행렬 A의 고유값과 그에 대응되는 고유벡터는 총 n개가 있으며, 이를 표시하기 위해서 아래첨자 i를 사용하였습니다. 고유벡터는 행렬 변환에 의해서 방향이 변하지 않는 행렬을 뜻하며(행렬의 크기는 일반적으로 바뀝니다), 행렬의 크기가 변화하는 정도를 고유값이라고 합니다.

 

행렬 A를 고유벡터를 기저로 하는 공간에서 표현하면,

 

$$B = Q ^{-1}AQ$$

 

로 나타낼 수 있으며, B는 대각행렬이 됩니다. 여기서 Q 행렬은 각 열 벡터가 행렬 A의 정규화된 고유벡터로 이루어진 행렬 입니다. 고유 벡터 공간에서 행렬 A를 표현한 행렬 B가 대각행렬이기 때문에, 각 변의 방향이 고유 벡터의 방향과 나란한 정사각형은 행렬 A에 의해서 직사각형으로 변환되는 것 입니다. 행렬의 대각화와 대각화 가능 여부를 위 식을 만족하는 행렬 B와 행렬 Q가 존재성으로도 정의할 수 있습니다. 어쩌면, 이 방법이 더 자연스러운 것이라도고 생각할 수 있습니다. 이 과정은 맨 처음에 예를 들었던 방식과 같은 접근 방식입니다.

 

좌표축을 잘 잡으면 변환이 간단해 진다

 

행렬대각화과 알려주는 사실 중 하나는 "축을 잘 잡으면 변환이 간단해진다" 입니다. 이는 곧 행렬 대각화의 정의와 같으며, 지금까지 설명한 것을 요약한 것과 같으며, 바로 위 수식이 의미하는 것과 같습니다. 행렬의 성분의 값에 따라서 고유값과 고유벡터는 달라지지만 고유벡터를 이용하여 공간을 표현한다면(고유벡터를 공간의 기저로 잡는다면) 행렬에 의한 변환은 단순히 그 행렬의 고유값만으로 결정이 되며, 변환은 새로운 축 방향(고유 벡터의 방향)으로 확대하거나(고유값이 1보다 큰 경우) 혹은 축소하거나 (고유값이 1보다 작은 경우) 혹은 반전시키거나(고유값이 음수인 경우)중 하나로 표현할 수 있습니다. 일반적으로 매우 복잡한 행렬이 매우 간단한 행렬로 변환된 것입니다.

 

 

728x90