본문으로 건너뛰기

절5.5복소 고윳값

목표
  1. 행렬의 복소 고윳값과 고유벡터를 구하는 법을 배웁니다.
  2. 회전-확대 행렬을 알아보는 법을 배우고, 그 행렬이 얼마나 회전하고 확대하는지 계산하는 법을 배웁니다.
  3. 복소 고윳값을 갖는 2\times 2 행렬과 3\times 3 행렬의 기하학적 의미를 이해합니다.
  4. 방법: 복소 고윳값을 갖는 2\times 2 행렬은 회전-확대 행렬과 닮음이라는 것, 2\times 2 행렬에 대한 고유벡터 요령.
  5. 그림: 복소 고윳값을 갖는 행렬의 기하학적 의미.
  6. 정리: 회전-확대 정리, 블록 대각화 정리.
  7. 용어: 회전-확대 행렬.

절 5.4에서 우리는 특성다항식이 서로 다른 실근 n개를 갖는 n \times n 행렬이 대각화 가능하다는 것을 보았습니다. 즉, 그러한 행렬은 분석하기가 훨씬 간단한 대각행렬과 닮음입니다. 다른 가능성은 행렬이 복소근을 갖는 경우이며, 이 절에서는 바로 이 경우를 중점적으로 다룹니다. 그러한 행렬은 (2\times 2인 경우) 회전-확대 행렬과 닮음이라는 것이 밝혀지며, 회전-확대 행렬 또한 비교적 이해하기 쉽습니다.

어떤 의미에서 이 절 전체는 절 5.4과 유사하며, 여기서는 회전-확대 행렬이 대각행렬의 역할을 합니다.

복소수에 대한 복습은 부록 A을 참고하십시오.

소절5.5.1복소 고윳값을 갖는 행렬

대수학의 기본 정리를 특성다항식에 적용한 결과로 다음을 알 수 있습니다.

모든 n \times n 행렬은 중복도를 고려하여 세면 정확히 n개의 복소 고윳값을 갖습니다.

대응하는 (복소) 고유벡터는 이전과 똑같은 방법, 즉 행렬 A - \lambda I_n을 행 줄임하여 계산할 수 있습니다. 다만 이제는 복소수로 산술 계산을 해야 합니다.

A가 실수 성분을 갖는 행렬이면 그 특성다항식은 실수 계수를 가지므로, 이 참고에 의해 복소 고윳값은 켤레 쌍으로 나타납니다. 첫 번째 예에서는 다음을 알 수 있습니다.

\begin{equation*}
\begin{split}
1+i \text{ has an eigenvector }
\amp v_1 = \vec{i 1} \\
1-i \text{ has an eigenvector }
\amp v_2 = \vec{-i 1}.
\end{split}
\end{equation*}

두 번째 예에서는 다음과 같습니다.

\begin{equation*}
\begin{split}
\frac{4+3i}5 \text{ has an eigenvector }
\amp v_1 = \vec{-12-9i -9+12i 25} \\
\frac{4-3i}5 \text{ has an eigenvector }
\amp v_2 = \vec{-12+9i -9-12i 25}
\end{split}
\end{equation*}

이 경우들에서 켤레 고윳값에 대한 고유벡터는 바로 켤레 고유벡터(첫 번째 고유벡터의 각 성분에 켤레를 취하여 얻은 고유벡터)입니다. 이는 항상 성립합니다. 실제로 Av=\lambda v이면 다음이 성립하며,

\begin{equation*}
A \bar v = \bar{Av} = \bar{\lambda v} = \bar \lambda \bar v,
\end{equation*}

이는 바로 \bar v가 고윳값 \bar \lambda에 대한 A의 고유벡터라는 뜻입니다.

A를 실수 성분을 갖는 행렬이라고 합시다. 만약

\begin{equation*}
\begin{split}
\lambda \text{ is a complex eigenvalue with eigenvector } \amp v, \\
\text{then } \bar\lambda
\text{ is a complex eigenvalue with eigenvector }\amp\bar v.
\end{split}
\end{equation*}

다시 말해, 복소 고윳값과 고유벡터는 모두 켤레 쌍으로 나타납니다.

