유사변환(Similarity transformation)
n×n 차원의 정방 행렬 A, B 그리고 가역 행렬 P 사이에 식 1의 관계가 성립하면 행렬 A와 B는 유사행렬(similarity matrix)이 되며 행렬 A를 가역행렬 P와 B로 분해하는 것을 유사 변환(similarity transformation)이라고 합니다.
$$\tag{1} A = PBP^{-1} \Leftrightarrow P^{-1}AP = B $$
식 2는 식 1의 양변에 B의 고유값을 고려한 것입니다.
\begin{align}\tag{식 2} B - \lambda I &= P^{-1}AP – \lambda P^{-1}P\\ &= P^{-1}(AP – \lambda P)\\ &= P^{-1}(A - \lambda I)P \end{align}
식 2의 행렬식은 식 3과 같이 정리됩니다.
\begin{align} &\begin{aligned}\textsf{det}(B - \lambda I ) & = \textsf{det}(P^{-1}(AP – \lambda P))\\ &= \textsf{det}(P^{-1}) \textsf{det}((A – \lambda I)) \textsf{det}(P)\\ &= \textsf{det}(P^{-1}) \textsf{det}(P) \textsf{det}((A – \lambda I))\\ &= \textsf{det}(A – \lambda I)\end{aligned}\\ &\begin{aligned}\because \; \textsf{det}(P^{-1}) \textsf{det}(P) &= \textsf{det}(P^{-1}P)\\ &= \textsf{det}(I)\end{aligned}\end{align}
유사행렬의 특성
유사행렬인 두 정방행렬 A와 B는 'A ~ B'와 같이 나타내며 다음의 특징을 가집니다.
- rank(A) = rank(B)
- det(A) = det(B)
- 동일한 특성방정식을 가집니다.
- 동일한 고유값을 가집니다.
- A는 B가 가역적일 때만 가역적입니다.
예 1)
A와 B가 유사하면 A2과 B2은 유사함을 보이세요.
\begin{align} A &= PBP^{-1}\\ A^2 &= (PBP^{-1})(PBP^{-1})\\ &= PBBP^{-1}\\ &= PB^2P^{-1}\\ \end{align}
예 2)
다음 두 행렬 A, B는 유사합니까?
$$A=\begin{bmatrix}3&-2\\0&-3 \end{bmatrix}, \quad B=\begin{bmatrix}3&1\\13&1 \end{bmatrix}$$
import numpy as np import numpy.linalg as la from sympy import *
두 행렬 A, B의 급수와 고유값을 비교합니다.
A=np.array([[3, -2],[0, -3]]) B=np.array([[3,1],[13, 1]]) A_rank=la.matrix_rank(A) B_rank=la.matrix_rank(B) A_rank, B_rank
(2, 2)
A_eig=la.eig(A) B_eig=la.eig(B) np.allclose(A_eig[0], B_eig[0])
False
두 행렬의 급수는 같지만 고유값이 같지 않으므로 유사변환의 특성에 부합하지 않습니다. 즉, 두 행렬은 유사하지 않습니다.
예 3)
다음 두 행렬 A, B는 유사행렬입니까?
$$A = \begin{bmatrix} 1& -2 \\-1&-2 \end{bmatrix}, \quad B = \begin{bmatrix} 1&-1\\-2&-2 \end{bmatrix}$$
두 행렬의 급수와 고유값을 비교합니다.
A=np.array([[1,-2],[-1, -2]]) B=np.array([[1,-1],[-2,-2]]) A_rank=la.matrix_rank(A) B_rank=la.matrix_rank(B) A_rank, B_rank
(2, 2)
A_eig=la.eig(A) B_eig=la.eig(B) np.isclose(A_eig[0], B_eig[0])
array([ True, True])
위 결과에 의하면 두 행렬은 유사행렬입니다.
댓글
댓글 쓰기