본문 바로가기

Mathematics/Linear Algebra

[선형대수학] 7장 - 역행렬 <알고리즘 구현으로 배우는 선형대수 with 파이썬>

 

본 글은 [장철원 저 - 선형대수와 통계학으로 배우는 머신러닝 with 파이썬]을 읽고, 개인적으로 찾아본 내용을 더해 정리한 글입니다. 
본 글에 나오는 소스코드들의 원본은 출판사의 github 레포지토리(https://github.com/bjpublic/LinearAlgebra) 에서 찾아볼 수 있습니다.
까먹었을 때 바로바로 확인하기 위한 용도로 정리하는 것이기에, 제 필요에 따라 생략, 변형 및 추가된 내용이 많습니다.
책의 내용을 그대로 담지 않도록 노력하였으나, 혹여 문제가 있다면 cuffyluv.1@gmail.com으로 연락주시기 바랍니다.

 

  • 행렬 A의 역행렬(inverse matrix) : AB = I 를 만족하는 행렬 B

: A^-1 로 표기. 또는 AA^-1 = A^-1A = I

: I가 정사각 행렬이기에, A 및 B 또한 당연히 정사각 행렬

 

  • 가역 행렬(invertible matrix)

: 역행렬이 존재하는 행렬.

: 역행렬이 항상 존재하는(invertible한) 것은 아님. 역행렬이 존재하려면 해당 행렬의 행렬식이 0이 아니어야함.

: 즉, 행렬식이 0이 아닌 행렬.

: 가역 행렬의 역행렬은 유일.

 

  • 특이 행렬(singular matrix)

: 역행렬이 존재하지 않는 행렬

: 즉, 행렬식이 0인 행렬.

 

  • 행렬 A, B가 크기가 같고, 두 행렬 모두 가역 행렬이면

: 두 행렬의 곱 AB 또한 가역이며,

: (AB)^-1 = (B^-1)(A^-1) 이 성립함.

 

  • 행렬 A의 여인수 행렬(matrix of cofactors from A)

: 행렬 A의 여인수로 구성된 행렬

 

  • 행렬 A의 수반 행렬(adjoint of A)

: 행렬 A의 여인수 행렬의 전치 행렬.

: adj(A)로 나타냄.

 

  • 2x2 행렬의 역행렬 계산

 

  • 2x2 행렬의 역행렬 계산

 

  • 정사각 행렬의 거듭 제곱 성질

: A^0 = I

: A^n = AA…A

: A^nA^m = A^n+m

: (A^n)^m = A^nm

 

  • 역행렬의 거듭 제곱

: A가 가역 행렬이면

→ A^-n = (A-1)^n = (A^-1)(A^-1)…(A^-1)

→ (A^-1)^-1 = A

→ (A^n)^-1 = (A^-1)^n

→ (aA)^-1 = (1/a)A^-1

 

  • 역행렬과 전치 행렬

: 행렬 A가 가역 행렬이면 → (A^-1)^T = (A^T)^-1

 

  • AA^T, (A^T)A

: 행렬 A가 가역 행렬이면→ AA^T, (A^T)A 도 가역 행렬 (아닌 경우엔 아님)

 

  • 역행렬과 행렬식

: 행렬 A가 가역 행렬이면 → det(A^-1) = 1/det(A)

** 증명 : https://math.stackexchange.com/questions/661633/prove-that-det-left-a-1-right-frac1-deta

 

# 역행렬 구하기 넘파이 구현 실습
A = np.array([[3,2,0], [-1,-3,6], [2,3,-5]])
invA = np.linalg.inv(A)
print(A)
print('----')
print(invA)
'''
[[ 3  2  0]
 [-1 -3  6]
 [ 2  3 -5]]
----
[[-0.6  2.   2.4]
 [ 1.4 -3.  -3.6]
 [ 0.6 -1.  -1.4]]
'''

 

일부 증명 참고 : https://jinconomics.tistory.com/8