행 축약 중에 복소수로 나누는 것은 번거로울 수 있으므로, 다음 요령을 익혀 두면 유용합니다. 이 요령은 실수 성분을 갖는 행렬에도 똑같이 잘 적용됩니다.

2\times 2 행렬에 대한 고유벡터 요령

A를 2\times 2 행렬이라 하고, \lambda를 (실수 또는 복소수) 고윳값이라 합시다. 그러면

\begin{equation*}
A - \lambda I_2 = \mat{z w; \star, \star}
\quad\implies\quad
\vec{-w z}
\text{ is an eigenvector with eigenvalue } \lambda,
\end{equation*}

위 벡터는 해당 고윳값에 대한 고유벡터입니다. 단, A-\lambda I_2의 첫 행이 0이 아니라고 가정합니다.

실제로 \lambda가 고윳값이므로 A-\lambda I_2는 가역 행렬이 아님을 알 수 있습니다. 따라서 두 행은 같은 직선 위에 있으며(그렇지 않으면 행렬식이 0이 아닙니다), 두 번째 행은 자동으로 첫 번째 행의 (복소수) 배수가 됩니다:

\begin{equation*}
\mat{z w; \star, \star} = \mat{z w; cz cw}.
\end{equation*}

{-w\choose z}가 이 행렬의 영공간에 속한다는 것은 자명하며, 마찬가지로 {w\choose -z}도 영공간에 속합니다. A-\lambda I_2의 두 번째 행을 계산할 필요조차 없었고, 행 축약은 더더욱 필요 없었다는 점에 주목하십시오!

이 예제에서는 고윳값 1+i와 1-i에 대해 각각 고유벡터 {i\choose 1}과 {-i\choose 1}을 구했지만, 이 예제에서는 같은 행렬의 같은 고윳값에 대해 고유벡터 {1\choose -i}와 {1\choose i}를 구했습니다. 이 벡터들은 처음에는 서로의 배수처럼 보이지 않습니다—하지만 이제는 복소수를 사용할 수 있으므로, 실제로 서로의 배수임을 알 수 있습니다:

\begin{equation*}
-i\vec{i 1} = \vec{1 -i} \qquad i\vec{-i 1} = \vec{1 i}.
\end{equation*}

소절5.5.2회전-확대 행렬

복소 고윳값을 갖는 행렬의 가장 중요한 예는 회전-확대 행렬, 즉 회전 행렬의 스칼라배입니다.

정의

회전-확대 행렬이란

\begin{equation*}
\mat{a -b; b a},
\end{equation*}

꼴의 2\times 2 행렬을 말하며, 여기서 a와 b는 둘 다 0은 아닌 실수입니다.

다음 명제는 이 이름이 타당함을 보여 줍니다.

기하학적으로 회전-확대 행렬은 이름 그대로의 일을 합니다. 즉, (어느 순서로든) 회전하고 확대합니다.

두 번째 예제의 행렬은 두 번째 열이 {-\sqrt 3\choose 1}이며, 이 열은 양의 x축으로부터 반시계 방향으로 5\pi/6만큼 회전되어 있습니다. 이 회전각은 \tan\inv\bigl(1/(-\sqrt3)\bigr) = -\frac\pi 6.와 같지 않습니다. 문제는 arctan이 항상 -\pi/2와 \pi/2 사이의 값을 출력한다는 점입니다: 즉 arctan은 제2사분면이나 제3사분면에 있는 점을 고려하지 않습니다. 이 때문에 삼각형을 그리고 그 (양의) 변의 길이를 이용하여 각 \varphi를 계산했습니다:

