Loading [MathJax]/jax/output/CommonHTML/jax.js
본문 바로가기

선형대수

[개념] 행렬의 대각화(Diagonalization)

1. 행렬의 대각화

1.1 닮은행렬

■ 행렬 AB가 같은 크기의 n×n 정사각행렬일 때, B=P1AP를 만족시키는 가역행렬 P가 존재하면, AB는 서로 닮은(similar)행렬이라고 한다. 

- P가 가역행렬이라면, Pn개의 독립 벡터를 가진다.

AB가 닮은행렬이라는 것은, 두 행렬이 같은 선형변환의 서로 다른 기저에 대한 행렬 표현임을 의미한다. 그러므로 다음과 같은 성질들을 공유한다.

- (1) 행렬식이 같다. det(A)=det(B)

- (2) 계수(rank)가 같다. rank(A)=rank(B)

- (3) rank가 같으므로 해공간의 차원이 같다.

- (4) 대각합이 같다. trace(A)=trace(B)

- (5) 고윳값이 같다.

- (6) 고윳값이 같으므로 고유다항식이 동일하다.

- (7) 고윳값에 대한 대수적 중복도와 기하적 중복도가 같다.

- (8) 최소다항식이 동일하다.

- 닮음행렬의 B=P1AP 복잡한 행렬을 단순한 모양의 닮음행렬로 변환한 것으로 생각할 수 있다. 

- 참고) 고유값의 대수적 중복도와 기하적 중복도

 

고유값의 대수적 중복도와 기하적 중복도

 

freshrimpsushi.github.io

-

 

 

1.2 닮은 대각행렬

■ 닮은 대각행렬의 개념은 닮은 행렬 안에 포함된다.

■ 즉, 닮은행렬 P1AP=D를 만족시키는 가역행렬 P가 존재하는데, 이 PA의 고유벡터로 이루어진 행렬일 때, D를 닮은 대각행렬이라 한다. 이때 DA와 위의 성질들((1)~(8))을 공유하며, D의 형태는 대각원소가 A의 고윳값인 대각행렬이다.

■ 즉, P1AP=D=Diag(λ1,λ2,,λn)이다. 

- 이때의 행렬 A를 '대각화 가능한 행렬'이라 하고, 

- 행렬 P를 'A의 고유벡터로 이루어진 행렬' 또는 'A를 대각화하는 행렬'이라 하며

- 행렬 D를 'A의 고윳값으로 이루어진 행렬' 또는 대각화(닮은 대각화)행렬이라고 부른다.

 P1AP=D=Diag(λ1,λ2,,λn)는 마치 LU 분해, QR 분해처럼 행렬의 고윳값과 고유벡터로 구성된 행렬로 분해하기 때문에 고윳값 분해라고도 부른다.

1.3 A가 대각화 가능할 필요충분조건

n×n 크기의 P1AP=D에서 행렬 Pn×n가 가역행렬이라는 것은 Pn개의 벡터들이 독립 벡터라는 것이며, 행렬 P를 이루고 있는 벡터는 A의 고유벡터이므로 

 Pn×n An×nn개의 선형 독립인 고유벡터들로 이루어진 행렬이라는 의미이다. 그러므로 다음과 같은 동치관계가 성립한다.

P1AP=Diag(λ1,λ2,,λn)인 가역행렬 P가 존재

양변에 P를 곱하면

AP=PDiag(λ1,λ2,,λn)인 가역행렬 P가 존재

λ는 숫자이므로

A(PC1,PC2,,PCn)=(λ1PC1,λ2PC2,,λnPCn)인 가역행렬 P=(PC1,PC2,,PCn)이 존재

선형독립인 n개의 고유벡터 PCi,(i=1,2,,n)에 대해 APCi=λiPCi가 성립

- PC1,PC2,,PCn는 행렬 P의 열벡터

■ 즉, 행렬 A가 정방행렬 n×n일 때, P1AP=D라고 하자. 이때, 대각화 가능 여부는 그런 행렬 Pn×n가 존재하느냐이다. 

 Pn×n는 가역행렬이므로 det(Pn×n)0|PC1PC2PCn|0 n개의 선형독립인 고유벡터를 갖는다.

■ 앞서, [개념] 고유치, 고윳값(eigenvalue), 고유벡터(eigenvector) 에서 다음과 같은 선형변환의 예가 있었다.

■ 이 예에서 기저에 대한 행렬표현은 주대각원소가 λi인 대각행렬 (2001)였다. 이 행렬이 대각행렬(닮은 대각행렬)이다. 그러므로 대각행렬에는 선형변환(사상)의 특성이 담겨 있다고 볼 수 있다. 

 정리하면, 대각화 가능할 필요충분조건인 n개의 선형독립인 고유벡터로 구성된 행렬 P 존재한다.는 것은 행렬 An×nn개의 서로 다른 고윳값을 가진다는 의미이다. 즉, 행렬 A의 고윳값이 중근을 가지는 경우에는 대각화가 불가능할 수 있다는 것을 의미한다. 

 예를 들어, 3×3 행렬 A의 고윳값 λ=1,2,3이라고 하자.

