문서:케일리-해밀턴 정리

문서의 이전 버전(r41)을 보고 있습니다.

역사 raw
대문 랜덤 문서 최근 토론


1. 개요2. [[고등학교]]에서의 케일리-해밀턴 정리3. 진술4. 증명법
4.1. [[삼각화]]를 이용한 증명4.2. 대수적 증명4.3. cyclic subspace를 이용한 증명4.4. 기타

1. 개요

Cayley-Hamilton theorem
1을 갖는 가환환 위의 n차 정사각행렬은 차수가 n인 특수한 방정식의 해가 된다는 정리이다. 이름은 아서 케일리윌리엄 로원 해밀턴의 이름에서 따왔다.

이 방정식은 선형대수학을 대학 수준에서 조금이라도 배웠으면 친숙할, 행렬의 특성방정식이다. 행렬의 고윳값이 해가 되기에 고윳값 문제만 나오면 학생들이 닥치고 푸는 [math(text{det}(lambda I-A)=0)] (행렬 [math(A)]의 특성방정식) 말이다. 여기에 복소수 스칼라 [math(lambda)] 대신 자기 자신의 행렬 [math(A)]를 넣어도 방정식이 성립한다는 정리다. 물론 변수를 스칼라 대신 행렬을 넣었으므로 숫자 0도 영행렬로 바꿔야 한다.

증명을 [math(text{det}(lambda I-A)=0)]에서 [math(lambda)] 대신 [math(A)]를 넣고 [math(text{det}(A-A)=0)]이니 성립한다고 하면 교수님한테 털릴 것이다. 원래 방정식의 [math(lambda)]는 스칼라인데 행렬을 무턱대고 넣으면 탈이 나는 법.[1] 애초에 [math(text{det}(lambda I-A)=0)]의 [math(0)]은 스칼라 [math(0)]이고 특성방정식에 [math(A)]를 대입해서 나오는 [math(O)]은 영행렬이니 혼동하면 안된다. 이 증명이 틀린 이유에 대해서는 여기의 27페이지를, 엄밀한 증명은 이곳을 참조.

2. 고등학교에서의 케일리-해밀턴 정리


행렬 문제를 좀 더 쉽게 풀 수 있는 꼼수의 일종.

2차 정사각행렬의 경우는 이렇다.

[math( A = begin{bmatrix} a quad b \ c quad d end{bmatrix} )]로 두면,
[math( A^{2} - left(a+dright)A + left(ad - bcright) E = O )] 라고 학생들은 기억하고 있다. 고등학교 수학에서 행렬의 연산은 거의 2차 정사각행렬만 다루므로 이렇게만 기억하면 된다. 의외로 많은 학생들이 모르는 사실이지만 이 수식은 로피탈 정리와 마찬가지로 교육과정에서 다루지 않는 내용[6]이다. 대부분 교과서보다는 주로 참고서 위주로 공부하다보니, 이 식이 참고서에 있어서 교육과정 중 하나로 생각하는 학생들이 많은 편. 못 믿겠다면 지금 수학1(2007개정) 교과서를 펴서 확인해보자. 교과서 어디에도 이 수식은 나와있지 않을 뿐더러 나온다 하더라도 쉬어가는 페이지에서 헤밀턴이란 수학자를 소개함과 동시에 짤막하게 언급되는 정도로만 등장할 것이다.

애초에 이 식은 행렬 그 자체보단 대학교에서 더 포괄적인 수식들(특성방정식)을 풀 때 쓰기에, 특성방정식 자체를 다루지 않는 고등학교에서는 설명이 불가능하다. 쉽게 말해서 이제 막 방정식의 개념과 1차 방정식 풀이법을 배우는 중1 학생들에게 2차 방정식 근의 공식을 증명해줄 수 없는 것과 같다. 1차를 푸는데 2차 공식이 왜 필요할까 학생들에게 특정 개념이 정확히 어떤 것인지를 알 게 해주는 게 1번째 목적인 수학교육과정 특성상 증명이 불가능한 수식을 내놓을 수는 없다. 선형대수학의 '선'자도 모르는 학생들에게 케일리-해밀턴 정리를 주고 '이거 쓰면 문제 쉽게 풂 ㅇㅇ'하는 것은 수학이라는 과목에 대한 취지를 벗어나는 것이다.

실제로 교육과정에 없는 정리이다보니 삽자루 등 몇몇 인강강사들은 케일리-해밀턴 정리를 아예 가르치지 않는다. 특히 선행학습을 굉장히 극혐하는 삽자루는 케일리-해밀턴 얘기만 나오면 욕을 남발하는 것으로 유명하다. 다만 내신 시험에서는 학교 선생님의 취향에 따라 케일리-해밀턴 정리를 풀이 과정에 서술해도 눈감아 주거나 아예 케일리-해밀턴 정리만을 위한 문제가 종종 나오기도 한다.보통 [math(left(a+dright))]의 최솟값이나 [math(left(ad-bcright))]의 최댓값을 물어보는 문제가 출제되는데, [math(A=kE)] 와 [math(Aneq kE)] 두 경우로 나누어 해결하면 된다.

