본 글은 [장철원 저 - 선형대수와 통계학으로 배우는 머신러닝 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
'Mathematics > Linear Algebra' 카테고리의 다른 글
[선형대수학] 8장 - 벡터 공간 <알고리즘 구현으로 배우는 선형대수 with 파이썬> (0) | 2024.09.03 |
---|---|
[선형대수학] 6장 - 행렬 <알고리즘 구현으로 배우는 선형대수 with 파이썬> (0) | 2024.08.19 |
[선형대수학] 가우스 소거법에서 pivot은 1이어야 하는가? NO! (0) | 2024.08.19 |
[선형대수학] 5장 - 선형 시스템 <알고리즘 구현으로 배우는 선형대수 with 파이썬> (0) | 2024.08.19 |
[선형대수학] 4장 - 다양한 행렬 <알고리즘 구현으로 배우는 선형대수 with 파이썬> (0) | 2024.08.16 |