본문으로 건너뛰기

절5.1고윳값과 고유벡터

목표
  1. 고유벡터와 고윳값의 정의를 익힙니다.
  2. 고유벡터와 고윳값을 기하학적으로 구하는 방법을 익힙니다.
  3. 어떤 수가 행렬의 고윳값인지 판정하는 방법과, 고윳값이라면 그에 대응하는 고유벡터를 구하는 방법을 익힙니다.
  4. 계산 절차: \lambda-고유공간의 기저를 구합니다.
  5. 그림: 벡터가 고유벡터인지 여부, 표준행렬 변환의 고유벡터.
  6. 정리: 확장된 가역행렬 정리.
  7. 용어: 고유공간.
  8. 필수 용어: 고유벡터, 고윳값.

이 절에서는 고윳값과 고유벡터를 정의합니다. 이들은 정사각행렬의 구조 이론에서 가장 중요한 측면을 이룹니다. 그러므로 고윳값과 고유벡터는 선형대수학의 실제 응용에서 핵심적인 역할을 하는 경우가 많습니다.

소절5.1.1고윳값과 고유벡터

다음은 이 책에서 가장 중요한 정의입니다.

정의

A를 n\times n 행렬이라고 합시다.

  1. A의 고유벡터란 어떤 스칼라 \lambda에 대해 Av=\lambda v를 만족하는 \R^n의 영이 아닌 벡터 v입니다.
  2. A의 고윳값이란 방정식 Av=\lambda v가 자명하지 않은 해를 갖게 하는 스칼라 \lambda입니다.

v\neq 0에 대해 Av = \lambda v이면, \lambda를 v에 대한 고윳값이라 하고, v를 \lambda에 대한 고유벡터라고 합니다.

독일어 접두사 “eigen”은 대략 “자기” 또는 “자신의”라는 뜻입니다. A의 고유벡터는 행렬 변환 T(x)=Ax에 의해 자기 자신의 배수로 옮겨지는 벡터이므로, 이것이 이 용어의 유래를 설명해 준다고 볼 수 있습니다. 한편 “eigen”은 흔히 “특성의”라고 번역되기도 합니다. 고유벡터는 A의 내재적인, 곧 특성적인 성질을 나타낸다고 생각할 수 있습니다.

노트

고윳값과 고유벡터는 정사각행렬에 대해서만 정의됩니다.

고유벡터는 정의상 영벡터가 아닙니다. 고윳값은 0일 수도 있습니다.

영벡터는 고유벡터로 보지 않습니다. 모든 스칼라 \lambda에 대해 A0 = 0 = \lambda 0이므로, 대응하는 고윳값이 정해지지 않기 때문입니다.

누군가 행렬 A와 벡터 v를 건네준다면, v가 A의 고유벡터인지 확인하기는 쉽습니다. v에 A를 곱한 뒤 Av가 v의 스칼라배인지 보기만 하면 됩니다. 반면 행렬 A만 주어졌을 때 고유벡터를 어떻게 구해야 하는지는 전혀 자명하지 않습니다. 그 방법은 절 5.2에서 배우겠습니다.

고유벡터 조건 Av=\lambda v가 성립한다는 것은 Av와 \lambda v가 원점과 같은 직선 위에 있다는 뜻입니다. 따라서 A의 고유벡터는 Av와 v가 원점을 지나는 같은 직선 위에 놓이는 영이 아닌 벡터 v입니다. 이 경우 Av는 v의 스칼라배이며, 고윳값은 그 배율입니다.

\begin{tikzpicture}[thin border nodes, baseline]
  \draw[grid lines] (-2,-2) rectangle (2,2);
  \clip (-2,-2) rectangle (2,2);
  \coordinate (v) at (1/2,1/3);
  \draw[seq-red!70] ($-5*(v)$) -- ($5*(v)$);
  \point[seq-red, "$v$"] at (v);
  \point[seq-red, "$Av$"] at ($2.5*(v)$);
  \coordinate (w) at (-1/3,1);
  \draw[seq-blue!70] ($-5*(w)$) -- ($5*(w)$);
  \point[seq-blue, "$w$" above right] (w) at (w);
  \point[seq-blue, "$Aw$"] at (-1.2, 1);
  \point["0" {anchor=350, inner sep=3pt}] at  (0,0);
