기본 콘텐츠로 건너뛰기

라벨이 linalg인 게시물 표시

[matplotlib]quiver()함수

[Linear Algebra] 행렬식(Determinant)

행렬식(Determinant) 관련된 내용 역행렬(Inverse matrix) 기약행 사다리꼴 형태 (Reduced row echelon form, rref) 역행렬이 존재한다는 것은 선형 시스템에서 유일한 해집합이 존재한다는 것을 의미합니다. 즉, 표준 행렬에 대한 역행렬의 존재는 유일한 해집합을 가질 수 있는 필수 조건입니다. 반대로 표준 행렬의 역행렬이 존재하지 않는다면 다양한 해집합들이 존재하거나 해가 존재하지 않는 상태입니다. 역행렬이 존재하지 않은 행렬을 특이 행렬(singular matrix) 이라고 합니다. 행렬은 그 행렬로부터 계산할 수 있는 행렬식(determinant) 이 0인 경우 역행렬이 존재하지 않는 특성을 가지고 있습니다. 즉, 행렬식은 어떤 행렬에 대해 특이 행렬 여부를 결정할 수 있는 근거가 됩니다. 행렬식은 det(행렬) 또는 |행렬| 과 같이 나타냅니다. 2×2 행렬의 행렬식은 식 1과 같이 쉽게 계산이 됩니다. $$A=\begin{bmatrix}a& b\\c & d \end{bmatrix} \Rightarrow \text{det(A)}=\vert{A}\vert =\vert{ad -bc}\vert$$ (식 1) 2×2 이상의 형태를 가진 정방 행렬의 역행렬은 소행렬식과 여인수 방법 으로 계산할 수 있습니다. 이 방법은 n×n의 행렬로부터 2×2 차원의 부분 행렬을 추출하고 식 1의 행렬식 계산을 반복하여 전체 행렬의 행렬식을 계산하는 것으로 n의 값이 커질수록 계산은 매우 번거롭습니다. 대신, 모든 정방행렬의 행렬식은 numpy.linalg.det() 함수를 사용하여 계산할 수 있습니다. A=np.array([[1,1,2], [2,4,-3], [3,6,-5]]) print(A) [[ 1 1 2] [ 2 4 -3] [ 3 6 -5]] AInv=la.inv(A) print(AInv) [[ 2. -17. 11.] [ -1. 11. -7.] [ 0. 3....

[Linear Algebra] 역행렬(Inverse matrix)

역행렬(Inverse matrix) 관련된 내용 기약행 사다리꼴 형태 (Reduced row echelon form, rref) 행렬식 식 1과 같이 두 행렬의 행렬곱 결과가 항등행렬 을 생성한다면 행렬 B는 행렬 A의 역행렬(inverse matrix) 이 되며 A -1 로 나타냅니다. 물론 역도 성립합니다. A · B = I → B = A -1 (식 1) 역행렬을 가지는 행렬을 가역행렬(reversible matrix) 이라고 하며 np.linalg.inv() 함수에 의해 계산할 수 있습니다. a=np.array([[1,3,-5], [-2,7,8], [4,0,6]]) print(a) [[ 1 3 -5] [-2 7 8] [ 4 0 6]] a_inv=la.inv(a) # a의 역행렬 print(a_inv.round(2)) [[ 0.134 -0.057 0.188] [ 0.14 0.083 0.006] [-0.089 0.038 0.041]] 위 코드의 결과 a_inv의 각 요소를 반올림을 실행하기 위해 .round() 메소드를 적용하였습니다. aa_inv=a.dot(a_inv) print(aa_inv.round(2)) [[ 1. 0. -0.] [ 0. 1. 0.] [ 0. -0. 1.]] 이 역행렬은 식 2와 같은 연립방정식의 해를 계산하기 위해 사용됩니다. $$\begin{aligned}x+y+2z&=9\\2x+4y-3z&=1\\3x+6y-5z&=0 \end{aligned} \Rightarrow \begin{bmatrix}1&1&2\\2&4&-3\\3&6&-5\end{bmatrix} \begin{bmatrix}x\\y\\z\end{bmatrix}=\begin{bmatrix} 9\\1\\0\end{bmatrix}$$ (식 2) 식 2의 우항은 식 3과 같이 방정식들...