기본 콘텐츠로 건너뛰기

라벨이 정방행렬인 게시물 표시

[matplotlib]quiver()함수

[Linear Analysis] 특이값(Singular Value)

특이값분해(Singular Value Decomposition) 내용 비정방행렬의 고유값분해 특이값 비정방행렬의 고유값분해 고유 분해 , 스펙트럴 분해 등은 가역적인 정방 행렬 을 대상으로 합니다. 이에 반해 특이값을 이용하는 특이값 분해(Singular Value Decomposition) 는 비정방 행렬 을 정방행렬로 변형하여 분해할 수 있는 방법으로 선형 대수의 계산에서 가장 유용하게 사용되고 있습니다. 비정방행렬은 행렬에 그 행렬의 전치행렬과의 행렬곱으로 정방행렬로 만들 수 있습니다. import numpy as np import numpy.linalg as la from sympy import * np.random.seed(1) X=np.random.randint(0, 11, (3, 4)) print(X) [[5 8 9 5] [0 0 1 7] [6 9 2 4]] XTX=np.dot(X.T, X) print(XTX) [[ 61 94 57 49] [ 94 145 90 76] [ 57 90 86 60] [ 49 76 60 90]] 위 결과와 같이 전치행렬과의 행렬곱으로 생성한 정방행렬은 대칭행렬이 됩니다. 이 대칭행렬의 고유행렬은 다음과 같이 전치행렬과 역행렬이 같으므로 정규직교(Orthonormal)행렬 이 됩니다. 이 결과는 정방행렬이면서 대칭행렬이므로 행렬의 대각화에 기반을 둔 분해(decomposition)가 가능합니다. d, P=la.eig(XTX) np.allclose(P.T, la.inv(P)) True 정방행렬 A의 고유값과 고유벡터의 관계와 고유벡터는 단위벡터인 점을 적용하면 식 1이 성립합니다. 즉, 행렬 A와 고유벡터(v)와의 내적의 크기는 고유벡터에 대응하는 고유값의 크기와 같아집니다. \begin{align}Av_1& =\lambda_1v_1, \Vert{v_1}\Vert=1\\\tag{식 1} \Vert{Av_1}\Vert...

[Linear Algebra] 정방 행렬 (Square matrix)과 트레이스(Trace)

정방 행렬 (Square matrix)과 트레이스(Trace) 내용 정방 행렬 (Square matrix) 트레이스(Trace) 정방 행렬 (Square matrix) 식 1의 행렬 A와 같이 열과 행의 갯수가 동일한 행렬을 정방 행렬 이라 하고 이 정방 행렬의 전치 행렬($A^T$)은 식 1과 같이 주 대각(main diagonal) 외 요소들의 대칭적 교환으로 이루어집니다. $$A=\begin{bmatrix}{\color{red}a_{11}} & a_{12} & a_{13}\\ a_{21} & {\color{red}a_{22}} & a_{23}\\a_{31} & a_{32} & {\color{red}a_{33}}\end{bmatrix}\;\Rightarrow\; A^T= \begin{bmatrix}{\color{red}a_{11}} & a_{21} & a_{31}\\ a_{12} & {\color{red}a_{22}} & a_{32}\\a_{13} & a_{23} & {\color{red}a_{33}}\end{bmatrix}$$ (식 1) 위 식의 붉은 색이 주 대각 요소들입니다. A=np.array([[1,2,3],[4,5,6],[7,8,9]]) print(A) [[1 2 3] [4 5 6] [7 8 9]] print(A.T) [[1 4 7] [2 5 8] [3 6 9]] 트레이스(Trace) 정방 행렬에서 대각 요소들의 합을 그 행렬의 트레이스라고 하며 tr(A) 라고 나타냅니다(식 2). $$A=\begin{bmatrix}{\color{red}a_{11}} & a_{12} & a_{13}\\ a_{21} & {\color{red}a_{22}} & a_{23}\\a_{31} & a_{32} & {\color{red}a_{33}}\end{bmatrix}\;\Rightarro...