\end{tikzpicture}\qquad
\begin{minipage}[c]{.3\linewidth}
  $\color{seq-red}v$ is an eigenvector\\[5mm]
  $\color{seq-blue}w$ is not an eigenvector
\end{minipage}

선형변환의 표준행렬로 주어지는 행렬의 경우, 그림을 그린 다음 어떤 벡터가 자신의 직선에서 벗어나지 않는지를 살펴보아 기하학적으로 고유벡터와 고윳값을 구하는 것이 대개 가장 좋습니다. 기하학적으로 정의된 변환의 경우, 고유벡터와 고윳값을 구하기 위해 그 행렬을 계산할 필요조차 없습니다.

예제(반사)

다음은 그 예입니다. T\colon\R^2\to\R^2를 y=-x로 정의되는 직선 L에 대해 반사하는 선형변환이라 하고, A를 T의 행렬이라 합시다. 아무런 계산 없이 A의 고윳값과 고유벡터를 구하겠습니다.

이 변환은 기하학적으로 정의되므로 그림을 그려 봅시다.

\begin{tikzpicture}[thin border nodes, scale=1, baseline]
  \draw[grid lines] (-2,-2) grid (2,2);
  \draw[very thin, seq-violet, dashed] (-2,2) to["$L$" near end] (2,-2);
  \draw[<->, seq-violet!70] (1.5,-1.05) to[bend left] (1.05,-1.5);

  \begin{scope}[arrows={|->}, shorten=2pt, font=\small]
  \draw[seq1!50, -, shorten=0pt, thick] (0,2) -- (0,-2);
  \point[seq1, "$u$" {left,text=seq1}] (a) at (0,-1);
  \point[seq1, "$Au$" {above right, text=seq1}] (Ta) at (1,0);
  \draw (a) -- (Ta);
  \point["0" below left] at (0, 0);
  \end{scope}

\end{tikzpicture}

Au가 u 및 원점과 한 직선 위에 있지 않으므로 벡터 \color{seq-red}u는 고유벡터가 아닙니다.

\begin{tikzpicture}[thin border nodes, scale=1, baseline]
  \draw[grid lines] (-2,-2) grid (2,2);
  \draw[very thin, seq-violet, dashed] (-2,2) to["$L$" near end] (2,-2);
  \draw[<->, seq-violet!70] (1.5,-1.05) to[bend left] (1.05,-1.5);

  \begin{scope}[arrows={|->}, shorten=2pt, font=\small]
  \draw[seq6!50, -, shorten=0pt, thick] (2/3,2) -- (-2/3,-2);
  \point[seq6, "$z$" {right, text=seq6}] (a) at (.5,1.5);
  \point[seq6, "$Az$" {below right, text=seq6}] (Ta) at (-1.5,-.5);
  \draw (a) -- (Ta);
  \point["0" left] at (0, 0);
  \end{scope}

\end{tikzpicture}

벡터 \color{seq6}z 역시 고유벡터가 아닙니다.

\begin{tikzpicture}[thin border nodes, scale=1, baseline]
  \draw[grid lines] (-2,-2) grid (2,2);
  \draw[very thin, seq-violet, dashed] (-2,2) to["$L$" near end] (2,-2);
  \draw[<->, seq-violet!70] (1.5,-1.05) to[bend left] (1.05,-1.5);

  \begin{scope}[arrows={|->}, shorten=2pt, font=\small]
  \draw[seq2!50, -, shorten=0pt, thick] (2,2) -- (-2,-2);
  \point[seq2, "$v$" {above left, text=seq2}] (b) at (1,1);
  \point[seq2, "$Av$" {text=seq2, below right}] (Tb) at (-1,-1);
  \draw (b) -- (Tb);
  \point["0" left] at (0, 0);
  \end{scope}

\end{tikzpicture}

Av가 v 및 원점과 한 직선 위에 있으므로 벡터 \color{seq2}v는 고유벡터입니다. 벡터 Av는 v와 길이는 같지만 방향은 반대이므로, 이에 대응하는 고윳값은 -1입니다.

