기본 콘텐츠로 건너뛰기

라벨이 Diagonalization인 게시물 표시

[matplotlib]quiver()함수

[Linear Algebra] 대각화(Diagonalization)

대각화(Diagonalization) 정방행렬 A의 고유값과 고유벡터의 관계는 식 1과 같습니다. \begin{align}\tag{식 1}Av&=\lambda v= v \lambda\\ A&=v\lambda v^{-1}\\& v,\, \lambda:\;\text{고유벡터, 고유값} \end{align} 식 1은 유사변환과 동일한 형식을 나타내지만 유사변환이 되기 위해서는 v, λ 모두 정방행렬이 되어야 합니다. 그러므로 식 1을 식 2와 같이 유사변환 하기 위해서는 식 1의 고유벡터와 고유값은 각각 고유행렬(P)과 고유값을 대각원소로 하는 대각행렬(D)을 치환됩니다(식 3). 고유벡터는 기저벡터이므로 고유행렬은 가역행렬입니다. $$\tag{식 2} A=PBP^{-1} \Leftrightarrow P^{-1}AP=B$$ 고유값을 대각행렬로 전환하기 위해 np.diag(대각요소들) 을 적용합니다. A=np.array([[3,1],[1,3]]) eigVal, eigVec=la.eig(A) D=np.diag(eigVal) print(D) [[4. 0.] [0. 2.]] sim=eigVec@D@la.inv(eigVec) print(np.isclose(A, sim)) [[ True True] [ True True]] 위 관계는 식 3과 같이 유사변환으로 나타낼 수 있습니다. \begin{align}\tag{식 3}A&=PDP^{-1}\\P:&\;\text{고유행렬}\\D:&\;\text{고유값으로 구성된 대각행렬} \end{align} 식 3은 결국 행렬 A를 기저벡터들로 구성된 행렬들로 분해(factorization)한 것 입니다. 정방 행렬 A가 고유행렬 P와 대각행렬 D를 사용하여 식 3과 같이 유사변환이 가능하다면 행렬 A는 대각가능(Diagonalizable) 하다고 합니다. 즉, n×n 차원의 정방행렬 A가 n개의 고유벡터를 가진다면 대각화가 가능합니다. 고유벡터는 기저벡터를 의미하...