정사각행렬(square matrix)의 거듭제곱

      Comments Off on 정사각행렬(square matrix)의 거듭제곱

정사각행렬(square matrix)sub> A에 대하여 행렬의 거듭제곱을 정의할 수 있다. 예를 들어 3×3 행렬 A

A=[111315113]

와 같이 주어졌다고 하자. 그러면

A2=[111315113][111315113]=[311517113]

와 같이 직접 계산을 통해 구할 수 있다. 하지만 충분히 큰 양의 정수 n에 대하여 An을 직접 구해야 하는 상황이라면 어떻게 해야 할까?

An을 구하는 직접적인 방법 중 하나는, 실제로 A,A2,A3,A4,를 직접 구해 나가면서 행렬 An의 원소가 갖는 패턴을 발견해 내는 것이다. 실제로 위 행렬 A부터 시작하여 계속 곱해 보면,

A=[111315113],A2=[311517113],A3=[7159111113],A4=[1511317119113],A5=[3112933135113],A6=[6316165167113]

를 얻는다. 따라서 일반적으로 An

()An=[2n112n32n+112n+3113]

이 될 것이라 짐작할 수 있다. 이 사실을 수학적 귀납법을 이용해 증명해 보자. 우선 n=1일 때는 자명하고,

An+1=AnA=[2n112n32n+112n+3113][111315113]=[2n+1112n+132n+1+112n+1+3113]

이므로 수학적 귀납법에 의해 ()가 성립한다.

위 행렬 A의 경우, 상대적으로 An의 각 원소가 가지는 패턴을 발견하기 쉬웠지만, 일반적인 경우 패턴을 발견하는게 간단한 일은 아니다. 하지만 만약 행렬 A가 대각화 가능 행렬(diagonalizable matrix)이라면, A를 먼저 대각화 한 후에 행렬의 연산 법칙을 이용하여 An을 비교적 쉽게 구할 수 있다.

예제 1. 위의 행렬 A에 대하여 생각해 보자. A는 서로 다른 고윳값(eigenvalue) 0,1,2를 가지므로 대각화 가능하다. 실제로 A를 대각화 해보면

A=PDP1,whereP=[111211110],D=[000010002]

를 얻는다. 그러므로

An=(PDP1)n=PDnP1=[111211110][000010002n][112113101]=[2n112n32n+112n+3113]

따라서 An을 얻는다..

위 방법은 주어진 행렬이 대각화 가능하지 않으면 적용이 불가능하다. 일반적으로 n×n 행렬이 서로 다른 n개의 고윳값을 가지지 않는다면, 그 행렬은 대각화 가능하지 않을 수도 있다. (물론 서로 다른 n개의 고윳값을 가지지 않는다고 해서 언제나 대각화가 불가능 한 것은 아니다.) 하지만, 만약 주어진 행렬이 단 하나의 서로 다른 고윳값을 갖는 경우, 멱영행렬(nilpotent matrix)의 성질을 이용하여 행렬의 거듭제곱을 구할 수 있는 방법이 있다. 자세한 내용은 다음 링크에서 확인할 수 있다.

위 사실을 바탕으로 다음 예를 살펴보자.

예제 2. 3×3 행렬 B를 다음과 같이 정의하자.

B=[212145010]

위 행렬 B의 경우 2를 유일한 고윳값으로 갖는다. 따라서 B2I는 멱영행렬이고 특히 (B2I)3=O이 성립한다. 따라서

Bn=(2I+B2I)n=2nI+n2n1(B2I)+n(n1)22n2(B2I)2+(B2I)3X=O=2n[100010001]+n2n1[012125012]+n(n1)22n2[101202101]=[2n+n(n1)2n3n2n12n2n1+n(n1)2n3n2n12n(n1)2n32n+2n2n15n2n12n(n1)2n3n(n1)2n3n2n12n2n2n1n(n1)2n3]

를 얻는다. (위에 주어진 Bn의 형태를 보면 알 수 있듯이, Bn을 각각의 원소의 패턴을 발견하여 구하는 것은 거의 불가능에 가까울 것이다.).

