Lecture 28. 유사 행렬과 조르당 표준형 Similar Matrices and Jordan Form — 서술
세 번 만났고 세 번 다 미뤄 둔 행렬이 있다.
B = [ 3 1 0 3 ] B = \begin{bmatrix} 3 & 1 \\ 0 & 3 \end{bmatrix} B = [ 3 0 1 3 ] L21에서 처음 만났다. 고윳값이 3 하나뿐인데 두 번 나오고, 고유벡터는 하나밖에 없었다.
L22에서 다시 만났다. 그래서 대각화되지 않는다고 했다. L23에서 또 만났다. 미분방정식에서
t e λ t te^{\lambda t} t e λ t 같은 항이 나타나는 것이 이 때문이라고 했다.
이번 강의에서 정면으로 다룬다.
그런데 미리 말해 두자. 이 강의의 결론은 다소 김이 빠질 것이다. 수학자들은 이런
행렬을 분류하는 아름다운 이론을 만들어 냈고 그것을 조르당 표준형이라 부른다.
그러나 실무에서는 거의 쓰지 않는다. 왜 안 쓰는지, 그 이유가 이번 강의에서 진짜로
배울 내용이다. 그리고 그 이유가 다음 강의에서 특이값 분해가 등장하는 동기가 된다.
1. 유사 행렬 ¶ L22에서 A = S Λ S − 1 A = S\Lambda S^{-1} A = S Λ S − 1 을 "좌표계를 갈아끼우는 일"로 읽었다. 그 읽기를 정식
개념으로 승격시키자.
고윳값이 같다 ¶ 유사한 두 행렬은 고윳값이 같다. 증명은 세 줄이다. 특성다항식을 계산해 보자.
먼저 λ I \lambda I λ I 를 M − 1 ( λ I ) M M^{-1}(\lambda I)M M − 1 ( λ I ) M 으로 쓸 수 있다는 것을 이용한다.
λ I \lambda I λ I 는 모든 행렬과 교환하기 때문이다.
B − λ I = M − 1 A M − M − 1 ( λ I ) M = M − 1 ( A − λ I ) M B - \lambda I
= M^{-1}AM - M^{-1}(\lambda I)M
= M^{-1}\left(A - \lambda I\right)M B − λ I = M − 1 A M − M − 1 ( λ I ) M = M − 1 ( A − λ I ) M 행렬식을 취하고 L18의 곱셈 규칙을 쓴다.
det ( B − λ I ) = det ( M − 1 ) det ( A − λ I ) det M \det(B - \lambda I)
= \det\left(M^{-1}\right)\det\left(A - \lambda I\right)\det M det ( B − λ I ) = det ( M − 1 ) det ( A − λ I ) det M det ( M − 1 ) = 1 / det M \det(M^{-1}) = 1/\det M det ( M − 1 ) = 1/ det M 이므로 양 끝이 상쇄된다.
det ( B − λ I ) = det ( A − λ I ) \det(B - \lambda I) = \det(A - \lambda I) det ( B − λ I ) = det ( A − λ I ) 특성다항식이 글자 하나 다르지 않다. 그러므로 고윳값도 중복도까지 같다.
무엇이 보존되고 무엇이 보존되지 않는지 정리해 두자.
보존된다 보존되지 않는다 고윳값과 그 중복도 고유벡터 (좌표가 바뀐다) 특성다항식 성분 하나하나 대각합, 행렬식 대칭성 랭크 직교성 대각화 가능 여부
Figure 1: 좌표계에 매이지 않는 것만 살아남는다.
행렬들이 가족으로 나뉜다 ¶ 유사는 동치관계이다. 자기 자신과 유사하고(M = I M = I M = I ), A A A 가 B B B 와 유사하면 거꾸로도
그렇고(M − 1 M^{-1} M − 1 을 쓰면 된다), 셋을 이으면 곱으로 이어진다.
그러므로 모든 n × n n \times n n × n 행렬이 유사 가족으로 나뉜다. 한 가족 안의 행렬들은
좌표계만 다를 뿐 같은 변환이다.
2. 가족마다 대표를 하나씩 ¶ 가족이 있으면 대표를 뽑고 싶어진다. 가족마다 가장 단순한 행렬을 하나씩 고를 수
있는가.
대각화 가능한 가족은 답이 이미 나와 있다. 대표는 Λ \Lambda Λ 이다.
A = S Λ S − 1 ⟺ Λ = S − 1 A S ⟺ A 와 Λ 가 유사 A = S\Lambda S^{-1}
\qquad\Longleftrightarrow\qquad
\Lambda = S^{-1}AS
\qquad\Longleftrightarrow\qquad
A \text{ 와 } \Lambda \text{ 가 유사} A = S Λ S − 1 ⟺ Λ = S − 1 A S ⟺ A 와 Λ 가 유사 문제는 나머지 가족이다. B = [ 3 1 0 3 ] B = \begin{bmatrix} 3 & 1 \\ 0 & 3\end{bmatrix} B = [ 3 0 1 3 ] 이 속한 가족에는
대각행렬이 없다. 만약 있었다면 그 대각행렬은 고윳값이 3, 3 이므로 3 I 3I 3 I 여야 하는데,
3 I 3I 3 I 는 아무 M M M 으로 갈아끼워도 M − 1 ( 3 I ) M = 3 I M^{-1}(3I)M = 3I M − 1 ( 3 I ) M = 3 I 라 자기 혼자 가족을 이룬다.
B ≠ 3 I B \neq 3I B = 3 I 이니 같은 가족일 수 없다.
그러면 이 가족의 대표는 무엇인가. 이 물음이 이번 강의의 척추이다.
3. 고유벡터가 모자란다는 것 ¶ 먼저 말을 정확히 하자. 고윳값이 몇 번 나오는지를 세는 방법이 둘 있다.
언제나 기하 ≤ \le ≤ 대수 이다. 둘이 같으면 그 고윳값 몫의 고유벡터가 충분한 것이고,
기하가 더 작으면 모자란 것이다.
어떤 고윳값에서 기하 < 대수 ⟺ 결함 행렬 ⟺ 대각화 불가 \text{어떤 고윳값에서 기하} < \text{대수}
\quad\Longleftrightarrow\quad
\text{결함 행렬}
\quad\Longleftrightarrow\quad
\text{대각화 불가} 어떤 고윳값에서 기하 < 대수 ⟺ 결함 행렬 ⟺ 대각화 불가 L22의 오해가 여기서 완전히 풀린다 ¶ L22에서 "고윳값이 서로 달라야 대각화된다"는 오해를 다뤘다. 반례가 3 I 3I 3 I 였다.
이제 두 행렬을 나란히 놓으면 차이가 분명해진다.
3 I = [ 3 0 0 3 ] , B = [ 3 1 0 3 ] 3I = \begin{bmatrix} 3 & 0 \\ 0 & 3 \end{bmatrix},
\qquad
B = \begin{bmatrix} 3 & 1 \\ 0 & 3 \end{bmatrix} 3 I = [ 3 0 0 3 ] , B = [ 3 0 1 3 ] 3 I 3I 3 I B B B 특성다항식 ( λ − 3 ) 2 (\lambda - 3)^2 ( λ − 3 ) 2 ( λ − 3 ) 2 (\lambda - 3)^2 ( λ − 3 ) 2 대수적 중복도 2 2 A − 3 I A - 3I A − 3 I 영행렬, 랭크 0 [ 0 1 0 0 ] \begin{bmatrix} 0 & 1 \\ 0 & 0\end{bmatrix} [ 0 0 1 0 ] , 랭크 1기하적 중복도 2 − 0 = 2 2 - 0 = 2 2 − 0 = 2 2 − 1 = 1 2 - 1 = 1 2 − 1 = 1 대각화 가능 불가능
갈리는 것은 고윳값이 아니라 랭크이다. 고윳값이 겹치는 것 자체는 죄가 아니다.
겹친 만큼 고유벡터가 따라오지 못하는 것이 문제이다.
4. 모자란 자리를 메운다 ¶ 고유벡터가 하나 모자란다. 그러면 비슷한 것이라도 만들어 넣으면 되지 않을까.
λ = 3 \lambda = 3 λ = 3 의 고유벡터를 v 1 \vv{v}_1 v 1 이라 하자. ( A − 3 I ) v 1 = 0 (A - 3I)\vv{v}_1 = \vv{0} ( A − 3 I ) v 1 = 0 이다.
그다음 벡터로 다음을 만족하는 v 2 \vv{v}_2 v 2 를 찾는다.
( A − λ I ) v 2 = v 1 (A - \lambda I)\,\vv{v}_2 = \vv{v}_1 ( A − λ I ) v 2 = v 1 0으로 가지는 않지만 한 걸음 만에 고유벡터가 되는 벡터 이다. 이런 것을
일반화 고유벡터 라 한다. 둘을 이으면 사슬이 된다.
v 2 → A − λ I v 1 → A − λ I 0 \vv{v}_2
\;\xrightarrow{\;A - \lambda I\;}\;
\vv{v}_1
\;\xrightarrow{\;A - \lambda I\;}\;
\vv{0} v 2 A − λ I v 1 A − λ I 0 Figure 2: 왼쪽이 사슬이고 오른쪽이 그 결과 만들어지는 블록이다.
앵커로 끝까지 해 보자 ¶ 다음 행렬을 보자. 대각에 1도 없고 겉보기에 평범하다.
A = [ 5 4 − 1 1 ] A = \begin{bmatrix} 5 & 4 \\ -1 & 1 \end{bmatrix} A = [ 5 − 1 4 1 ] tr ( A ) = 6 \operatorname{tr}(A) = 6 tr ( A ) = 6 이고 det A = 5 + 4 = 9 \det A = 5 + 4 = 9 det A = 5 + 4 = 9 이므로 특성방정식이
λ 2 − 6 λ + 9 = ( λ − 3 ) 2 \lambda^2 - 6\lambda + 9 = (\lambda - 3)^2 λ 2 − 6 λ + 9 = ( λ − 3 ) 2 이다. λ = 3 \lambda = 3 λ = 3 이 중근 이다.
고유벡터를 구하자.
A − 3 I = [ 2 4 − 1 − 2 ] A - 3I = \begin{bmatrix} 2 & 4 \\ -1 & -2 \end{bmatrix} A − 3 I = [ 2 − 1 4 − 2 ] 두 행이 서로의 -2 배라 랭크가 1이다. 기하적 중복도가 1이라 결함 행렬이다.
영공간은 2 x 1 + 4 x 2 = 0 2x_1 + 4x_2 = 0 2 x 1 + 4 x 2 = 0 , 곧 x 1 = − 2 x 2 x_1 = -2x_2 x 1 = − 2 x 2 이다.
v 1 = [ 2 − 1 ] \vv{v}_1 = \begin{bmatrix} 2 \\ -1 \end{bmatrix} v 1 = [ 2 − 1 ] 이제 (9) 의 식을 푼다. ( A − 3 I ) v 2 = v 1 (A - 3I)\vv{v}_2 = \vv{v}_1 ( A − 3 I ) v 2 = v 1 이다.
[ 2 4 − 1 − 2 ] v 2 = [ 2 − 1 ] \begin{bmatrix} 2 & 4 \\ -1 & -2 \end{bmatrix}\vv{v}_2
= \begin{bmatrix} 2 \\ -1 \end{bmatrix} [ 2 − 1 4 − 2 ] v 2 = [ 2 − 1 ] 첫 줄이 2 a + 4 b = 2 2a + 4b = 2 2 a + 4 b = 2 , 곧 a + 2 b = 1 a + 2b = 1 a + 2 b = 1 이다. 둘째 줄 − a − 2 b = − 1 -a - 2b = -1 − a − 2 b = − 1 은 첫 줄에
-1 을 곱한 것이라 새 정보가 없다. b = 0 b = 0 b = 0 으로 잡으면 a = 1 a = 1 a = 1 이다.
v 2 = [ 1 0 ] \vv{v}_2 = \begin{bmatrix} 1 \\ 0 \end{bmatrix} v 2 = [ 1 0 ] 두 벡터를 열에 세운다. 순서가 중요하다. 고유벡터가 먼저이다.
M = [ v 1 v 2 ] = [ 2 1 − 1 0 ] , det M = 0 − ( − 1 ) = 1 M = \begin{bmatrix} \vv{v}_1 & \vv{v}_2 \end{bmatrix}
= \begin{bmatrix} 2 & 1 \\ -1 & 0 \end{bmatrix},
\qquad
\det M = 0 - (-1) = 1 M = [ v 1 v 2 ] = [ 2 − 1 1 0 ] , det M = 0 − ( − 1 ) = 1 계산해 보면 이렇게 된다.
M − 1 A M = [ 3 1 0 3 ] = B M^{-1}AM = \begin{bmatrix} 3 & 1 \\ 0 & 3 \end{bmatrix} = B M − 1 A M = [ 3 0 1 3 ] = B 대각에 1이 하나 붙은 모양이 나왔다. 왜 그런지는 (10) 의 사슬을 열별로
읽으면 보인다. A M AM A M 의 열은 A v 1 A\vv{v}_1 A v 1 과 A v 2 A\vv{v}_2 A v 2 인데,
A v 1 = 3 v 1 , A v 2 = 3 v 2 + v 1 A\vv{v}_1 = 3\vv{v}_1,
\qquad
A\vv{v}_2 = 3\vv{v}_2 + \vv{v}_1 A v 1 = 3 v 1 , A v 2 = 3 v 2 + v 1 이다. 아래 식은 (9) 의 정의를 옮겨 쓴 것이다. 두 결과를 v 1 , v 2 \vv{v}_1, \vv{v}_2 v 1 , v 2 의
결합으로 보면 계수가 각각 ( 3 , 0 ) (3, 0) ( 3 , 0 ) 과 ( 1 , 3 ) (1, 3) ( 1 , 3 ) 이고, 그것이 B B B 의 두 열이다.
v 1 \vv{v}_1 v 1 이 한 칸 옆으로 흘러든 자리가 대각 위의 1이다.
조르당 블록과 조르당 형 ¶ 이것이 2절에서 찾던 가족의 대표 이다. 대각화 가능한 가족에서는 모든 블록의 크기가
1이라 대표가 Λ \Lambda Λ 가 되고, 그렇지 않으면 크기 2 이상인 블록이 생긴다.
블록의 개수를 세는 법도 분명하다. 블록 하나가 사슬 하나이고, 사슬 하나가 고유벡터
하나를 낳는다.
λ 에 딸린 블록의 개수 = λ 의 기하적 중복도 \lambda \text{ 에 딸린 블록의 개수} = \lambda \text{ 의 기하적 중복도} λ 에 딸린 블록의 개수 = λ 의 기하적 중복도 λ 에 딸린 블록 크기의 합 = λ 의 대수적 중복도 \lambda \text{ 에 딸린 블록 크기의 합} = \lambda \text{ 의 대수적 중복도} λ 에 딸린 블록 크기의 합 = λ 의 대수적 중복도 Figure 2 의 오른쪽 세 행렬이 그 예이다. 고윳값이 모두 5로 같고 대수적
중복도가 모두 3인데, 블록이 각각 3개, 2개, 1개이다.
5. t e λ t te^{\lambda t} t e λ t 의 정체 ¶ L23에서 미뤄 둔 것을 갚을 차례이다. 조르당 블록의 지수함수를 계산해 보자.
블록을 두 조각으로 나눈다.
J = [ λ 1 0 λ ] = λ I + N , N = [ 0 1 0 0 ] J = \begin{bmatrix} \lambda & 1 \\ 0 & \lambda \end{bmatrix}
= \lambda I + N,
\qquad
N = \begin{bmatrix} 0 & 1 \\ 0 & 0 \end{bmatrix} J = [ λ 0 1 λ ] = λ I + N , N = [ 0 0 1 0 ] N N N 에는 놀라운 성질이 있다. 제곱하면 사라진다.
N 2 = [ 0 1 0 0 ] [ 0 1 0 0 ] = [ 0 0 0 0 ] N^2 = \begin{bmatrix} 0 & 1 \\ 0 & 0 \end{bmatrix}
\begin{bmatrix} 0 & 1 \\ 0 & 0 \end{bmatrix}
= \begin{bmatrix} 0 & 0 \\ 0 & 0 \end{bmatrix} N 2 = [ 0 0 1 0 ] [ 0 0 1 0 ] = [ 0 0 0 0 ] 그리고 λ I \lambda I λ I 는 모든 행렬과 교환하므로 L23의 경고에 걸리지 않는다.
e A e B = e A + B e^{A}e^{B} = e^{A+B} e A e B = e A + B 를 쓸 수 있다.
e J t = e ( λ I + N ) t = e λ t e N t e^{Jt} = e^{(\lambda I + N)t} = e^{\lambda t}\,e^{Nt} e J t = e ( λ I + N ) t = e λ t e Nt 이제 e N t e^{Nt} e Nt 를 급수로 펼친다. N 2 = 0 N^2 = 0 N 2 = 0 이므로 두 항에서 급수가 끝난다.
e N t = I + N t + ( N t ) 2 2 ! ⏟ = 0 + ⋯ = I + N t = [ 1 t 0 1 ] e^{Nt} = I + Nt + \underbrace{\frac{(Nt)^2}{2!}}_{=\,0} + \cdots
= I + Nt
= \begin{bmatrix} 1 & t \\ 0 & 1 \end{bmatrix} e Nt = I + Nt + = 0 2 ! ( Nt ) 2 + ⋯ = I + Nt = [ 1 0 t 1 ] 합치면 답이 나온다.
e J t = e λ t [ 1 t 0 1 ] e^{Jt} = e^{\lambda t}\begin{bmatrix} 1 & t \\ 0 & 1 \end{bmatrix} e J t = e λ t [ 1 0 t 1 ] u ( t ) = e J t u ( 0 ) \vv{u}(t) = e^{Jt}\vv{u}(0) u ( t ) = e J t u ( 0 ) 을 성분으로 쓰면 t t t 가 어디서 나오는지 보인다.
u 1 ( t ) = e λ t ( u 1 ( 0 ) + t u 2 ( 0 ) ) , u 2 ( t ) = e λ t u 2 ( 0 ) u_1(t) = e^{\lambda t}\left(u_1(0) + t\,u_2(0)\right),
\qquad
u_2(t) = e^{\lambda t}u_2(0) u 1 ( t ) = e λ t ( u 1 ( 0 ) + t u 2 ( 0 ) ) , u 2 ( t ) = e λ t u 2 ( 0 ) 블록이 크면 어떻게 되는가. J k J_k J k 에서는 N k = 0 N^k = 0 N k = 0 이므로 급수가 k k k 항에서 끝나고,
t k − 1 t^{k-1} t k − 1 까지 나온다.
e J 3 ( λ ) t = e λ t [ 1 t t 2 / 2 0 1 t 0 0 1 ] e^{J_3(\lambda)t} = e^{\lambda t}\begin{bmatrix}
1 & t & t^2/2 \\
0 & 1 & t \\
0 & 0 & 1
\end{bmatrix} e J 3 ( λ ) t = e λ t ⎣ ⎡ 1 0 0 t 1 0 t 2 /2 t 1 ⎦ ⎤ 미적분에서 삼중근일 때 e λ t , t e λ t , t 2 e λ t e^{\lambda t}, te^{\lambda t}, t^2e^{\lambda t} e λ t , t e λ t , t 2 e λ t 셋을 쓰라고 배운
것이 이것이다. t t t 의 최고 차수는 블록의 크기에서 1을 뺀 값이다.
6. 그런데 왜 쓰지 않는가 ¶ 이론이 완성되었다. 모든 행렬에 대표가 있고, 그 대표가 유일하며, 미분방정식의 답까지
설명한다. 그런데 실무에서는 거의 쓰지 않는다. 이유가 하나뿐이지만 결정적이다.
결함은 칼날 위에 서 있다 ¶ B B B 의 성분 하나를 아주 조금만 건드려 보자.
B ϵ = [ 3 1 ϵ 3 ] B_\epsilon = \begin{bmatrix} 3 & 1 \\ \epsilon & 3 \end{bmatrix} B ϵ = [ 3 ϵ 1 3 ] 특성방정식을 세운다.
det [ 3 − λ 1 ϵ 3 − λ ] = ( 3 − λ ) 2 − ϵ = 0 \det\begin{bmatrix} 3 - \lambda & 1 \\ \epsilon & 3 - \lambda \end{bmatrix}
= (3-\lambda)^2 - \epsilon = 0 det [ 3 − λ ϵ 1 3 − λ ] = ( 3 − λ ) 2 − ϵ = 0 λ = 3 ± ϵ \lambda = 3 \pm \sqrt\epsilon λ = 3 ± ϵ 두 가지가 한꺼번에 무너진다.
첫째, 결함이 사라진다. ϵ ≠ 0 \epsilon \neq 0 ϵ = 0 이면 고윳값이 서로 다르므로 L22에 의해
대각화가 가능하다. 아무리 작은 ϵ \epsilon ϵ 이어도 그렇다. 결함 행렬은 ϵ = 0 \epsilon = 0 ϵ = 0
이라는 한 점에만 존재한다.
둘째, 고윳값이 섭동보다 훨씬 크게 움직인다. ϵ \epsilon ϵ 을 건드렸는데 고윳값은
ϵ \sqrt\epsilon ϵ 만큼 움직인다. ϵ = 1 0 − 12 \epsilon = 10^{-12} ϵ = 1 0 − 12 이면 ϵ = 1 0 − 6 \sqrt\epsilon = 10^{-6} ϵ = 1 0 − 6 이다.
백만 배로 증폭된다.
Figure 3: 같은 크기의 섭동을 같은 축 위에서 비교한 것이다. 대각화 가능한 쪽은 거의 움직이지
않는데 결함 쪽은 ϵ \sqrt\epsilon ϵ 만큼 벌어진다.
작을수록 더 나쁘다 ¶ 증폭이 얼마나 되는지 대각화 가능한 행렬과 견줘 보자. 대각화 가능한 쪽은 고윳값이
섭동에 비례해서 움직인다.
섭동 ϵ \epsilon ϵ 결함 행렬 대각화 가능 몇 배 10-12 10-6 5 × 1 0 − 13 5 \times 10^{-13} 5 × 1 0 − 13 2,000,000 10-8 10-4 5 × 1 0 − 9 5 \times 10^{-9} 5 × 1 0 − 9 20,000 10-4 10-2 5 × 1 0 − 5 5 \times 10^{-5} 5 × 1 0 − 5 200
Figure 4: 왼쪽의 두 기울기가 1 2 \tfrac12 2 1 과 1 이다. 오른쪽이 그 비이다.
표를 거꾸로 읽어야 한다. 섭동이 작을수록 상대적 피해가 커진다.
보통은 입력을 정밀하게 할수록 출력도 정밀해지기를 기대하는데, 여기서는 반대이다.
컴퓨터에게는 보이지 않는다 ¶ 컴퓨터는 실수를 유한한 자릿수로 저장한다. 배정밀도에서 상대오차가 대략 10-16 이다.
곧 컴퓨터에 넣는 순간 모든 행렬이 10-16 크기의 섭동을 받는다.
그러면 결함은 어떻게 되는가. 사라진다. 그리고 고윳값은 1 0 − 16 = 1 0 − 8 \sqrt{10^{-16}} = 10^{-8} 1 0 − 16 = 1 0 − 8 만큼
흔들린다. 계산을 아무리 정확하게 해도 입력 단계에서 이미 여덟 자리를 잃는다.
증상은 고유벡터 행렬의 조건수로도 드러난다. 대각화 가능한 행렬은 S S S 가 멀쩡한데,
결함에 가까워질수록 S S S 의 두 열이 서로 붙으면서 조건수가 폭발한다.
[ 2 1 1 2 ] : 1 , [ 5 4 − 1 1 ] : 1.7 × 1 0 8 , [ 3 1 0 3 ] : 3 × 1 0 15 \begin{bmatrix} 2 & 1 \\ 1 & 2 \end{bmatrix} : \; 1,
\qquad
\begin{bmatrix} 5 & 4 \\ -1 & 1 \end{bmatrix} : \; 1.7 \times 10^{8},
\qquad
\begin{bmatrix} 3 & 1 \\ 0 & 3 \end{bmatrix} : \; 3 \times 10^{15} [ 2 1 1 2 ] : 1 , [ 5 − 1 4 1 ] : 1.7 × 1 0 8 , [ 3 0 1 3 ] : 3 × 1 0 15 S − 1 S^{-1} S − 1 을 써야 하는 모든 계산이 그 조건수만큼 오차를 증폭한다.
그러면 무엇을 쓰는가 ¶ 두 가지 대안이 있다.
슈어 분해. A = Q T Q H A = QTQ^{\mathsf H} A = QT Q H 로 쓴다. Q Q Q 는 유니타리이고 T T T 는 상삼각이다.
대각화만큼 단순하지는 않지만 모든 행렬에 대해 존재하고 수치적으로 안정하다.
Q Q Q 가 유니타리라 길이를 보존하므로 오차가 증폭되지 않는다(L26).
특이값 분해. 다음 강의의 주제이다.
7. 자주 하는 오해 ¶ 조르당 형을 계산해서 쓸 수 있다는 오해 ¶ 6절이 그 이야기였다. 소프트웨어가 함수를 제공하기 때문에 오히려 더 위험하다.
정확한 유리수 산술을 쓰는 기호계산 환경에서는 뜻이 있지만, 부동소수점으로는
얻은 결과가 무엇을 뜻하는지 알 수 없다.
결함 행렬이 희귀한 예외라는 오해 ¶ 무작위로 행렬을 뽑으면 결함이 나올 확률은 0이다. 특성다항식이 중근을 가져야 하는데
그것은 측도 0인 조건이기 때문이다.
그러나 실무의 행렬은 무작위가 아니다. 구조에서 나온 행렬은 중근을 흔히 갖는다.
L23에서 본 동반행렬이 그 예이다. y ′ ′ + 2 y ′ + y = 0 y'' + 2y' + y = 0 y ′′ + 2 y ′ + y = 0 의 동반행렬은 결함 행렬이었다.
제어이론과 진동 해석에는 이런 행렬이 널려 있다.
유사와 합동을 혼동하는 것 ¶ 1절에서 경고했다. M − 1 A M M^{-1}AM M − 1 A M 과 M T A M M^{\mathsf T}AM M T A M 은 다른 것이다.
대각 위의 1을 "그냥 그렇게 정한 것"으로 아는 오해 ¶ (18) 에서 본 대로 그 1은 ( A − λ I ) v 2 = v 1 (A - \lambda I)\vv{v}_2 = \vv{v}_1 ( A − λ I ) v 2 = v 1 이라는
사슬이 남긴 자국이다. 1 대신 다른 수를 넣어도 유사한 행렬이 되지만(v 2 \vv{v}_2 v 2 의 배율을
바꾸면 된다), 1로 맞춰 두는 것이 관례이다.
마치며... ¶ 이번 강의에서 다룬 것을 정리하면 다음과 같다.
대상 내용 유사 B = M − 1 A M B = M^{-1}AM B = M − 1 A M . 같은 변환, 다른 좌표계고윳값 보존 det ( B − λ I ) = det ( A − λ I ) \det(B - \lambda I) = \det(A - \lambda I) det ( B − λ I ) = det ( A − λ I ) — 세 줄가족 유사는 동치관계. 가족마다 대표를 뽑는다 대각화 대표가 Λ \Lambda Λ 인 가족에 속한다는 뜻 두 중복도 대수(특성다항식) vs 기하(고유벡터 개수) 결함 기하 < < < 대수. 3 I 3I 3 I 와 B B B 를 가르는 것은 랭크 일반화 고유벡터 ( A − λ I ) v 2 = v 1 (A - \lambda I)\vv{v}_2 = \vv{v}_1 ( A − λ I ) v 2 = v 1 — 한 걸음 뒤에서 빌린다조르당 블록 대각에 λ \lambda λ , 그 위에 1. 블록 수 = = = 고유벡터 수 t e λ t te^{\lambda t} t e λ t N 2 = 0 N^2 = 0 N 2 = 0 이라 급수가 두 항에서 끝난다ϵ \sqrt\epsilon ϵ ( 3 − λ ) 2 = ϵ (3-\lambda)^2 = \epsilon ( 3 − λ ) 2 = ϵ 에서 곧바로왜 안 쓰나 섭동이 작을수록 상대 피해가 크다. 컴퓨터에는 안 보인다 대안 슈어 분해, 그리고 특이값 분해
고유벡터가 모자랄 때 일반화 고유벡터로 자리를 메우고, 그 결과 대각선 바로 위에 1이
놓인 조르당 블록이 만들어진다는 것을 보았다. 그리고 그 1이 미분방정식에서
t e λ t te^{\lambda t} t e λ t 를 만들어 내는 범인이었다는 것도 확인하였다. 다섯 강의 전에 미뤄 두었던
질문에 이제야 답한 셈이다.
그러나 결론은 씁쓸하다. 조르당 형은 아주 작은 섭동에도 무너진다. 반올림 오차를 피할 수
없는 컴퓨터에게 이 구조는 사실상 보이지 않는다. 아름다운 이론이지만 손에 쥘 수 없는
이론이다.
지금까지 우리가 다룬 분해에는 늘 조건이 붙어 있었다. L U LU LU 는 소거가 막히지 않아야 했고,
Q R QR QR 은 열이 독립이어야 했고, 대각화는 고유벡터가 n n n 개여야 했고, 스펙트럼 정리는
대칭이어야 했고, 조르당 형은 존재하지만 계산할 수 없었다.
그렇다면 이런 분해는 없을까. 정사각행렬이 아니어도 되고, 고유벡터가 모자라도 되고,
랭크가 부족해도 되고, 섭동에도 흔들리지 않는 분해. 조건이 하나도 없는 분해 말이다.
있다. 다음 강의는 이 교재의 정점이다.
이번 강의의 내용을 파이썬으로 확인해 보려면 L28 실습 노트북 으로 넘어가면 된다.
결함 행렬을 조르당 형으로 직접 옮겨 보고, 섭동을 슬라이더로 키워 가며 고윳값이 어떻게
갈라지는지 보며, 대각화 가능한 행렬과 견줘 오차가 몇 배나 증폭되는지 재 볼 수 있다.