행렬 A의 고유값과 B의 고유값은 같다. A와 B는 similar matrix 관계이다.
\[ B = M^{-1} * A * M \]
Similar matrix 는 고유값이 같은 행렬 패밀리를 의미한다. 예를 들어 2x2 행렬의 고유값이 2, 3 인 행렬이 있다면, 이 행렬의 패밀리는 다음과 같다. 아래 행렬 B1, B2는 A 와 Similar matrix 가 된다.
# 행렬 A는 고유값 2, 3을 갖는다.
A <- matrix(c(2, 0, 0, 3), nrow=2, byrow=T)
# M을 만드는데, 이것은 역행렬이 가능한 어떤 행렬이라도 상관없다. 크기는 2x2 여아 한다.
M <- matrix(c(1, 2, 3, 4), nrow=2, byrow=T)
# 패밀리내의 B1 행렬은
B1 <- solve(M) %*% A %*% M
B1
## [,1] [,2]
## [1,] 5.0 4
## [2,] -1.5 0
# B1의 고유값이 2, 3인지 확인한다. 즉, 행렬 A와 Similar matrix 가 된다.
eigen(B1)
## eigen() decomposition
## $values
## [1] 3 2
##
## $vectors
## [,1] [,2]
## [1,] 0.8944272 -0.8
## [2,] -0.4472136 0.6
# 이번엔, M을 새롭게 만들어서 또 다른 B2를 만들어보자.
M <- matrix(c(1, 1, -1, 1), nrow=2, byrow=F)
B2 <- solve(M) %*% A %*% M
B2
## [,1] [,2]
## [1,] 2.5 0.5
## [2,] 0.5 2.5
# B2의 고유값이 2, 3인지 확인한다. 즉, 행렬 A와 Similar matrix 가 된다.
eigen(B2)
## eigen() decomposition
## $values
## [1] 3 2
##
## $vectors
## [,1] [,2]
## [1,] 0.7071068 -0.7071068
## [2,] 0.7071068 0.7071068
그런데, 고유값이 4, 4 로 중복될 경우는 어떨까? 크게 2가지 경우가 있는데, 단위행렬의 4배인 행렬 패밀리가 존재하고, 그렇지 않은 행렬 패밀리가 존재한다.
단위행렬의 4배인 행렬 패밀리는 어떤 M, M-1 을 곱하더라도 자기 자신만 나오니까, 아래에서는 Jordan form 에 대해서만 알아보자. 아래 B1, B2 행렬은 A 와 Similar matrix 가 된다.
Jordan form 은 대각선에 반복되는 동일한 고유값이 존재하고, 대각선 위로는 1이 있다. 그리고 나머지 성분은 0이 되는 행렬을 Jordan form 이라고 부른다.
# Jordan form 으로 구성한다.
A <- matrix(c(4, 1, 0, 4), nrow=2, byrow = T)
A
## [,1] [,2]
## [1,] 4 1
## [2,] 0 4
eigen(A) # 고유값이 4임을 확인한다.
## eigen() decomposition
## $values
## [1] 4 4
##
## $vectors
## [,1] [,2]
## [1,] 1 -1.000000e+00
## [2,] 0 8.881784e-16
# 행렬 M 을 만든다.
M <- matrix(c(1, 2, 3, 4), nrow=2, byrow = T)
# M과 M의 역행렬을 곱했을 때 단위행렬이 나옴을 확인한다.
#solve(M) %*% M
# 행렬 B 를 구한다.
B1 <- solve(M) %*% A %*% M
B1
## [,1] [,2]
## [1,] -2.0 -8
## [2,] 4.5 10
# B1의 고유값이 역시 4임을 확인한다.
eigen(B1)
## eigen() decomposition
## $values
## [1] 4 4
##
## $vectors
## [,1] [,2]
## [1,] -0.8 0.8
## [2,] 0.6 -0.6
# 이번엔, M을 새롭게 만들어서 또 다른 B를 만들어보자.
M <- matrix(c(1, 1, -1, 1), nrow=2, byrow=F)
B2 <- solve(M) %*% A %*% M
B2
## [,1] [,2]
## [1,] 4.5 0.5
## [2,] -0.5 3.5
# B2의 고유값이 역시 4임을 확인한다.
eigen(B2)
## eigen() decomposition
## $values
## [1] 4 4
##
## $vectors
## [,1] [,2]
## [1,] 0.7071068 -0.7071068
## [2,] -0.7071068 0.7071068
이번에는 고유값이 동일하게 4, 4로 중복되지만, 좀 다른 행렬로 구성해보자.
먼저, 대각성분을 (5, 3)로 두어서 trace = 8로 설정하고, 행렬식 16을 맞추기 위해서 대각선 위, 아래로 (1, -1)을 둔다. 역시 위의 행렬과 마찬가지로 similar matrix 가 된다.
A <- matrix(c(5, 1, -1, 3), nrow=2, byrow=T)
A
## [,1] [,2]
## [1,] 5 1
## [2,] -1 3
# 고유값을 확인한다.
eigen(A)
## eigen() decomposition
## $values
## [1] 4 4
##
## $vectors
## [,1] [,2]
## [1,] 0.7071068 -0.7071068
## [2,] -0.7071068 0.7071068