\begin{tikzpicture}[thin border nodes, scale=1, baseline]
  \draw[grid lines] (-2,-2) grid (2,2);
  \draw[very thin, seq-violet, dashed] (-2,2) to["$L$" near end] (2,-2);
  \draw[<->, seq-violet!70] (1.5,-1.05) to[bend left] (1.05,-1.5);

  \begin{scope}[arrows={|->}, shorten=2pt, font=\small]
  \draw[seq3!50, -, shorten=0pt, thick] (-2,2) -- (2,-2);
  \point[seq3, "$w$" {text=seq3,inner sep=3pt, anchor=270}] (c) at (-1,1);
  \point[seq3, "$Aw$" {text=seq3,inner sep=3pt, anchor=180}] (c) at (-1,1);
  \draw (c) to[out=190, in=260, looseness=40] (c);
  \point["0" below left] at (0, 0);
  \end{scope}

\end{tikzpicture}

Aw가 w 및 원점과 한 직선 위에 있으므로 벡터 \color{seq3}w는 고유벡터입니다. 실제로 Aw는 w와 같습니다! 이는 w가 고윳값 1에 대응하는 고유벡터임을 의미합니다.

모든 고유벡터는 L 위에 있거나 L에 수직인 직선 위에 있는 것으로 보입니다. L 위의 벡터들은 고윳값 1를 가지고, L에 수직인 벡터들은 고윳값 -1을 가집니다.

그림8A의 고유벡터란 Ax가 x 및 원점과 한 직선 위에 있도록 하는 벡터 x입니다. x의 끝점을 클릭하고 끌어 보면서 이러한 벡터가 모두 L 위에 있거나 L에 수직인 직선 위에 있음을 확인해 보십시오.

이제 이와 같은 성격의 예를 다섯 개 더 들겠습니다.

여기서 고유벡터에 관한 기본적인 사실 하나를 언급하겠습니다.

k=2일 때, 이는 v_1,v_2가 고윳값이 \lambda_1\neq\lambda_2인 고유벡터라면 v_2는 v_1의 배수가 아니라는 것을 말해 줍니다. 실제로 v_1의 0이 아닌 임의의 배수 cv_1 역시 고윳값이 \lambda_1인 고유벡터입니다:

\begin{equation*}
A(cv_1) = cAv_1 = c(\lambda_1 v_1) = \lambda_1(cv_1).
\end{equation*}

위 사실의 결과로 다음을 얻습니다.

n\times n 행렬 A는 많아야 n개의 고윳값을 가집니다.

소절5.1.2고유공간

A가 정사각행렬이라고 가정합시다. 우리는 주어진 벡터가 A의 고유벡터인지 확인하고, 그러한 경우 그 고윳값을 구하는 방법을 이미 알고 있습니다. 다음 목표는 주어진 실수가 A의 고윳값인지 확인하고, 그러한 경우 대응하는 고유벡터를 모두 구하는 것입니다. 이 역시 간단하지만, 조금 더 복잡합니다. 그러면 남은 유일한 부분은 A의 고윳값을 구하는 것이 되며, 이것이 절 5.2의 주요 내용입니다.

A를 n\times n 행렬이라 하고, \lambda를 스칼라라 합시다. 고윳값이 \lambda인 고유벡터는, 존재한다면, 방정식 Av=\lambda v의 0이 아닌 해입니다. 이 방정식은 다음과 같이 다시 쓸 수 있습니다.

\begin{equation*}
\begin{split}
\amp Av = \lambda v \\
\iff\quad \amp Av - \lambda v = 0 \\
\iff\quad \amp Av - \lambda I_nv = 0 \\
\iff\quad \amp(A - \lambda I_n)v = 0.
\end{split}
\end{equation*}

따라서 고윳값이 \lambda인 A의 고유벡터는, 존재한다면, 행렬 방정식 (A-\lambda I_n)v = 0의 자명하지 않은 해, 즉 \Nul(A-\lambda I_n)에 속하는 영이 아닌 벡터입니다. 이 방정식이 자명하지 않은 해를 갖지 않으면, \lambda는 A의 고유벡터가 아닙니다.

위의 관찰이 중요한 이유는 주어진 고윳값에 대한 고유벡터를 찾는 것, 즉 고유공간을 구하는 것은 동차 연립방정식을 푸는 것을 의미한다는 점을 알려 주기 때문입니다. 예를 들어