사실 n×n 정사각행렬들 중 대부분이 대각화 가능하기 때문에 (좀 더 자세히 설명하자면, n×n 정사각 행렬들의 집합 Mn(C)에 대하여, 대각화가 불가능한 n×n 행렬들의 부분집합은 르벡 측도(Legesgue measure) 0을 갖는다.) 대부분의 경우는 예제 1과 같이 주어진 행렬의 대각화를 통해서 행렬의 거듭제곱을 간단히 구할 수 있다. 하지만 예외적인 경우로 주어진 n×n 행렬 A의 대각화가 불가능한 경우를 생각해 보자. 이 경우에는, 어떤 정사각행렬이든지 (복소수 범위에서) 적어도 조르당 분해(Jordan decomposition)가 가능하다는 사실을 이용하여, 여전히 행렬의 거듭제곱을 구하는 것이 가능하다.

이제 A=PJP1A의 조르당 분해라 가정하자. 즉, JA의 조르당 표준형(Jordan normal form)이고 P는 가역행렬이다. 그러면 A의 거듭제곱은

Ak=(PJP1)k=PJkP1

과 같으므로, Jk을 계산할 수 있으면 Ak 또한 어렵지 않게 계산할 수 있다. 먼저 임의의 조르당 행렬(Jordan matrix) J에 대하여 Jk를 구하는 방법에 대해 살펴 보자.

n×n 행렬 J가 다음과 같이 블록 대각행렬(block diagonal matrix)의 형태로 주어질 때, J를 조르당 행렬이라 한다.

J=Jn1(λ1)Jn2(λ2)Jnm(λm)

이 때, 각각의 i=1,2,,m에 대하여 Jni(λi)λi에 대한 조르당 블록(Jordan block)이라 부르는데, 이는 다음과 같이 주어지는 ni×ni 상삼각행렬(upper triangular matrix)이다.

Ji(λi)=[λi1000λi10000λi]

단, n1+n2++nm=n이고, 모든 ij에 대하여 λiλj가 성립한다.

보조정리.

n×n 조르당 블록 Jn(λ)와 임의의 양의 정수 k에 대하여 다음이 성립한다.

Jn(λ)k=[(k0)λk(k1)λk1(k2)λk2(kn1)λkn+10(k0)λk(k1)λk1(kn2)λkkn+2000(k0)λk]

증명. k에 대한 수학적 귀납법을 이용하여 보일 수 있다..

참고. 위 보조정리는 다음과 같이 확장할 수 있다: f:RR가 실해석함수(real analytic function)이라 하자. 그러면 임의의 n×n 조르당 블록 Jn(λ)에 대하여 다음이 성립한다.

f(Jn(λ))=[f(λ)0!f(λ)1!f(λ)2!f(n1)(λ)(n1)!0f(λ)0!f(λ)1!f(n2)(λ)(n2)!000f(λ)0!]

그러면 위 보조정리는 f(x)=xk인 특수한 경우임 또한 확인할 수 있다.

정리.

n×n 조르당 행렬 J

J=Jn1(λ1)Jn2(λ2)Jnm(λm)

와 같이 주어졌다고 하자. 그러면 임의의 양의 정수 k에 대하여 다음이 성립한다.

Jk=Jn1(λ1)kJn2(λ2)kJnm(λm)k

증명. 블록 대각 행렬의 성질과 보조정리에 의해 성립한다..

위 정리를 이용하여, 실제로 주어진 행렬이 대각화가 불가능한 경우, 조르당 분해를 이용하여 그 행렬의 거듭제곱을 구하는 방법을 살펴보면 다음과 같다.

예제 3. 3×3 행렬 C를 다음과 같이 정의하자.

B=[212347111]

위 행렬 C21을 고윳값으로 가지며, 이 때, 고윳값 2의 대수적 중복도(algebraic multiplicity)2인 반면, 기하적 중복도(geometric multiplicity)1이므로 C는 대각화가 불가능하다. 대신 C의 조르당 분해를 구해보면

C=PJP1,whereP=[111211110],J=[210020001]

를 얻는다. 한 편, Jn

Jn=[2nn2n1002n0001]

로 주어짐을 알 수 있다. 따라서

Cn=(PJP1)n=PJnP1=[111211110][2nn2n1002n0001][112113101]=[1+n2n1n2n11+(3n2)2n11(n+1)2n(n+1)2n1(3n+1)2nn2n1n2n1(3n2)2n1]

따라서 Cn을 얻는다..