📌 핵심 정의
정의 행렬 A (m×n) 와 B (n×p) 의 곱 C = AB 는 m×p 행렬이다. A의 열 수 = B의 행 수 일 때만 곱셈이 가능하다.
크기 조건 (Dimension Check)
| 행렬 | 크기 | 조건 |
|---|---|---|
| A | m × n | 열 수 = n |
| B | n × p | 행 수 = n (A의 열 수와 일치해야 함) |
| C (결과) | m × p | 자동 결정 |
주의 크기 조건이 맞지 않으면 곱셈 자체가 정의되지 않는다. 예: A (2×3) × B (2×3) → ❌ 불가능
계산 방법
결과 행렬 C의 (i, j)번째 원소 = A의 i번째 행 과 B의 j번째 열 의 내적(dot product)
구체적 예시 (2×2)
원소별 계산:
= A의 i행 · B의 j열의 내적
성질 (Properties)
| 성질 | 표현 | 성립 여부 |
|---|---|---|
| 결합법칙 | ✅ 성립 | |
| 분배법칙 | ✅ 성립 | |
| 교환법칙 | (일반적으로) | ❌ 불성립 |
| 전치 | ✅ 순서 뒤집힘 | |
| 단위행렬 | ✅ 성립 | |
| 역행렬 | ✅ 순서 뒤집힘 |
교환법칙 불성립! 행렬 곱은 순서가 중요하다. 가 정의되더라도 가 정의되지 않을 수 있고, 둘 다 정의되더라도 결과가 다를 수 있다.
시간 복잡도 & 알고리즘
단순 구현의 시간 복잡도:
| 알고리즘 | 시간 복잡도 | 특징 |
|---|---|---|
| 단순 3중 루프 | 가장 직관적인 구현 | |
| Strassen | 분할 정복, 곱셈 횟수 감소 | |
| Coppersmith-Winograd | 이론적 최적, 실용성 낮음 | |
| BLAS / cuBLAS (GPU) | 실용적 최속 | 딥러닝 프레임워크에서 사용 |
핵심 요약
기억할 것
- 크기 조건: A의 열 수 = B의 행 수
- 원소 계산: = A의 i행 · B의 j열의 내적
- 교환법칙 없음:
- 전치/역행렬: 순서가 뒤집힌다 —