\begin{tikzpicture}[thin border nodes, scale=1.3]
  \draw[->] (-2.5,0) -- (1.75,0);
  \draw[->] (0,-.5) -- (0,2);
  \coordinate (v) at ({-sqrt(3)}, 1);
  \draw[vector] (0, 0) -- (v) node[above] {$\vec{-\sqrt 3 1}$};
  \coordinate (o) at (0,0);
  \coordinate (x) at (1,0);
  \pic[draw, ->, angle radius=.5cm] {angle=x--o--v};
  \node at (.5, .5) {$\theta$};
  \coordinate (r) at ({-sqrt(3)}, 0);
  \draw (v) -- node[left] {$1$} (r);
  \node[below] at ($1/2*(r)$) {$\sqrt 3$};
  \coordinate (xx) at (-1,0);
  \pic[draw, "$\varphi$", angle radius=.7cm, angle eccentricity=1.3] {angle=v--o--xx};
  \pic[draw] {right angle=(o)--(r)--(v)};
  \node[right, align=left] at (2,.75) {
    $\varphi = \tan\inv\left(\dfrac1{\sqrt 3}\right) = \dfrac\pi6$\\[1mm]
    $\theta = \pi - \varphi = \dfrac{5\pi}6.$
  };
\end{tikzpicture}

또는 {-\sqrt 3\choose 1}이 제2사분면에 있다는 것을 관찰하여, 구하는 각 \theta가 다음과 같다고 할 수도 있었습니다.

\begin{equation*}
\theta = \tan\inv\left(\frac1{-\sqrt3}\right) + \pi.
\end{equation*}

벡터 {a\choose b}의 회전각을 구할 때 무작정 \tan\inv(b/a)를 계산하지 마십시오. {a\choose b}가 제2사분면이나 제3사분면에 있으면 틀린 답이 나오기 때문입니다. 대신 그림을 그리십시오.

소절5.5.3복소 고윳값을 갖는 2\times 2 행렬의 기하학

A가 실수 고윳값이 아닌 복소 고윳값 \lambda를 갖는 2\times 2 행렬이라고 합시다. 그러면 A는 고윳값 \bar\lambda\neq\lambda도 갖습니다. 특히 A는 서로 다른 고윳값을 가지므로 복소수를 사용하면 대각화 가능합니다. 우리는 흔히 행렬을 (\C^n이 아니라) \R^n의 변환을 나타내는 것으로 생각하고자 합니다. 이 때문에 다음 구성이 유용합니다. 이 구성은 관련된 모든 행렬의 성분이 실수라는 점을 제외하면 대각화와 비슷한 것을 줍니다.

증명

여기서 \Re와 \Im은 각각 실수부와 허수부를 나타냅니다.

\begin{equation*}
\Re(a+bi) = a \quad \Im(a+bi) = b \quad
\Re\vec{x+yi z+wi} = \vec{x z} \quad
\Im\vec{x+yi z+wi} = \vec{y w}.
\end{equation*}

여기서 말하는 회전-확대 행렬은 다음 행렬입니다.

\begin{equation*}
B = \mat{a -b; b a} \sptxt{with} a = \Re(\lambda),\; b = -\Im(\lambda).
\end{equation*}

기하학적으로, 회전-확대 정리는 복소 고윳값을 가지는 2\times 2 행렬이 회전-확대 행렬과 비슷하게 작용한다는 것을 말해 줍니다. 이 중요 in 절 5.3를 참고하십시오.

회전-확대 정리는 회전-확대 행렬이 대각행렬의 역할을 한다는 점에서 대각화 정리 in 절 5.4와 매우 유사한 것으로 보아야 합니다. 계속하기 전에, 이 정리를 계산 절차로 다시 서술합니다.

계산 절차: 복소 고윳값을 가지는 2\times 2 행렬

A를 2\times 2 실행렬이라 합시다.

  1. 특성다항식
    \begin{equation*}
f(\lambda) = \lambda^2 - \Tr(A)\lambda + \det(A),
\end{equation*}
    을 계산한 다음, 근의 공식을 이용하여 그 근을 계산하십시오.
  2. 고윳값이 복소수이면 그중 하나를 골라 \lambda라 하십시오.
  3. 요령을 이용하여 이에 대응하는 (복소) 고윳값 v를 구하십시오.
  4. 그러면 다음에 대하여 A=CBC\inv입니다.
    \begin{equation*}
C = \mat{| |; \Re(v) \Im(v); | |}
\sptxt{and}
B = \mat{\Re(\lambda) \Im(\lambda); -\Im(\lambda) \Re(\lambda)}.
\end{equation*}
    이는 |\lambda|배만큼 확대합니다.

