본문 바로가기

📌 SW전공-개념/이산구조

[이산구조 개념-16] 행렬의 기초와 연산 — 숫자들의 사각형 세계

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 ⟺ (행 수 같음) ∧ (열 수 같음) ∧ (모든 대응 원소 같음)

상등 판별 예시

AB같은가?이유
[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]

위치A 원소B 원소A+B
(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 (바깥 차원만 남음)

곱셈 가능 여부 판별 예시

A 크기B 크기곱셈 가능?결과 크기
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가 정의조차 되지 않을 수도 있다.

예시
A 크기B 크기AB 가능?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배.

실전 영향

행렬 크기연산 횟수 (n³)
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 행렬로 변환)

A의 원소위치Aᵀ의 위치
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 × 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² × 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)

👉 정답: ③

각 선택지의 안쪽 차원 검사:

번호A 크기B 크기안쪽 차원가능?
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]일 때, 의 값으로 옳은 것은?

① [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) 의 특수한 형태로, 거듭제곱이 단순한 패턴을 따른다. 시험에서 이런 패턴 인식 문제가 자주 나오니 계산 후 일반식을 추측해보는 습관을 들이자.