기본 콘텐츠로 건너뛰기

라벨이 대칭행렬인 게시물 표시

[matplotlib]quiver()함수

[Linear Algebra] 스펙트럴 분해(Spectral decomposition)

스펙트럴 분해(Spectral decomposition) 행렬 A의 고유값 집합을 A의 스펙트럼(spectrum) 이라고 합니다. 대칭행렬의 스펙트럼은 다음과 같은 특징이 있습니다. 대칭행렬의 스펙트럼 n×n 차원의 대칭행렬 A에서 A는 n개의 서로다른 고유값을 가집니다. 각 고유값 λ과 그것의 배수는 같은 효과를 나타냅니다. 즉, 고유값의 배수를 적용할 경우 고유벡터의 길이만 변할 뿐 방향은 바뀌지 않습니다. 다른 고유값들에 대응하는 고유벡터들은 직교관계에 있습니다. A는 직교적으로 대각화가 가능합니다. 고유값 분해 방법으로 대칭행렬 A는 고유값을 대각 원소로 하는 대각행렬(D)과 고유벡터들로 구성된 고유 행렬(U)을 사용하여 식 1과 같이 분해할 수 있습니다. 이와 같이 대칭행렬의 고유값분해를 스펙트럴분해(spectral decomposition) 라고 합니다. \begin{align}A & = UDU^{-1} = UDU^T\\ \tag{식 1}& U:\;\text{고유벡터}\\ & D:\;\text{고유값을 대각요소로하는 대각행렬}\end{align} 예 1) 대칭행렬 A에 대해 식 1을 확인해 봅니다. A=np.array([[7, 2],[2,4]]) print(A) [[7 2] [2 4]] eig_val=solve(det(cheM), l) eig_val d, U=la.eig(A) D=np.diag(d) print(D) [[8. 0.] [0. 3.]] print(U.round(3)) [[ 0.894 -0.447] [ 0.447 0.894]] 다음 결과와 같이 행렬 A의 고유행렬에 대한 정규직교적 특징 을 만족합니다. np.allclose(U.T, la.inv(U)) True 결과적으로 위 식과 같이 행렬 A의 고유 분해가 이루어집니다. np.allclose(A, U@D@la.inv(U)) True 예 2) 다음 행렬 A의스펙트럴 분해를 결정합니다....

[Linear Algebra] 대칭행렬의 대각화

대칭행렬의 대각화 대칭행렬(Symmetric matrix) 은 주 대각원소를 기준으로 위 부분과 아래부분의 원소들이 대칭되는 구조이며 대표적인 특성으로 식 1에 나타낸 것과 같이 원시행렬과 전치행렬은 같습니다. $$\tag{식 1}A = A^T$$ 식 1은 모든 대칭행렬에 대한 특성이지만 고유값 분해의 조건 을 만족하는 가역적 대칭행렬의 경우는 다음의 특성을 가집니다. 서로 다른 고유값에 대응하는 고유벡터들은 직교(orthogonal) 관계에 있습니다 정규직교(orthonormal) 관계로 변형할 수 있습니다. 식 2와 같이 가역적 대칭행렬을 구성하는 각 열벡터($x_1,\; x_2$)의 내적은 0가 됩니다. $$\tag{식 2} x_1^Tx_2=0$$ 식 2의 증명은 식 3과 같이 λ 1 x 1 T x 2 를 정리하는 것으로 시작합니다. \begin{align}\lambda_1 x_1^Tx_2&= (\lambda_1 x_1)^Tx_2\\ & = (Ax_1)^Tx_2\\ \tag{식 3} & = x_1^TA^Tx_2 \\& = x_1^TAx_2\\ & = x_1^T\lambda_2x_2\\& = \lambda_2 x_1^Tx_2\\ \because&\; A=A^T\end{align} 식 3을 정리하면 식 4와 같이 나타낼 수 있습니다. \begin{align}\lambda_1 x_1^Tx_2& = \lambda_2 x_1^Tx_2\\\tag{식 4} \Rightarrow & \lambda_1 x_1^Tx_2 - \lambda_2 x_1^Tx_2=0\\ \Rightarrow& (\lambda_1 -\lambda_2)x_1^Tx_2=0 \end{align} 식 5.3.4에서 고유값 λ 1 과 λ 2 이 서로 다르기 때문에 고유벡터들 x 1 과 x 2 의 내적이 0 이어야 합니다. 이것은 두 벡터의 내적이 0인 것으로 그 고유벡터들은 서로 직교 관계에 있음을 ...

[Linear Algebra] 대칭행렬(Symmetric matrix)

대칭행렬(Symmetric matrix) 식 1와 같이 행렬의 대각 요소들을 기준으로 양쪽의 요소가 동일한 정방 행렬을 의미합니다. \begin{bmatrix}{\color{red}a_{11}} & b & c\\ b & {\color{red}a_{22}} & d\\c & d & {\color{red}a_{33}}\end{bmatrix} (식 1) 대칭 행렬은 다음 코드와 같이 삼각 행렬과 그 전치행렬과의 합으로 생성할 수 있습니다. np.random.seed(4) x=np.random.randint(-10, 10, (3,3)) y=np.random.randint(-10, 10, (3,3)) A=np.triu(x)+np.triu(x).T print(A) [[ 8 -5 -9] [-5 -4 8] [-9 8 6]] B=np.tril(y)+np.tril(y).T print(B) [[ -4 2 -7] [ 2 -8 -10] [ -7 -10 -2]] 대칭행렬의 특성 대칭 행렬 A, B과 스칼라 k 사이에 다음의 관계가 성립합니다. A = A T , 즉, 대칭 행렬과 그 행렬의 전치 행렬은 같습니다. 두 대칭행렬 A ± B는 대칭 행렬입니다. 대칭행렬의 스칼라 곱 역시 대칭 행렬입니다. (AB) T = B T A T print(A==A.T) [[ True True True] [ True True True] [ True True True]] print(A+B) [[ 4 -3 -16] [ -3 -12 -2] [-16 -2 4]] print(3*A) [[ 24 -15 -27] [-15 -12 24] [-27 24 18]] 일반적으로 대칭 행렬인 A와 B의 곱은 대칭 행렬이 되지 않습니다. 그러나 두 대칭 행렬의 곱의 교환 법칙이 성립하는 경우 즉, AB = BA인 경우 다음 식이 성립하며 그 곱 역시 대칭행렬이 됩니다(...