중요한 거 다 말해주는 숫자 하나
정방 행렬의 행렬식 = 행렬의 가장 중요한 속성을 인코딩하는 단일 숫자: 공간 보존하나, collapse 하나?
- → 행렬 invertible, 변환이 차원 보존, 시스템에 유일 해.
- → 행렬 singular, 변환이 공간 collapse, 시스템 해 0개 또는 무한.
- → 변환의 부피 스케일링 인자. 행렬식 2 = 변환이 면적/부피 두 배; 0.5 = 절반.
- 부호 → 변환이 orientation 보존 (양수) 또는 flip (음수, 거울처럼).
손으로 절대. 절대.
2×2 는 . 가능. 3×3 은 cofactor 전개. 지루. float32 entry 의 10×10 은 수치 악몽이고 수학자도 NumPy 한테 punt. np.linalg.det(A) 가 마이크로초. 사용해.
행렬식 등장하는 곳
- Invertibility 검사 — 풀기 전
det(A) != 0. - 기하 — 벡터 정의 평행사변형 면적 = .
- 안정성 분석 — 작은 행렬식 ≈ near-singular ≈ 작은 입력 변화가 큰 출력 변화 (수치 불안정).
- 변수 변환 미적분 — 좌표 변환 시 야코비안 행렬식이 적분 rescale.
행렬식 = 행렬의 부피-스케일링 지문. 0 = 행렬이 세상을 평평하게 짓누름. 일상 딥러닝엔 보통 안 필요 — 근데 필요할 땐 진짜 필요.
한행이 다른행의 배수이면 singular 기 때문에 역행렬이 존재하지 않는다
import numpy as np
rng = np.random.default_rng(7) A = rng.standard_normal((3, 3)) print('A =') print(A) print('det(A) =', np.linalg.det(A))
B = np.array([[1., 2., 3.], [2., 4., 6.], [0., 1., 5.]]) print('B =') print(B) print('det(B) =', np.linalg.det(B))