위의 예에서 보았듯이 회전-확대에 관한 회전-확대 정리는 주어진 어떤 행렬에도 두 가지 방식으로 적용할 수 있습니다. 즉, 두 켤레 고윳값 중 하나를 골라서 사용해야 합니다. \lambda를 \bar\lambda로 바꾸면 v가 \bar v로 바뀌는 효과가 있으며, 이는 모든 허수부의 부호만 바꾸는 것이므로, 다음에 대해서도 A=C'B'(C')\inv가 성립합니다:

\begin{equation*}
C' = \mat{| |; \Re(v) -\Im(v); | |}
\sptxt{and}
B' = \mat{\Re(\lambda) -\Im(\lambda); \Im(\lambda) \Re(\lambda)}.
\end{equation*}

행렬 B와 B'은 서로 닮았습니다. {\Re(\lambda)\choose -\Im(\lambda)}와 {\Re(\lambda)\choose \Im(\lambda)}는 x축에 대해 서로 거울상이므로, 두 행렬의 유일한 차이는 회전 방향입니다:

\begin{tikzpicture}
  \draw[->] (-2.5,0) -- (2.5,0);
  \draw[->] (0,-1.5) -- (0,1.5);
  \draw[vector] (0, 0) -- (-2, 1) node[left] {$\vec{\Re(\lambda) \Im(\lambda)}$};
  \coordinate (v) at (-2,1);
  \coordinate (o) at (0,0);
  \coordinate (x) at (1,0);
  \pic[draw, ->, angle radius=.5cm] {angle=x--o--v};
  \node at (.5, .5) {$\theta$};
  \draw[vector] (0, 0) -- (-2, -1) node[left] {$\vec{\Re(\lambda) -\Im(\lambda)}$};
  \coordinate (vv) at (-2,-1);
  \pic[draw, <-, angle radius=.6cm] {angle=vv--o--x};
  \node at (.6, -.6) {$-\theta$};
\end{tikzpicture}

이어지는 논의는 대각화 가능한 2\times 2 행렬의 동역학을 다루었던 이 소절 in 절 5.4의 설명과 매우 유사합니다.

복소 고윳값을 갖는 2\times 2 행렬의 동역학

A를 복소(실수가 아닌) 고윳값 \lambda를 갖는 2\times 2 행렬이라고 합시다. 회전-확대 정리에 의해, 행렬 A는 어떤 양만큼 회전하고 |\lambda|만큼 확대하는 행렬과 닮았습니다. 따라서 A는 타원을 따라 회전하고 |\lambda|만큼 확대합니다. 세 가지 경우가 있습니다.

\color{seq-red}|\lambda| > 1\text{:} 확대 인수가 1보다 크면, 벡터는 점점 길어지는, 즉 원점에서 멀어지는 경향이 있습니다. 이 경우 벡터에 A를 반복해서 곱하면 벡터가 “나선형으로 바깥쪽으로 퍼져 나갑니다”. 예를 들어,

\begin{equation*}
A = \frac 1{\sqrt 2}\mat{\sqrt3+1 -2; 1 \sqrt3-1}
\qquad
\lambda = \frac{\sqrt3-i}{\sqrt 2}
\qquad
|\lambda| = \sqrt 2 > 1
\end{equation*}

일 때 다음과 같은 그림을 얻습니다:

\pgfmathsetmacro{\sqrtii}{sqrt(2)}
\begin{tikzpicture}[scale=1, samples at={0,.25,...,4.25},
    smooth, tension=.5, thin border nodes=2pt]
  \draw[dashed, cm={1,1,-1,0,(0,0)}] (0,0) ellipse[radius=10/4];
  \draw[->, very thin] (-4,0) -- (4,0);
  \draw[->, very thin] (0,-4) -- (0,4);
  \begin{scope}[cm={1,1,-1,0,(0,0)}, <->/.tip={Stealth}]
  \foreach \rot in {0,60,...,359} {
    \draw[seq-blue,rotate=\rot]
      plot ({\sqrtii^\x*cos(\x*30)},{\sqrtii^\x*sin(\x*30)});
    % Can't use decorations.markings for this; it exceeds TeX's limited
    % capacity for numerical calculations.
    \foreach \x in {0,3,4.25} {
      \draw[seq-blue,->,rotate=\rot]
        ({\sqrtii^\x*cos(\x*30)},{\sqrtii^\x*sin(\x*30)}) --
        ({\sqrtii^(\x+.1)*cos((\x+.1)*30)},{\sqrtii^(\x+.1)*sin((\x+.1)*30)});
    }
  }
  \foreach \x in {0,1,2,3} {
    \pgfmathsetmacro{\y}{\x+1.1}
    \coordinate (v\x) at ({\sqrtii^\y*cos(\y*30+180)},{\sqrtii^\y*sin(\y*30+180)});
    \draw[vector,seq-green] (0,0) -- (v\x)
      node[point,seq-green,scale=.5] {};
  }
  \end{scope}
  \foreach \x in {0,1,2,3} {
    \pgfmathanglebetweenpoints{\pgfpoint{0cm}{0cm}}{\pgfpointanchor{v\x}{center}}
    \node[anchor={\pgfmathresult+180},seq-green] at (v\x)
      {$\ifnum\x>0\ifnum\x>1A^\x\else A\fi\fi v$};
  }
  \point at (0,0);
\end{tikzpicture}

\color{seq-red}|\lambda| = 1\text{:} 확대 인수가 1와 같으면, 벡터는 길어지거나 짧아지는 경향이 없습니다. 이 경우 벡터에 A를 반복해서 곱하면 벡터는 단순히 “타원을 따라 회전합니다”. 예를 들어,

\begin{equation*}
A = \frac 12\mat{\sqrt3+1 -2; 1 \sqrt3-1}
\qquad
\lambda = \frac{\sqrt3-i}2
\qquad
|\lambda| = 1
\end{equation*}

일 때 다음과 같은 그림을 얻습니다:

\pgfmathsetmacro{\sqrtii}{sqrt(2)}
\begin{tikzpicture}[scale=.25, thin border nodes=2pt,
    decoration={markings, mark=between positions 0 and .75 step .25
      with {\arrow{Stealth}}}]
  \draw[->, very thin] (-16,0) -- (16,0);
  \draw[->, very thin] (0,-16) -- (0,16);
  \draw[postaction=decorate, seq-blue, cm={1,1,-1,0,(0,0)}]
    (0,0) ellipse[radius=10];
  \foreach \x in {0,...,3} {
    \pgfmathsetmacro{\y}{\x-.4}
    \begin{scope}[cm={1,1,-1,0,(0,0)}]
    \coordinate (v\x) at ({10*cos(\y*30)},{10*sin(\y*30)});
    \draw[vector,seq-green]
      (0,0) -- (v\x)
        node[point,seq-green,scale=.5] {};
    \end{scope}
    \pgfmathanglebetweenpoints{\pgfpoint{0cm}{0cm}}{\pgfpointanchor{v\x}{center}}
    \node[anchor={\pgfmathresult+180},seq-green] at (v\x)
      {$\ifnum\x>0\ifnum\x>1A^\x\else A\fi\fi v$};
  }
  \point at (0,0);
\end{tikzpicture}

\color{seq-red}|\lambda| \lt 1\text{:} 확대 비율이 1보다 작으면 벡터는 점점 짧아집니다. 즉, 원점에 가까워집니다. 이 경우 벡터에 A를 반복해서 곱하면 벡터는 “나선을 그리며 안쪽으로 들어갑니다”. 예를 들어,

\begin{equation*}
A = \frac 1{2\sqrt 2}\mat{\sqrt3+1 -2; 1 \sqrt3-1}
\qquad
\lambda = \frac{\sqrt3-i}{2\sqrt 2}
\qquad
|\lambda| = \frac 1{\sqrt 2} \lt 1
\end{equation*}

에서는 다음과 같은 그림이 나옵니다:

\pgfmathsetmacro{\sqrtii}{sqrt(2)}
\begin{tikzpicture}[scale=1, samples at={0,.25,...,4.25},
    smooth, tension=.5, thin border nodes=2pt]
  \draw[dashed, cm={1,1,-1,0,(0,0)}] (0,0) ellipse[radius=10/4];
  \draw[->, very thin] (-4,0) -- (4,0);
  \draw[->, very thin] (0,-4) -- (0,4);
  \begin{scope}[cm={1,1,-1,0,(0,0)}, <->/.tip={Stealth}]
  \foreach \rot in {0,60,...,359} {
    \draw[seq-blue,rotate=\rot]
      plot ({-\sqrtii^\x*cos(\x*30)},{\sqrtii^\x*sin(\x*30)});
    % Can't use decorations.markings for this; it exceeds TeX's limited
    % capacity for numerical calculations.
    \foreach \x in {0,3,4.25} {
      \draw[seq-blue,<-,rotate=\rot]
        ({-\sqrtii^\x*cos(\x*30)},{\sqrtii^\x*sin(\x*30)}) --
        ({-\sqrtii^(\x+.1)*cos((\x+.1)*30)},{\sqrtii^(\x+.1)*sin((\x+.1)*30)});
    }
  }
  \foreach \x in {3,2,1,0} {
    \pgfmathsetmacro{\y}{(3-\x)+1.1}
    \coordinate (v\x) at (-{\sqrtii^\y*cos(\y*30-120)},{\sqrtii^\y*sin(\y*30-120)});
    \draw[vector,seq-green] (0,0) -- (v\x)
      node[point,seq-green,scale=.5] {};
  }
  \end{scope}
  \foreach \x in {3,2,1,0} {
    \pgfmathanglebetweenpoints{\pgfpoint{0cm}{0cm}}{\pgfpointanchor{v\x}{center}}
    \node[anchor={\pgfmathresult+180},seq-green] at (v\x)
      {$\ifnum\x>0\ifnum\x>1A^\x\else A\fi\fi v$};
  }
  \point at (0,0);
\end{tikzpicture}

소절5.5.4블록 대각화

2\times 2보다 큰 행렬에 대해서는 대각화 정리 in 절 5.4와 회전-확대 정리를 결합한 정리가 있습니다. 이 정리의 핵심은 어떤 행렬이 대각행렬처럼 보이는 부분과 회전-확대 행렬처럼 보이는 부분으로 이루어진 행렬과 닮았다는 것입니다.

블록 대각화 정리는 대각화 정리 in 절 5.4 및 회전-확대 정리와 같은 방식으로 증명됩니다. 이 정리는 3\times 3 행렬의 경우에서 가장 잘 이해할 수 있습니다.

복소 고윳값을 갖는 3\times 3 행렬의 블록 대각화

A를 복소 고윳값 \lambda_1을 갖는 3\times 3 행렬이라고 합시다. 그러면 \bar\lambda_1도 고윳값이며, 실수 고윳값 \lambda_2가 하나 있습니다. 서로 다른 고윳값이 세 개이므로 각 고윳값의 대수적 중복도와 기하적 중복도는 1이고, 따라서 블록 대각화 정리를 A에 적용할 수 있습니다.

v_1을 고윳값 \lambda_1에 대한 (복소) 고유벡터라 하고, v_2를 고윳값 \lambda_2에 대한 (실수) 고유벡터라 합시다. 그러면 블록 대각화 정리에 따라 A = CBC\inv가 성립하며, 여기서 행렬은 다음과 같습니다.

\begin{equation*}
\def\b{\color{seq-blue}}\def\g{\color{seq-green}}
C = \mat{\b| \b| \g|; \b\Re(v_1) \b\Im(v_1) \g v_2; \b| \b| \g|}
\qquad
B =
\begin{tikzpicture}[baseline=(A-2-1.base)]
\matrix[math matrix, column sep=0, row sep=0,
nodes={inner ysep=2pt, inner xsep=4pt}] (A)
{
|[seq-blue]| \phantom{-}\Re(\lambda_1) \& |[seq-blue]| \Im(\lambda_1) \& |[black!40]| 0 \\
|[seq-blue]| -\Im(\lambda_1) \& |[seq-blue]| \Re(\lambda_1) \& |[black!40]| 0 \\
|[black!40]| 0 \& |[black!40]| 0 \& |[seq-green]| \lambda_2 \\
};
\draw[thick, seq-blue] (A-1-1.north west) rectangle (A-2-2.south east);
\draw[thick, seq-green] (A-2-2.south east) rectangle (A-3-3.south east);
\end{tikzpicture}.
\end{equation*}