\begin{equation*}
A = \mat{7 1 3; -3 2 -3; -3 -2 -1},
\end{equation*}

이면, 고윳값이 \lambda인 고유벡터는 행렬 방정식

\begin{equation*}
\mat{7 1 3; -3 2 -3; -3 -2 -1}\vec{x y z} = \lambda \vec{x y z}.
\end{equation*}

의 자명하지 않은 해입니다. 이는 연립방정식

\begin{equation*}
\syseq{
7x + y + 3z = \lambda x ;
-3x + 2y - 3z = \lambda y ;
-3x - 2y - z = \lambda z
}
\quad\xrightarrow{\phantom{MMM}}\quad
\syseq{
(7-\lambda)x + y + 3z = 0 ;
-3x + (2-\lambda)y - 3z = 0 ;
-3x - 2y + (-1-\lambda)z = 0\rlap.
}
\end{equation*}

로 바뀝니다. 이는 동차 행렬 방정식

\begin{equation*}
\mat{7-\lambda, 1 3; -3 2-\lambda, -3; -3 -2 -1-\lambda}\vec{x y z} = 0,
\text{,}
\end{equation*}

즉 (A-\lambda I_3)v = 0과 같습니다.

정의

A를 n\times n 행렬이라 하고, \lambda를 A의 고윳값이라 합시다. A의 \lambda-고유공간은 (A-\lambda I_n)v=0의 해집합, 즉 부분공간 \Nul(A-\lambda I_n)입니다.

\lambda-고유공간은 어떤 행렬, 즉 행렬 A-\lambda I_n의 영공간이므로 부분공간입니다. 이 부분공간은 영벡터와 고윳값이 \lambda인 A의 모든 고유벡터로 이루어져 있습니다.

노트

0이 아닌 부분공간은 무한하므로, 모든 고윳값은 무수히 많은 고유벡터를 가집니다. (예를 들어, 고유벡터에 0이 아닌 스칼라를 곱하면 또 다른 고유벡터를 얻습니다.) 한편, \R^n의 차원은 n이므로 n\times n 행렬의 일차독립인 고유벡터는 많아야 n개입니다.

레시피: 고유공간

A를 n\times n 행렬이라 하고 \lambda를 수라고 합시다.

  1. \lambda가 A의 고윳값일 필요충분조건은 (A-\lambda I_n)v = 0이 자명하지 않은 해를 갖는 것이며, 이는 \Nul(A-\lambda I_n)\neq\{0\}.인 것과 동치입니다.
  2. 이 경우 A의 \lambda-고유공간의 기저를 구한다는 것은 \Nul(A-\lambda I_n)의 기저를 구한다는 뜻이며, 이는 동차 연립방정식 (A-\lambda I_n)v = 0의 해를 매개변수 벡터 꼴로 구하여 얻을 수 있습니다.
  3. A의 \lambda-고유공간의 차원은 연립방정식 (A-\lambda I_n)v = 0의 자유변수의 개수와 같으며, 이는 A - \lambda I_n에서 피벗이 없는 열의 개수입니다.
  4. 고윳값이 \lambda인 고유벡터는 \Nul(A-\lambda I_n),에 속하는 영이 아닌 벡터, 또는 같은 말로 (A-\lambda I_n)v = 0의 자명하지 않은 해입니다.

끝으로 행렬의 0-고유공간에 관한 관찰을 하나 살펴봅니다.

증명

0이 A의 고윳값일 필요충분조건은 \Nul(A - 0I_n) = \Nul(A)가 영공간이 아닌 것, 즉 {0}이 아닌 것임을 알고 있으며, 가역행렬 정리 in 절 3.6에 의해 이는 A가 가역이 아니라는 것과 동치입니다. 이 경우 0-고유공간은 정의에 의해 \Nul(A-0I_n) = \Nul(A)입니다.

구체적으로, 고윳값이 0인 고유벡터는 Av=0v\text{,} 즉 Av = 0을 만족하는 영이 아닌 벡터 v입니다. 이들은 정확히 A의 영공간에 속하는 영이 아닌 벡터입니다.

소절5.1.3가역행렬 정리: 추가 사항

이제 행렬이 가역임을 나타내는 새로운 방법이 두 가지 생겼으므로, 이를 가역행렬 정리에 추가합니다.