3. 진술

[math( n times n )] 행렬 [math(A)]가 있을 때, [math(A)]의 특성다항식이
[math(pleft(lambda right) = det left(lambda I_n -A right) = lambda^n + c_{n-1} lambda^{n-1} + cdots + c_1 lambda + c_0 )]
라고 하자. 그러면 이 다항식의 [math(lambda)] 자리에 [math(A)]를 넣어 계산하면 영행렬이 된다. 즉,
[math(pleft(A right) = A^n + c_{n-1} A^{n-1} + cdots + c_1 A + c_0 I_n = O)]
가 성립한다.

4. 증명법

4.1. 삼각화를 이용한 증명

행렬을 삼각화하여 증명하는 방법이 있다.[7] 서로 상사인 행렬은 특성다항식이 같기 때문에, 행렬 [math(A)]에 대해 정리가 성립하면 [math(A)]와 상사인 행렬에도 정리가 성립하기 때문이다.

[math( n times n )] 행렬 [math(A)]를 삼각화한 것이 [math(T)]라고 하자. 이때 [math(T)]가 다음과 같은 꼴이라면
[math(T=begin{pmatrix} lambda_1 & cdots & cdots & * \ & lambda_2 & & vdots \ & & ddots & vdots \ mathbf{0}& & & lambda_n end{pmatrix})]
[math(T)]의 특성다항식은 [math(phi_T (t) = left(t- lambda_1right) left(t- lambda_2right) cdots left(t- lambda_nright))]와 같이 되기 때문에 다음을 보이면 된다.
[math(phi_T (T) = left(T- lambda_1 I_nright) left(T - lambda_2 I_nright) cdots left(T- lambda_n I_nright) = O)]
이를 다시 쓰면
[math(begin{pmatrix} 0 & cdots & cdots & * \ & * & & vdots \ & & ddots & vdots \ mathbf{0}& & & * end{pmatrix} begin{pmatrix} * & cdots & cdots & * \ & 0 & & vdots \ & & ddots & vdots \ mathbf{0}& & & * end{pmatrix} cdots begin{pmatrix} * & cdots & cdots & * \ & * & & vdots \ & & ddots & vdots \ mathbf{0}& & & 0 end{pmatrix} = O)]
이라는 것이다. 이것은 귀납법을 이용해 보일 수 있다.

4.2. 대수적 증명

상당히 대수학적인 다음의 증명은 순수수학 교재에서 많이 다루는 편이다.

[math( n times n )] 행렬 [math(A)]의 특성방정식을
[math(displaystyle p_A(lambda) = lambda^n + c_{n-1} lambda^{n-1} + cdots + c_1 lambda + c_0 )]
로 쓰자. 이때 [math(lambda I_n - A)]에 대한 크라메르 공식 [math( (lambda I_n - A) mathrm{adj}(lambda I_n - A) = p_A(lambda) I_n )] 을 생각한다. 한편 [math(text{adj}(lambda I_n -A))]의 각 성분들은 [math(lambda)]에 대한 n-1차 이하의 다항식이기 때문에, [math(lambda)]로 정리하여
[math(displaystyle text{adj}(lambda I_n -A)=sum_{i=0}^{n-1} lambda^i B_i)]
로 쓸 수 있다.(여기서 [math(B_i)]들은 적당한 [math(n times n )] 행렬이다.) 이제 [math( (lambda I_n - A) mathrm{adj}(lambda I_n - A) = p_A(lambda) I_n )]에 대입해 보면
[math(displaystyle (lambda I_n - A) left( sum_{i=0}^{n-1} lambda^i B_i right) = lambda^n I_n + lambda^{n-1} c_{n-1}I_n+ cdots + lambda c_1 I_n+ c_0 I_n)]
이다. 여기서 양변의 [math(lambda^i)]의 계수를 비교하면
[math(B_{n-1} = I_n , B_{i-1} - A B_i = c_i I_n (1leq i leq n-1) , -AB_0 =c_0 I_n )]
이다. 따라서
[math(begin{aligned} p_Aleft(A right) &= A^n + c_{n-1} A^{n-1} + cdots + c_1 A + c_0 I_n \ &= A^n B_{n-1} + A^{n-1} left(B_{n-2} - A B_{n-1} right) + cdots + A left(B_0 - A B_{1} right) -AB_0 = O . end{aligned})]

4.3. cyclic subspace를 이용한 증명

[math( n times n )] 행렬 [math(A)]가 있을 때, [math(A)]의 특성다항식을 [math(phi_A(x))]라고 하자. 이때, [math(phi_A left(Aright) = O )]라는 것은 임의의 벡터 [math(vin mathbb{R}^n)]에 대해 [math(phi_A left(Aright)v = mathbf{0})]라는 것과 같다. 따라서 이를 증명하면 된다.

