1. 행렬(Matrix)이란
정의
행렬은 숫자나 객체들을 사각형 모양으로 배열한 것 — 직사각형 배열(Rectangular Array)이다.
엑셀 스프레드시트 비유
엑셀의 셀을 떠올려보자. 행과 열로 구성된 표에 숫자를 채워넣은 것이 바로 행렬이다.
Col 1 Col 2 Col 3
Row 1 [ 1 2 3 ]
Row 2 [ 4 5 6 ]
Row 3 [ 7 8 9 ]
행렬의 활용 분야
| 컴퓨터 그래픽스 | 3D 모델링, 회전·확대·이동 변환 |
| 이미지 처리 | 필터, 압축, 색상 변환 |
| 계산 과학 | 시뮬레이션, 시스템 상태 변화 |
| 네트워크 모델링 | 연결성 분석, 경로 최적화 |
| 머신러닝 | 가중치 행렬, 데이터 변환 |
| 게임 개발 | 캐릭터 움직임, 시점 변환 |
💡 충격 사실: 게임 속 캐릭터가 한 걸음 움직일 때마다, 그래픽 카드는 수십만 번의 행렬 곱셈을 수행한다. 행렬 없이는 현대 IT 산업이 작동하지 않는다.
2. 행렬의 해부학 — m×n 지도 읽기 ⭐
행렬의 크기 표기
m × n 행렬: m행 × n열
| m (행, Row) | 위에서 아래로 (가로줄) |
| n (열, Column) | 왼쪽에서 오른쪽으로 (세로줄) |
| 표기 순서 | 항상 "행 × 열" 순서 (RC: Row → Column) |
원소 표기 — aᵢ,ⱼ
aᵢ,ⱼ = i번째 행, j번째 열의 원소
| i | 행 번호 (먼저!) |
| j | 열 번호 (나중!) |
예제
A = [ 1 2 ]
[ 3 4 ]
| a₁,₁ | 1행 1열 | 1 |
| a₁,₂ | 1행 2열 | 2 |
| a₂,₁ | 2행 1열 | 3 |
| a₂,₂ | 2행 2열 | 4 |
⚠️ 시험 함정 1순위: a₁,₂와 a₂,₁을 헷갈리지 말 것. 항상 행이 먼저, 열이 나중(RC 순서). 이 순서를 바꾸면 완전히 다른 원소를 지칭하게 된다.
다양한 크기의 행렬 예시
| 1 × 1 | [5] | 스칼라 |
| 1 × n | [1, 2, 3] | 행 벡터 |
| m × 1 | [1; 2; 3]ᵀ | 열 벡터 |
| n × n | n행 n열 | 정방행렬 ⭐ |
| m × n (m ≠ n) | 2 × 3 등 | 직사각 행렬 |
3. 행렬의 상등 (Equality)
정의
두 행렬이 '같다'고 말하기 위한 2가지 필수 조건.
상등 조건
| ① 형태 일치 | 행과 열의 개수가 모두 같아야 함 |
| ② 원소 일치 | 모든 (i, j)에 대해 aᵢ,ⱼ = bᵢ,ⱼ |
핵심 원리
A = B ⟺ (행 수 같음) ∧ (열 수 같음) ∧ (모든 대응 원소 같음)
상등 판별 예시
| [1 2; 3 4] (2×2) | [1 2; 3 4] (2×2) | ⭕ | 형태·원소 모두 일치 |
| [1 2; 3 4] (2×2) | [1 2 0; 3 4 0] (2×3) | ❌ | 형태 다름 |
| [1 2; 3 4] | [1 2; 3 5] | ❌ | 한 원소 다름 |
💡 시험 핵심: 형태가 다르면 비교조차 불가능하다. "값이 비슷해 보여도" 형태가 다르면 무조건 다른 행렬이다.
4. 행렬의 덧셈 (Addition) ⭐
정의
두 행렬의 대응하는 위치의 원소끼리 단순 더하기.
절대 조건
반드시 같은 m × n 크기여야만 덧셈 가능 (쌍둥이 원칙)
핵심 원리
A + B = C 여기서 cᵢ,ⱼ = aᵢ,ⱼ + bᵢ,ⱼ
덧셈 예제
A = [5 2 8; 1 4 6; 9 3 7], B = [2 9 1; 5 6 4; 3 7 0]
| (1,1) | 5 | 2 | 7 |
| (1,2) | 2 | 9 | 11 |
| (1,3) | 8 | 1 | 9 |
| (2,1) | 1 | 5 | 6 |
| (2,2) | 4 | 6 | 10 |
| (2,3) | 6 | 4 | 10 |
| (3,1) | 9 | 3 | 12 |
| (3,2) | 3 | 7 | 10 |
| (3,3) | 7 | 0 | 7 |
결과:
A + B = [ 7 11 9 ]
[ 6 10 10 ]
[12 10 7 ]
결과 행렬의 크기
A + B의 크기 = 원래 행렬과 동일 (m × n)
💡 시험 함정: 크기가 다른 행렬끼리는 절대 더할 수 없다. 2×3 행렬 + 3×2 행렬 = 에러! 이는 수학적으로 정의되지 않은 연산이다.
5. 행렬의 곱셈 (Multiplication) ⭐⭐⭐ 시험 핵심
정의
행렬의 곱셈은 단순한 원소별 곱셈이 아니다. 첫 행렬의 행과 둘째 행렬의 열을 내적(Dot Product) 하여 새 원소를 만든다.
톱니바퀴 비유
두 행렬이 톱니바퀴처럼 맞물려야 한다. 안쪽 차원이 일치해야 곱셈 가능.
곱셈의 2대 규칙 ⭐
A: m × k, B: k × n → 곱셈 가능 (k가 같아야 함)
A는 m × [k]
B는 [k] × n
↑
이 k가 같아야!
A · B의 크기 = m × n (바깥 차원만 남음)
곱셈 가능 여부 판별 예시
| 2 × 3 | 3 × 4 | ⭕ | 2 × 4 |
| 3 × 2 | 2 × 5 | ⭕ | 3 × 5 |
| 2 × 3 | 4 × 3 | ❌ | 안쪽 차원 3≠4 |
| 5 × 5 | 5 × 5 | ⭕ | 5 × 5 |
| 3 × 4 | 3 × 4 | ❌ | 안쪽 차원 4≠3 |
곱셈 계산 공식
cᵢ,ⱼ = Σ (aᵢ,q × bq,j) for q = 1 to k
쉽게 말해: A의 i번째 행과 B의 j번째 열을 1:1로 곱해 모두 더한 값이 cᵢ,ⱼ.
2×2 곱셈 예제
A = [a₁₁ a₁₂; a₂₁ a₂₂], B = [b₁₁ b₁₂; b₂₁ b₂₂]
AB = [ a₁₁b₁₁ + a₁₂b₂₁ a₁₁b₁₂ + a₁₂b₂₂ ]
[ a₂₁b₁₁ + a₂₂b₂₁ a₂₁b₁₂ + a₂₂b₂₂ ]
구체적 숫자 예제
A = [1 2; 3 4], B = [5 6; 7 8]
| (1,1) | 1·5 + 2·7 = 5+14 | 19 |
| (1,2) | 1·6 + 2·8 = 6+16 | 22 |
| (2,1) | 3·5 + 4·7 = 15+28 | 43 |
| (2,2) | 3·6 + 4·8 = 18+32 | 50 |
AB = [ 19 22 ]
[ 43 50 ]
💡 풀이 패턴: "A의 i행을 가로로, B의 j열을 세로로 놓고 1:1로 곱한 후 다 더한다". 이 흐름을 손에 익히면 행렬 곱셈은 더 이상 어렵지 않다.
6. 행렬 곱셈의 ⚠️ 핵심 함정 — 교환법칙 X
절대 잊으면 안 되는 사실
AB ≠ BA (일반적으로)
행렬 곱셈은 일반 숫자 곱셈과 달리 순서가 결과를 바꾼다.
더 충격적인 사실
심지어 BA가 정의조차 되지 않을 수도 있다.
| 2 × 3 | 3 × 4 | ⭕ (2×4) | ❌ (4와 2가 안 맞음) |
| 2 × 2 | 2 × 2 | ⭕ | ⭕ (단, 다른 결과) |
시험 단골 비교
A = [1 2; 3 4], B = [5 6; 7 8]일 때:
| AB | [19 22; 43 50] |
| BA | [23 34; 31 46] |
→ AB ≠ BA ✅
💡 시험 만점 비결: 행렬 곱셈 문제에서 "AB와 BA의 관계"를 묻는 문제가 자주 나온다. 항상 다르다고 답하면 된다.
7. 행렬 곱셈의 시간 복잡도 — 왜 비싼 연산인가
정의
m × k 행렬과 k × n 행렬의 곱셈 시 필요한 총 연산량.
3중 중첩 루프 구조
for i := 1 to m (행 순회: Θ(m))
for j := 1 to n (열 순회: Θ(n))
for q := 1 to k (내적: Θ(k))
sum += A[i][q] × B[q][j]
총 시간 복잡도
Θ(m × n × k)
특히 정방행렬(n × n)의 곱셈은 Θ(n³) — 행렬 크기가 두 배가 되면 연산량은 8배.
실전 영향
| 10 × 10 | 1,000 |
| 100 × 100 | 1,000,000 |
| 1,000 × 1,000 | 1,000,000,000 |
💡 AI 시대의 의미: ChatGPT 같은 거대 언어 모델은 수십억 × 수십억 행렬을 다룬다. 이 때문에 GPU(병렬 행렬 계산기) 가 필수가 되었다. 행렬 곱셈 최적화는 현대 AI 산업의 핵심 기술이다.
8. 전치 행렬 (Transpose, Aᵀ) ⭐
정의
주대각선을 거울 삼아 행렬을 뒤집는 변환.
핵심 변화
m × n 행렬 → n × m 행렬
행이 열이 되고, 열이 행이 된다.
원소 변환 규칙
A의 (i, j) 위치 원소 → Aᵀ의 (j, i) 위치로 이동 aᵢ,ⱼ → aⱼ,ᵢ
전치 예제
A = [2 1 3; 0 −1 −2] (2×3)
A = [ 2 1 3 ]
[ 0 -1 -2 ]
전치하면:
Aᵀ = [ 2 0 ]
[ 1 -1 ]
[ 3 -2 ]
(3×2 행렬로 변환)
| 2 | (1,1) | (1,1) — 대각선 위 |
| 1 | (1,2) | (2,1) — 행↔열 |
| 3 | (1,3) | (3,1) — 행↔열 |
| 0 | (2,1) | (1,2) — 행↔열 |
| −1 | (2,2) | (2,2) — 대각선 위 |
| −2 | (2,3) | (3,2) — 행↔열 |
실생활 응용
| 데이터베이스 | 테이블 행/열 전환 |
| 통계학 | 공분산 행렬 계산 |
| 선형대수 | 정규방정식, 최소제곱법 |
9. 대칭 행렬 (Symmetric Matrix)
정의
전치를 해도 자기 자신과 똑같은 행렬.
A = Aᵀ
두 가지 필수 조건
| 정방행렬 | 반드시 n × n (행/열 개수 같음) |
| 대칭 원소 | 모든 i, j에 대해 aᵢ,ⱼ = aⱼ,ᵢ |
데칼코마니 비유
종이를 주대각선으로 접었을 때 양쪽이 완벽히 일치하는 행렬.
대칭 행렬 예제
A = [ 1 2 3 ]
[ 2 4 5 ]
[ 3 5 6 ]
전치하면:
Aᵀ = [ 1 2 3 ]
[ 2 4 5 ]
[ 3 5 6 ]
→ A = Aᵀ ✅ (대칭 행렬)
대칭 행렬 판별
| [1 2; 2 1] | ⭕ |
| [1 2; 3 1] | ❌ (a₁,₂ ≠ a₂,₁) |
| [1 2 3; 2 4 5; 3 5 6] | ⭕ |
| [1 2; 3 4; 5 6] | ❌ (정방행렬 아님) |
💡 응용: 그래프 이론에서 무방향 그래프의 인접 행렬은 항상 대칭이다. (A→B 연결이 있으면 B→A 연결도 자동 존재)
10. 항등 행렬 (Identity Matrix, Iₙ) ⭐
정의
행렬 세계의 숫자 '1' 역할을 하는 정방행렬.
구조
주대각선은 모두 1, 나머지는 모두 0
항등 행렬 예시
I₂ = [ 1 0 ] I₃ = [ 1 0 0 ]
[ 0 1 ] [ 0 1 0 ]
[ 0 0 1 ]
핵심 성질
A × Iₙ = Iₙ × A = A (어떤 행렬을 곱해도 그대로!)
투명 망토 비유
항등 행렬은 투명 망토처럼 다른 행렬에 곱해도 변화를 일으키지 않는다. 일반 숫자에서 × 1과 같은 역할.
항등 원소 일반화
| 덧셈 (+) | 0 |
| 곱셈 (×) | 1 |
| 합집합 (∪) | ∅ |
| 교집합 (∩) | U |
| 행렬 곱셈 | Iₙ |
💡 항등 행렬은 다음 단원에서 다룰 역행렬과 부울린 거듭제곱의 기준이 된다.
11. 역행렬 (Inverse, A⁻¹) ⭐⭐⭐ 시험 핵심
정의
원래 행렬 A와 곱해서 항등 행렬 Iₙ 을 만들어내는 유일한 짝.
핵심 공식
A⁻¹ × A = A × A⁻¹ = Iₙ
역수 비유
일반 숫자에서 5의 역수는 1/5 (5 × 1/5 = 1). 행렬에서 A의 역행렬은 A⁻¹ (A × A⁻¹ = I).
역행렬 존재의 절대 조건 ⭐
| ① 정방행렬 | 반드시 n × n (직사각형 행렬은 역행렬 없음!) |
| ② 가역(invertible) | 모든 정방행렬이 역행렬을 갖는 건 아님 |
💡 시험 함정: 직사각 행렬(예: 2×3)은 절대로 역행렬을 가질 수 없다. 직사각 행렬의 역행렬을 구하라는 문제가 나오면 "존재하지 않음" 이 답이다.
역행렬 예제
A = [2 3 −1; 1 2 1; −1 1 3]
| A | [2 3 −1; 1 2 1; −1 1 3] |
| A⁻¹ | [7 −8 5; −4 5 −3; 1 −1 1] |
검증:
A × A⁻¹ = I₃ = [1 0 0; 0 1 0; 0 0 1] ✅
역행렬의 응용
| 연립방정식 풀기 | Ax = b → x = A⁻¹b |
| 데이터 변환 | 변환 후 원상복구 |
| 암호학 | 암호화 행렬의 복호화 |
| 컴퓨터 그래픽 | 변환 행렬의 역변환 (회전 되돌리기 등) |
💡 함수의 역함수와의 일치: 15강에서 배운 역함수 개념이 행렬 세계로 그대로 옮겨온 것. A⁻¹는 A가 한 일을 되돌리는 함수다.
12. 행렬의 거듭제곱 (Powers, Aᵖ)
정의
자기 자신을 p번 반복해서 곱하는 압축 연산.
핵심 공식
Aᵖ = A × A × A × ... × A (총 p번)
0승 규칙
A⁰ = Iₙ (어떤 수의 0승이 1인 것과 같은 원리)
절대 조건
반드시 정방행렬이어야 거듭제곱 가능 (자기 자신과 곱해야 하므로)
거듭제곱 계산 예제
A = [2 1; −1 0]
A² = A × A = [2 1; −1 0] × [2 1; −1 0]
| (1,1) | 2·2 + 1·(−1) = 4 − 1 = 3 |
| (1,2) | 2·1 + 1·0 = 2 + 0 = 2 |
| (2,1) | (−1)·2 + 0·(−1) = −2 + 0 = −2 |
| (2,2) | (−1)·1 + 0·0 = −1 + 0 = −1 |
→ A² = [3 2; −2 −1]
A³ = A² × A = [3 2; −2 −1] × [2 1; −1 0]
| (1,1) | 3·2 + 2·(−1) = 6 − 2 = 4 |
| (1,2) | 3·1 + 2·0 = 3 + 0 = 3 |
| (2,1) | (−2)·2 + (−1)·(−1) = −4 + 1 = −3 |
| (2,2) | (−2)·1 + (−1)·0 = −2 + 0 = −2 |
→ A³ = [4 3; −3 −2]
💡 응용: 거듭제곱은 시스템의 시간에 따른 상태 변화를 표현할 때 유용하다. A가 1시간 후 변화라면, Aᵖ는 p시간 후 상태. 이는 다음 17강의 부울린 거듭제곱에서 그래프 경로 분석으로 확장된다.
📌 한눈에 보는 핵심정리
| 행렬 | m × n 직사각형 배열 |
| 원소 표기 | aᵢ,ⱼ — i(행) 먼저, j(열) 나중 |
| 상등 | 형태 일치 + 모든 원소 일치 |
| 덧셈 | 같은 m × n끼리만, 원소별 더하기 |
| 곱셈 규칙 | A(m×k) × B(k×n) → C(m×n) |
| 곱셈 핵심 | 안쪽 차원 일치, 결과는 바깥 차원 |
| 곱셈 함정 | AB ≠ BA (교환법칙 X) |
| 시간 복잡도 | Θ(mnk), 정방행렬은 Θ(n³) |
| 전치 Aᵀ | 행↔열 교환, m×n → n×m |
| 대칭 행렬 | A = Aᵀ, 정방행렬 필수 |
| 항등 행렬 Iₙ | 대각선 1, 나머지 0, A × I = A |
| 역행렬 A⁻¹ | A × A⁻¹ = I, 정방행렬만 가능 |
| 거듭제곱 Aᵖ | 정방행렬 자기 자신 p번 곱셈, A⁰ = Iₙ |
🧠 예상문제 2제
문제 1. 행렬 곱셈 가능 여부
다음 중 행렬 곱셈이 불가능한 것은?
① A(3×2) × B(2×4) ② A(5×5) × B(5×5) ③ A(2×3) × B(2×3) ④ A(4×1) × B(1×6)
👉 정답: ③
각 선택지의 안쪽 차원 검사:
| ① | 3 × 2 | 2 × 4 | 2 = 2 | ⭕ → 결과 3×4 |
| ② | 5 × 5 | 5 × 5 | 5 = 5 | ⭕ → 결과 5×5 |
| ③ | 2 × 3 | 2 × 3 | 3 ≠ 2 | ❌ |
| ④ | 4 × 1 | 1 × 6 | 1 = 1 | ⭕ → 결과 4×6 |
💡 시험 핵심 절차: 행렬 곱셈 가능 여부 판단 시 A의 열 수 = B의 행 수인지만 확인하면 된다. 같으면 가능, 다르면 불가능.
문제 2. 행렬 거듭제곱 계산
행렬 A = [1 1; 0 1]일 때, A³의 값으로 옳은 것은?
① [1 2; 0 1] ② [1 3; 0 1] ③ [3 3; 0 3] ④ [1 0; 0 1]
👉 정답: ②
A² 계산 (A × A)
[1 1; 0 1] × [1 1; 0 1]
| (1,1) | 1·1 + 1·0 = 1 |
| (1,2) | 1·1 + 1·1 = 2 |
| (2,1) | 0·1 + 1·0 = 0 |
| (2,2) | 0·1 + 1·1 = 1 |
→ A² = [1 2; 0 1]
A³ 계산 (A² × A)
[1 2; 0 1] × [1 1; 0 1]
| (1,1) | 1·1 + 2·0 = 1 |
| (1,2) | 1·1 + 2·1 = 3 |
| (2,1) | 0·1 + 1·0 = 0 |
| (2,2) | 0·1 + 1·1 = 1 |
→ A³ = [1 3; 0 1] ✅
💡 추가 학습 — 패턴 발견: A^n = [1 n; 0 1] 패턴이 보인다. 이런 식의 행렬은 상삼각 행렬(Upper Triangular Matrix) 의 특수한 형태로, 거듭제곱이 단순한 패턴을 따른다. 시험에서 이런 패턴 인식 문제가 자주 나오니 계산 후 일반식을 추측해보는 습관을 들이자.
'📌 SW전공-개념 > 이산구조' 카테고리의 다른 글
| [이산구조 개념-18] 알고리즘의 기초 — 정의·6대 특징·의사코드 (0) | 2026.06.11 |
|---|---|
| [이산구조 개념-17] 영-일 행렬과 부울린 연산 — 0과 1로 그리는 관계의 지도 (0) | 2026.06.10 |
| [이산구조 개념-15] 함수의 성질과 연산 — 단사·전사·전단사부터 합성까지 (1) | 2026.06.08 |
| [이산구조 개념-14] 함수의 기초 — 입력하면 출력된다, 매핑 머신의 수학 (0) | 2026.06.07 |
| [이산구조 개념-13] 집합 연산과 항등 법칙 — 합집합·교집합부터 증명까지 (1) | 2026.06.06 |