- 그렇다면, λ1=1에 대응하는 고유벡터, λ2=2에 대응하는 고유벡터, λ3=3에 대응하는 고유벡터가 있을 것이다.

- 이 고유벡터들은 λ1=1에 대응하는 고유공간의 기저이고 λ2=2에 대응하는 고유공간의 기저, λ3=3에 대응하는 고유공간의 기저이다.

- 즉, 각각의 고윳값 λ1,λ2,λ3에 대응되는 고유공간은 공간 자체가 다르다. 각 공간을 생성하는 기저가 모두 다르기 때문이다.

- 다시 말해, 대응되는 공간 자체가 다르므로 기저가 같을 수 없다. 즉, 각각의 고유공간의 기저도 다르다.

- 기저가 다르다는 것은 고유벡터가 서로 다르다는 것을 의미한다. 즉, 고유벡터가 모두 다르다는 것은 '독립'이라는 얘기이다.

- 그래서 n×n행렬에서 서로 다른 고유치가 n개 나오면, 독립적인 고유벡터가 n개가 나오기 때문에 대각화는 무조건 가능하다고 할 수 있다.

- 그러나 고유치가 중근이 나올 경우, 예를 들어 3×3 행렬 A에서 고윳값 λ=1,2,2라고 하자.

- 우선, λ1=1λ2=λ3=2는 고윳값이 다르므로 대응되는 고유공간이 다르다.

- 이때, λ2,λ3=2,2에 대응되는 고유벡터는 최대 2개까지 나올 수 있다. 

- 이렇게 λ=2에 대응하는 고유벡터가 2개 나왔다면, 3×3행렬 A에서 서로 다른 고유벡터. 즉, 선형독립인 고유벡터 3개가 나왔으므로 이 경우는 대각화가 가능하다.

- 반면, λ=2에 대응하는 독립적인 고유벡터가 1개 나왔다면, '종속'을 의미하므로 대각화 불가능이다. 

 그러므로 n×n 행렬 A가 대각화 가능한 행렬인지 알고 싶다면, A의 고윳값 λ에 대응하는 선형독립인 고유벡터의 개수를 확인해야 한다.

- 이때 Ax=λx이므로 

- A의 고윳값 λ에 대응하는 선형독립인 고유벡터의 개수 = AλI 행렬의 열공간 기저의 개수라고 할 수 있다.

- AλI 행렬의 열공간 기저의 개수는 AλI 행렬의 영공간의 차원이므로, 퇴화차수 정리에 따라

- A의 고윳값 λ에 대응하는 선형독립인 고유벡터의 개수 = AλI 행렬의 열공간 기저의 개수 = AλI 행렬의 영공간의 차원 = nullity(AλI)=nrank(AλI)가 성립한다.

- 즉, nullity(AλI)=nrank(AλI)이면, An×n은 대각화 가능하다.

 또한 대칭행렬은 AT=A이므로, 행렬 A n×n정방행렬이고 대칭행렬이라면, AT의 고윳값 λ에 대응하는 선형독립인 고유벡터의 개수는 A의 고윳값 λ에 대응하는 선형독립인 고유벡터의 개수와 동일한 의미이므로, n×n 행렬 A가 대칭행렬이면 항상 대각화 가능하다고 할 수 있다.

1.4 행렬 A를 대각화하는 방법

■ 1.3의 내용에 따라  An×n 행렬을 대각화하는 방법은

- (1) An×nn개의 선형독립 고유벡터 PC1,PC2,,PCn를 구한다.

- (2) PC1,PC2,,PCn를 열벡터로 하는 행렬 P를 구성한다.

- (3) 행렬 P1AP An×nn개의 고윳값 λ1,λ2,,λn을 대각성분으로 가지는 대각행렬이 된다.

- 이때의 λiPCi에 대응하는 고윳값이다. (i=1,2,,n)

■ 예를 들어, 행렬 A=(1124)일 때, A를 대각화하면, 

1.5 행렬의 멱승에 관한 계산법

■ 행렬 An×n 정방행렬이고, P가 가역행렬이라 P1AP=D로 대각화가 가능하다고 가정하자. 

■ 그러면 (P1AP)2=(P1AP)(P1AP)=P1A2P이 성립한다. \( (P^{-1}AP)^3, (P^{-1}AP)^4, \cdots \)도 성립한다.

 이를 일반화하면, 양의 정수 n에 대해 A가 대각화 가능하고, P1AP=D가 대각행렬이면, Dn=(P1AP)n=P1AnP 또는 An=PDnP1가 성립한다.

- 이를 이용하면, 조건을 만족할 때 An이나 Dn을 쉽게 계산할 수 있다.

 

참고) 두 행렬의 동시 대각화

Ax=λBx가 성립할 때, 고윳값과 고유벡터 쌍은 행렬 A만의 고윳값과 고유벡터가 아니며 행렬 B만의 고윳값과 고유벡터도 아니다. 두 행렬 ABAx=λBx 이때의 고윳값과 고유벡터 쌍을 공유한다. 이를 두 행렬의 동시 대각화라고 한다.