[math(v = mathbf{0})]이면 당연히 [math(phi_A left(Aright)v = mathbf{0})]가 성립하므로, 벡터 [math(v neq mathbf{0})]라 하자. 이때 다음과 같은 다항식들의 집합을 정의한다.
[math(mathcal{I}_v = left{p(x) in mathbb{R} left[xright] : p(A)v = mathbf{0} right} )]
[math(mathcal{I}_v )]에서 차수가 가장 낮은 것 중 최고차항 계수가 1인 것을 [math(m_v(x))]라고 하자. 그러면 [math(v neq mathbf{0})]이므로, [math(deg m_v geq 1)]이다. 이때
[math(m_v(x) = x^d + a_{d-1}x^{d-1} + cdots + a_1 x + a_0)]
라고 쓰자([math(dgeq 1 )]).

한편 선형사상 [math(L_A: mathbb{R}^n to mathbb{R}^n, X mapsto AX)]에 대하여 [math(v)]로 생성되는 cyclic space를 [math(W)]라 하자. 즉,
[math(W = langle v, Av, A^2 v, cdots rangle)]
이다. 그러면 [math(deg m_v = d)]이므로, [math(W)]의 기저는 [math(mathcal{B} = left{v, Av, cdots, A^{d-1}v right})]가 된다.

[math(L_A)]를 [math(W)]로 제한한 선형사상 [math(L_A|_W:W to W, X mapsto AX)]를 기저 [math(mathcal{B} )]를 이용해 행렬로 나타낸 것을 [math(C)]라고 하면
[math( C = begin{pmatrix} 0 & 0 & cdots & 0 & -a_0 \ 1 & 0 & cdots & 0 & -a_1 \ 0 & 1 & cdots & 0 & -a_2 \ vdots & vdots & ddots & vdots & vdots \ 0 & 0 & cdots & 1 & -a_{d-1} end{pmatrix} )]
이다. 그러면 이로부터 [math(L_A|_W)]의 특성다항식이 [math(m_v(x))]임을 알 수 있다.

[math(L_A)]의 특성다항식은 [math(L_A|_W)]의 특성다항식의 배수이므로, [math(phi_A left(xright) in mathcal{I}_v )]. 따라서 [math(phi_A left(Aright)v = mathbf{0})]이다.

4.4. 기타

만약 조르당 분해나 rational canonical form을 먼저 배웠다면 이걸 활용해서 증명할 수도 있지만[8], 대부분의 교재에서는 케일리-해밀턴 정리를 먼저 배우기 때문에 잘 사용되는 방법은 아니다. 또 비슷하게 대각행렬에 대해 먼저 증명하는 방법이 있다. 다만 이 경우는 대각화가 안되는 행렬들이 있으므로, 모든 행렬이 대각행렬의 극한으로 나타낼 수 있다는 것을 보이는 과정이 필요하다.[9] 이 증명은 행렬계산이 대각행렬 곱셈 말고는 없다시피하므로 행렬을 공부하지 않는 과목에서 이 정리가 필요하면 종종 사용하는 방법이다. 이 두 증명에 대해서는 여기에서 자세히 볼 수 있다.

[1] “저자의 경험에 의하면, 한 교실에 한 명쯤은 이 증명이 옳다고 끝까지 우긴다…” from 이인석, 《학부 대수학 강의 I: 선형대수와 군》, 서울대학교출판부, 2005.역시 서울대생도 사람이구나 참고로 저 책에서는 위와 같은 억지 증명을 “막가파式 증명”으로 소개하고 있다.증명 다음에 나오는 ㅋㅋ는 덤 [2] 2009 개정 교육과정[3] 학습지도요령 2002 개정 및 2020 개정[4] 2009 개정 교육과정[5] 학습지도요령 2002 개정 및 2020 개정[6] 일본에서는 없어진 수학C에서 케일리-해밀턴 정리를 배우고, 2차학력시험에서 평가했다. 2022년 부활 예정[7] 다만 이 방법은 <math>mathbb{C}</math> 위에서처럼 임의의 1차 이상의 다항식이 항상 1차 다항식의 곱꼴로 인수분해가 가능한 경우에만, 즉 대수적으로 닫힌 체 위에서만 적용되는 증명 방법이다.[8] rational canonical form은 행렬을 동반행렬(companion matrix)의 블록으로 나타내는데, 동반행렬의 최소다항식은 특성다항식과 동일하기 때문에 바로 증명된다.[9] 특성방정식의 판별식이 0이 아니면 고유값이 전부 다르므로 대각화 가능한데, 이 영역은 특정 다항식이 0이 아닌 영역이므로 조밀하다는 식으로 넘어갈 수 있다.