수학

MATH / 초급 42번

행렬이라는 표기: 수를 직사각형으로 늘어놓으면 무엇이 편해지는가

지금까지 다룬 수 하나짜리 대상 대신 수를 직사각형으로 늘어놓은 것을 세웁니다. 크기 m×n과 첨자 aᵢⱼ, 덧셈과 스칼라배, Ax와 AB의 정의, 크기가 맞아야 곱해진다는 규칙, 단위행렬 I와 전치 Aᵀ, 그리고 (AB)ᵀ=BᵀAᵀ까지 손으로 계산합니다.

PALDYN Team35 MIN READ

지금까지 다룬 대상은 대체로 수 하나였습니다. 방정식의 미지수 xx, 함수의 입력과 출력, 확률의 값 하나. 이번 글부터는 수를 여러 개 묶은 새 대상 하나를 세웁니다. 왜 그것이 필요한지부터 봅니다.

행렬의 쓰임

수를 가로세로로 늘어놓은 것을 행렬이라고 합니다. 정의는 이 한 줄이 전부입니다. 그래서 정의보다 먼저 볼 것은 무엇을 이렇게 적게 되는가 입니다. 세 가지를 봅니다.

성적표

이미 우리는 수를 가로세로로 늘어놓고 삽니다. 표가 그것입니다. 세 사람의 세 과목 점수를 적은 표를 봅니다.

성적표와 흑백 이미지를 행렬로 옮긴 그림

국어 영어 수학
지수 90 75 88
민호 70 92 64
서연 85 80 95

이름과 과목 이름을 떼어 내고 수만 남기면 3×33 \times 3 짜리 수의 직사각형이 됩니다.

S=(907588709264858095)S = \begin{pmatrix} 90 & 75 & 88 \\ 70 & 92 & 64 \\ 85 & 80 & 95 \end{pmatrix}

이름을 뗐다고 뜻이 사라진 것은 아닙니다. 첫 행이 지수, 둘째 열이 영어라는 약속만 밖에 적어 두면 됩니다. 표에서 "민호의 수학 점수"를 찾던 일이 여기서는 "둘째 행 셋째 열의 수를 읽는 일"이 됩니다. 이름을 자리로 바꾼 것이 행렬 표기의 첫째 이득입니다.

행과 열이 서로 다른 물음에 답한다는 것도 그대로 남습니다. 한 행을 가로로 훑어 평균을 내면 그 사람의 평균 점수이고, 한 열을 세로로 훑어 평균을 내면 그 과목의 평균 점수입니다. 같은 수 아홉 개를 어느 방향으로 읽느냐가 물음을 가릅니다.

흑백 이미지

화면의 그림도 수를 가로세로로 늘어놓은 것입니다. 흑백 이미지는 점 하나마다 밝기를 0(검정)부터 255(흰색)까지의 수로 갖습니다. 가로 8칸 세로 8칸짜리 작은 그림이라면 수가 64개 있는 8×88 \times 8 행렬입니다.

(01282556420030255090)\begin{pmatrix} 0 & 128 & 255 \\ 64 & 200 & 30 \\ 255 & 0 & 90 \end{pmatrix}

3×33 \times 3 짜리로 줄여 적으면 이렇습니다. 첫 행의 세 수는 맨 윗줄 세 점의 밝기이고, 첫 열의 세 수는 맨 왼쪽 줄 세 점의 밝기입니다. 행과 열이 곧 그림의 가로줄과 세로줄 입니다.

그림을 통째로 밝게 하는 일은 모든 수에 같은 값을 더하는 일이 되고, 좌우를 뒤집는 일은 각 행의 순서를 뒤집는 일이 됩니다. 눈으로 하던 조작이 수에 대한 조작으로 옮겨집니다. 색이 있는 그림이라면 빨강·초록·파랑의 밝기를 따로 적어 같은 크기의 행렬 세 장을 겹쳐 둡니다.

방정식의 계수

셋째 예가 이 글이 계속 따라갈 예입니다. 방정식 셋을 이렇게 적었다고 합시다.

{2x+y+3z=134y+5z=23x+z=4\begin{cases} 2x + y + 3z = 13 \\ 4y + 5z = 23 \\ x + z = 4 \end{cases}

이 세 줄에서 실제로 계산에 쓰는 것은 계수와 우변의 수뿐입니다. xx·yy·zz 는 자리를 지키는 이름표고, 부호나 순서만 지키면 굳이 매번 적을 필요가 없습니다. 그래서 수들만 자리에 맞게 늘어놓으면 표기가 간결해집니다. 지난 글까지 다룬 수 하나짜리 대상 대신 수의 직사각형을 다루는 새 언어를 이번 글에서 세웁니다.

셋의 공통점은 하나입니다. 자리 자체가 뜻을 갖는다는 것 입니다. 그래서 다음 절에서 자리를 부르는 법부터 정합니다.

크기와 성분 연산

가로 방향의 줄이 행이고 세로 방향의 줄이 열입니다. 행이 mm 개, 열이 nn 개면 이 행렬의 크기가 m×nm \times n 이라 하고 "m 바이 n"이라 읽습니다.

첨자의 순서

행렬의 각 자리에 있는 수를 성분이라 하고 aija_{ij} 로 적습니다. 첫 첨자 ii 는 행, 둘째 첨자 jj 는 열입니다. 순서를 뒤집으면 다른 자리를 가리키게 되므로, "행 먼저, 열 나중"은 반드시 기억해야 하는 약속입니다.

3x4 행렬의 첨자 규약과 크기

크기를 적을 때도 같은 순서입니다. 3×43 \times 4 는 행이 셋이고 열이 넷이라는 뜻이지 그 반대가 아닙니다. 크기와 첨자가 같은 순서를 쓰는 덕에 헷갈릴 자리가 하나로 줄어듭니다.

행과 열의 개수가 같은 행렬은 정사각 행렬 이라고 따로 부릅니다. 뒤에 나오는 단위행렬·대각행렬·대각합처럼 대각선을 쓰는 이름은 전부 정사각 행렬에만 붙습니다 — 대각선이 한쪽 끝에서 반대쪽 끝까지 닿으려면 가로와 세로가 같아야 하기 때문입니다.

앞의 방정식 셋의 계수는 이렇게 정리됩니다.

A=(213045101),b=(13234)A = \begin{pmatrix} 2 & 1 & 3 \\ 0 & 4 & 5 \\ 1 & 0 & 1 \end{pmatrix}, \quad b = \begin{pmatrix} 13 \\ 23 \\ 4 \end{pmatrix}

AA 는 3×33 \times 3, bb 는 3×13 \times 1 입니다. 둘째 방정식에 xx 가 없다는 사실이 AA 의 둘째 행 첫 자리에 놓인 0으로 적혀 있습니다. 빠진 항을 0으로 적어 두는 것이 자리를 지키는 방법입니다.

열과 행

bb 처럼 열이 한 줄뿐인 행렬을 열이라 하고, 그 안의 수들을 세로로 적어 둔 것입니다. 24번 글 · 좌표평면과 직선에서 다룬 순서쌍 (x,y)(x, y) 를 세로로 세워 적은 것도 이 열이고, 평면 위의 점 하나를 이렇게 세로 두 성분으로 적을 수 있다는 관점을 이 글에서는 그것까지만 씁니다. "벡터"라는 수학 대상 자체 — 덧셈과 스칼라배에 닫힌 것, 선형결합, 화살표 관점 — 는 중급 4번의 것이고, 여기서는 표기 규약만 빌려 씁니다.

행이 한 줄뿐인 1×n1 \times n 행렬도 있고 행이라 부릅니다. 이 글에서는 열만 쓰지만, 뒤에서 곱을 정의할 때 "AA 의 한 행"을 떼어 보는 일이 계속 나옵니다.

행렬의 덧셈

같은 크기의 행렬끼리는 자리를 맞춰 더합니다. 성분마다 따로 더하는 것이 전부입니다.

(1234)+(5678)=(681012)\begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix} + \begin{pmatrix} 5 & 6 \\ 7 & 8 \end{pmatrix} = \begin{pmatrix} 6 & 8 \\ 10 & 12 \end{pmatrix}

크기가 다르면 더할 수 없습니다. 2×22 \times 2 와 2×32 \times 3 은 짝지을 자리가 모자라 정의 자체가 없습니다. 뺄셈도 같은 방식이라 성분끼리 뺍니다.

스칼라배

행렬이 아닌 수 하나를 스칼라라고 부릅니다. 행렬과 구별하려고 붙인 이름입니다. 스칼라로 곱하는 것도 성분마다 합니다.

3⋅(1234)=(36912)3 \cdot \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix} = \begin{pmatrix} 3 & 6 \\ 9 & 12 \end{pmatrix}

앞의 흑백 이미지로 말하면, 덧셈은 두 장을 겹쳐 밝기를 더하는 일이고 스칼라배는 한 장 전체의 밝기를 몇 배로 올리는 일입니다.

뺄셈은 따로 정의할 것이 없습니다. −1-1 을 곱한 것을 더하면 됩니다.

A−B=A+(−1)BA - B = A + (-1)B

수를 다룰 때 뺄셈을 "음수를 더하는 것"으로 읽었던 것이 그대로 옵니다. 괄호를 푸는 규칙도 같습니다. 성분마다 따로 하는 계산이라 수의 분배법칙이 자리마다 한 번씩 적용되는 셈이기 때문입니다.

k(A+B)=kA+kB,(k+l)A=kA+lAk(A+B) = kA + kB, \qquad (k+l)A = kA + lA

덧셈과 스칼라배까지는 새로 익힐 것이 없다는 뜻입니다. 수에서 하던 대로 하면 맞습니다.

이 두 연산은 크기만 맞으면 다 됩니다. 문제는 곱이 다른 규칙을 따른다는 것입니다.

행렬과 열의 곱

Ax의 정의

방정식 2x+y+3z=132x + y + 3z = 13 을 다시 봅니다. 왼쪽은 계수 (2,1,3)(2, 1, 3) 과 미지수 (x,y,z)(x, y, z) 를 성분끼리 곱해 더한 것입니다. 이것이 행렬과 열의 곱의 뼈대입니다.

행렬 AA 와 열 xx 의 곱 AxAx 는 "AA 의 각 행과 xx 를 성분끼리 곱해 더한 값을 그 행의 자리에 놓은 것" 입니다.

Ax의 계산: A의 각 행과 x를 성분끼리 곱해 더한다

A=(213045),x=(123)A = \begin{pmatrix} 2 & 1 & 3 \\ 0 & 4 & 5 \end{pmatrix}, \quad x = \begin{pmatrix} 1 \\ 2 \\ 3 \end{pmatrix}

Ax=(2⋅1+1⋅2+3⋅30⋅1+4⋅2+5⋅3)=(1323)Ax = \begin{pmatrix} 2\cdot 1 + 1\cdot 2 + 3\cdot 3 \\ 0\cdot 1 + 4\cdot 2 + 5\cdot 3 \end{pmatrix} = \begin{pmatrix} 13 \\ 23 \end{pmatrix}

행 하나가 결과의 한 자리를 만듭니다. 그래서 결과의 행 개수는 AA 의 행 개수와 같습니다.

크기 조건

크기가 맞아야 곱해집니다. AA 가 m×nm \times n 이고 xx 가 n×1n \times 1 일 때에만 AxAx 가 정의되고, 결과는 m×1m \times 1 입니다. AA 의 열 개수와 xx 의 행 개수가 같아야 한다는 것이 핵심입니다. 위 예에서는 (2×3)×(3×1)=(2×1)(2 \times 3) \times (3 \times 1) = (2 \times 1) 이었습니다.

이 조건은 억지로 붙인 것이 아닙니다. AA 의 한 행에 든 수가 셋인데 xx 에 든 수가 넷이면 짝지어 곱할 상대가 없는 수가 남습니다. 성분끼리 곱해 더하는 계산이 아예 끝나지 않는 것입니다.

Ax = b

이 표기를 알면 앞의 방정식 셋을 한 줄로 적을 수 있습니다.

Ax=b즉(213045101)(xyz)=(13234)Ax = b \quad\text{즉}\quad \begin{pmatrix} 2 & 1 & 3 \\ 0 & 4 & 5 \\ 1 & 0 & 1 \end{pmatrix} \begin{pmatrix} x \\ y \\ z \end{pmatrix} = \begin{pmatrix} 13 \\ 23 \\ 4 \end{pmatrix}

AA 를 계수행렬이라고 부릅니다. 세 방정식이 한 줄이 되었습니다.

줄어든 것은 글자 수만이 아닙니다. 모양이 ax=bax=b 와 같아졌습니다. 수 하나짜리 방정식이라면 양변을 aa 로 나눠 x=b/ax = b/a 로 끝내는데, 행렬에서 그 "나누기"에 해당하는 것이 무엇인지가 곧바로 다음 물음이 됩니다. 그 물음은 44번 · 행렬식과 역행렬이 받습니다.

행렬끼리의 곱

AB의 정의

행렬끼리의 곱은 방금 본 규칙을 그대로 확장합니다. ABAB 의 (i,j)(i, j) 성분은 AA 의 ii 행과 BB 의 jj 열을 성분끼리 곱해 더한 것입니다.

(1234)(5678)\begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix} \begin{pmatrix} 5 & 6 \\ 7 & 8 \end{pmatrix}

의 (1,1)(1, 1) 성분은 왼쪽의 첫 행 (1,2)(1, 2) 와 오른쪽의 첫 열 (5,7)(5, 7) 을 곱해 더한 것입니다.

1⋅5+2⋅7=191 \cdot 5 + 2 \cdot 7 = 19

네 자리를 다 하면

(1234)(5678)=(1⋅5+2⋅71⋅6+2⋅83⋅5+4⋅73⋅6+4⋅8)=(19224350)\begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix} \begin{pmatrix} 5 & 6 \\ 7 & 8 \end{pmatrix} = \begin{pmatrix} 1\cdot 5 + 2\cdot 7 & 1\cdot 6 + 2\cdot 8 \\ 3\cdot 5 + 4\cdot 7 & 3\cdot 6 + 4\cdot 8 \end{pmatrix} = \begin{pmatrix} 19 & 22 \\ 43 & 50 \end{pmatrix}

BB 의 열 하나를 떼어 보면 AxAx 와 똑같은 계산입니다. ABAB 는 AxAx 를 BB 의 열마다 한 번씩 해서 나란히 붙인 것 이라고 읽어도 됩니다.

크기 규칙

크기 규칙은 AxAx 와 같습니다 — AA 가 m×nm \times n 이고 BB 가 n×pn \times p 여야 곱이 만들어지고, 결과는 m×pm \times p 입니다.

(m×n‾)⋅(n‾×p) → (m×p)(m \times \underline{n}) \cdot (\underline{n} \times p) \ \to\ (m \times p)

손으로 확인하는 요령은 이렇습니다. 두 크기를 순서대로 나란히 적고, 안쪽 두 수를 손가락으로 가립니다. 가린 두 수가 같으면 곱해지고, 남아서 보이는 바깥 두 수가 결과의 크기입니다.

(2×3‾)(3‾×4) → 2×4(2 \times \underline{3})(\underline{3} \times 4) \ \to\ 2 \times 4

셋 이상을 곱할 때도 그대로입니다. 크기를 이어 적고 이웃한 안쪽끼리 차례로 확인합니다.

(2×3‾)(3‾×5‾)(5‾×4) → 2×4(2 \times \underline{3})(\underline{3} \times \underline{5})(\underline{5} \times 4) \ \to\ 2 \times 4

가운데가 두 번 다 맞으므로 곱해지고, 결과는 맨 바깥의 2×42 \times 4 입니다. 계산에 들어가기 전에 이 확인부터 하면 헛계산을 하지 않습니다.

이어 붙이기

성분끼리 곱하는 쉬운 규칙을 놔두고 왜 이렇게 복잡한 규칙을 곱이라 부를까요. 행렬 곱이 "이어서 하기"를 적으려고 만들어진 것이기 때문입니다.

AxAx 를 "xx 를 넣으면 새 열이 나오는 장치"로 봅니다. 열 xx 에 먼저 BB 를 먹이고, 그 결과에 다시 AA 를 먹이면 A(Bx)A(Bx) 입니다. 이 두 걸음을 한 걸음으로 적어 주는 행렬 하나를 ABAB 라 부르기로 한 것 입니다.

A(Bx)=(AB)xA(Bx) = (AB)x

이 식이 항상 참이 되도록 곱을 정하면, 성분을 맞대어 더하는 저 규칙이 그대로 따라 나옵니다. 수로 한 번 확인해 봅니다.

A=(0110),B=(1002),x=(35)A = \begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix}, \quad B = \begin{pmatrix} 1 & 0 \\ 0 & 2 \end{pmatrix}, \quad x = \begin{pmatrix} 3 \\ 5 \end{pmatrix}

Bx=(310),A(Bx)=(103)Bx = \begin{pmatrix} 3 \\ 10 \end{pmatrix}, \quad A(Bx) = \begin{pmatrix} 10 \\ 3 \end{pmatrix}

한편 규칙대로 AB=(0210)AB = \begin{pmatrix} 0 & 2 \\ 1 & 0 \end{pmatrix} 이고, 이것을 xx 에 먹이면 (103)\begin{pmatrix} 10 \\ 3 \end{pmatrix} 으로 같습니다. 두 걸음과 한 걸음이 같은 답을 냈습니다.

여기까지가 이 글에서 볼 씨앗입니다. 행렬을 "장치"로 보는 관점과 그 유도는 중급 9번의 몫이고, 지금은 곱이 이어 붙이기를 적는 표기라서 저런 모양이 되었다는 것만 알아 두면 됩니다.

AB ≠ BA

보통의 곱은 a⋅b=b⋅aa \cdot b = b \cdot a 였습니다. 행렬 곱은 그렇지 않습니다. 위 예를 뒤집어 보면

(5678)(1234)=(5⋅1+6⋅35⋅2+6⋅47⋅1+8⋅37⋅2+8⋅4)=(23343146)\begin{pmatrix} 5 & 6 \\ 7 & 8 \end{pmatrix} \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix} = \begin{pmatrix} 5\cdot 1 + 6\cdot 3 & 5\cdot 2 + 6\cdot 4 \\ 7\cdot 1 + 8\cdot 3 & 7\cdot 2 + 8\cdot 4 \end{pmatrix} = \begin{pmatrix} 23 & 34 \\ 31 & 46 \end{pmatrix}

ABAB 와 BABA 가 다릅니다. 그것도 크게 다릅니다. 그러니 행렬 곱을 다룰 때는 순서를 함부로 바꾸면 안 됩니다.

AB≠BAAB \ne BA

AB는 (19 22 / 43 50), BA는 (23 34 / 31 46)로 네 자리가 모두 다른 그림

앞 소절의 관점으로 보면 놀랄 일이 아닙니다. 옷을 입고 나서 코트를 걸치는 것과 코트를 걸치고 옷을 입는 것이 다른 것과 같습니다 — 이어서 하는 두 걸음은 순서가 뜻의 일부입니다.

크기 조건 때문에 아예 한 쪽만 정의되기도 합니다. AA 가 2×32 \times 3 이고 BB 가 3×43 \times 4 라면 ABAB 는 2×42 \times 4 로 만들어지지만, BABA 는 가운데 수가 44 와 22 로 안 맞아 정의되지 않습니다.

단위행렬과 전치

영행렬과 대각행렬

이름부터 셋 붙여 둡니다. 모든 성분이 0인 행렬을 영행렬이라 하고 OO 로 적습니다. 크기가 맞으면 A+O=AA + O = A 이고 AO=OAO = O 입니다. 수 계산의 0이 하던 일을 그대로 합니다.

대각선 자리 바깥이 전부 0인 정사각 행렬을 대각행렬이라고 합니다.

D=(3005)D = \begin{pmatrix} 3 & 0 \\ 0 & 5 \end{pmatrix}

대각행렬을 곱하면 각 자리를 그 대각 성분만큼 배로 늘리는 일이 됩니다. D(12)=(310)D\begin{pmatrix} 1 \\ 2 \end{pmatrix} = \begin{pmatrix} 3 \\ 10 \end{pmatrix} 처럼 첫 성분은 3배, 둘째 성분은 5배가 됩니다. 여기서는 이름만 붙여 두고 지나갑니다.

단위행렬

대각선에 1이 놓이고 나머지는 0인 정사각 행렬을 단위행렬이라 하고 II 로 적습니다. 대각 성분이 전부 1인 대각행렬이라고 해도 같은 말입니다.

I2=(1001),I3=(100010001)I_2 = \begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix}, \quad I_3 = \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix}

II 는 곱에서 아무 일도 안 하는 자리를 맡습니다. 크기가 맞으면 AI=AAI = A 이고 IA=AIA = A 입니다. 수 계산의 1과 같은 역할입니다. 순서를 바꿔도 되는 드문 짝이기도 합니다.

전치

행과 열을 바꾼 것을 전치라 하고 ATA^\mathsf{T} 로 적습니다. m×nm \times n 행렬을 전치하면 n×mn \times m 이 되고, 성분은 (AT)ij=aji(A^\mathsf{T})_{ij} = a_{ji} 입니다. 대각선에 대해 뒤집었다고 생각하면 됩니다.

전치 A^T: 행과 열을 바꾼다

첨자가 ijij 에서 jiji 로 뒤집힌 것이 정의의 전부입니다. 그래서 두 번 전치하면 제자리로 돌아옵니다.

(AT)T=A(A^\mathsf{T})^\mathsf{T} = A

곱과 전치를 함께 쓰면 순서가 뒤집힙니다.

(AB)T=BTAT(AB)^\mathsf{T} = B^\mathsf{T} A^\mathsf{T}

순서가 뒤집히는 것이 이상해 보이면 크기부터 세어 봅니다. AA 가 m×nm \times n, BB 가 n×pn \times p 였으면 ABAB 는 m×pm \times p 이고 (AB)T(AB)^\mathsf{T} 는 p×mp \times m 입니다. 오른쪽 BTATB^\mathsf{T} A^\mathsf{T} 도 (p×n)(n×m)=(p×m)(p \times n)(n \times m) = (p \times m) 으로 같은 크기가 나옵니다. 순서를 그대로 두고 ATBTA^\mathsf{T}B^\mathsf{T} 라 적으면 (n×m)(p×n)(n \times m)(p \times n) 이라 가운데가 안 맞아 곱해지지도 않습니다. 성분끼리도 실제로 같은 값이 나오는 것은 아래 연습에서 확인합니다.

대각합

대각선 성분을 더한 값을 대각합이라 하고 tr⁡A\operatorname{tr} A 로 적습니다. 정사각 행렬에만 정의됩니다.

tr⁡(1234)=1+4=5\operatorname{tr} \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix} = 1 + 4 = 5

전치해도 대각선 자리는 그대로이므로 tr⁡AT=tr⁡A\operatorname{tr} A^\mathsf{T} = \operatorname{tr} A 입니다. 정사각이 아닌 행렬에는 대각합이 아예 없으므로, 아래 연습처럼 AATAA^\mathsf{T} 를 만들어 정사각으로 바꿔 놓고 재는 일이 잦습니다. 이 이름은 여기서 붙여만 두고 지나갑니다 — 나머지 성질은 이 트랙의 뒤쪽 글이나 중급의 몫입니다.

연습 문제

연습 1 — Ax 계산

  1. A=(1234), x=(56)A = \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix}, \ x = \begin{pmatrix} 5 \\ 6 \end{pmatrix} 일 때 AxAx 를 구하세요.
    첫 행과 xx: 1⋅5+2⋅6=171 \cdot 5 + 2 \cdot 6 = 17. 둘째 행과 xx: 3⋅5+4⋅6=393 \cdot 5 + 4 \cdot 6 = 39. 그러므로 Ax=(1739)Ax = \begin{pmatrix} 17 \\ 39 \end{pmatrix} 입니다.
  2. A=(20−1134), x=(121)A = \begin{pmatrix} 2 & 0 & -1 \\ 1 & 3 & 4 \end{pmatrix}, \ x = \begin{pmatrix} 1 \\ 2 \\ 1 \end{pmatrix} 일 때 AxAx 와 그 크기를 구하세요.
    (2×3)×(3×1)=(2×1)(2 \times 3) \times (3 \times 1) = (2 \times 1). 첫 성분 2⋅1+0⋅2+(−1)⋅1=12 \cdot 1 + 0 \cdot 2 + (-1) \cdot 1 = 1, 둘째 성분 1⋅1+3⋅2+4⋅1=111 \cdot 1 + 3 \cdot 2 + 4 \cdot 1 = 11. 답은 (111)\begin{pmatrix} 1 \\ 11 \end{pmatrix} 입니다.
  3. A=(1−12103), x=(4−2)A = \begin{pmatrix} 1 & -1 \\ 2 & 1 \\ 0 & 3 \end{pmatrix}, \ x = \begin{pmatrix} 4 \\ -2 \end{pmatrix} 일 때 AxAx 를 구하세요.
    (3×2)×(2×1)=(3×1)(3 \times 2) \times (2 \times 1) = (3 \times 1). 세 성분은 각각 1⋅4+(−1)⋅(−2)=61\cdot 4 + (-1) \cdot (-2) = 6, 2⋅4+1⋅(−2)=62 \cdot 4 + 1 \cdot (-2) = 6, 0⋅4+3⋅(−2)=−60 \cdot 4 + 3 \cdot (-2) = -6. 답은 (66−6)\begin{pmatrix} 6 \\ 6 \\ -6 \end{pmatrix} 입니다.

연습 2 — AB 계산과 크기

  1. A=(1203), B=(412−1)A = \begin{pmatrix} 1 & 2 \\ 0 & 3 \end{pmatrix}, \ B = \begin{pmatrix} 4 & 1 \\ 2 & -1 \end{pmatrix} 일 때 ABAB 를 구하세요.
    AB=(1⋅4+2⋅21⋅1+2⋅(−1)0⋅4+3⋅20⋅1+3⋅(−1))=(8−16−3)AB = \begin{pmatrix} 1\cdot 4 + 2\cdot 2 & 1\cdot 1 + 2\cdot (-1) \\ 0\cdot 4 + 3\cdot 2 & 0\cdot 1 + 3\cdot (-1) \end{pmatrix} = \begin{pmatrix} 8 & -1 \\ 6 & -3 \end{pmatrix} 입니다.
  2. A=(102−131), B=(210−132)A = \begin{pmatrix} 1 & 0 & 2 \\ -1 & 3 & 1 \end{pmatrix}, \ B = \begin{pmatrix} 2 & 1 \\ 0 & -1 \\ 3 & 2 \end{pmatrix} 일 때 ABAB 와 그 크기를 구하세요.
    (2×3)×(3×2)=(2×2)(2 \times 3) \times (3 \times 2) = (2 \times 2). 성분을 하나씩 채우면 (1⋅2+0⋅0+2⋅31⋅1+0⋅(−1)+2⋅2−1⋅2+3⋅0+1⋅3−1⋅1+3⋅(−1)+1⋅2)=(851−2)\begin{pmatrix} 1\cdot 2 + 0\cdot 0 + 2\cdot 3 & 1\cdot 1 + 0\cdot (-1) + 2\cdot 2 \\ -1\cdot 2 + 3\cdot 0 + 1\cdot 3 & -1\cdot 1 + 3\cdot (-1) + 1\cdot 2 \end{pmatrix} = \begin{pmatrix} 8 & 5 \\ 1 & -2 \end{pmatrix} 입니다.
  3. AA 가 2×32 \times 3 이고 BB 가 4×24 \times 2 입니다. ABAB 와 BABA 중 만들어지는 것은 무엇이고 크기는 얼마인가요.
    ABAB 는 가운데 두 수가 33 과 44 라 안 맞으므로 만들어지지 않습니다. BABA 는 (4×2)(2×3)=(4×3)(4 \times 2)(2 \times 3) = (4 \times 3) 이므로 만들어집니다. 행렬 곱은 순서를 지켜야 하고, 아예 한 쪽만 정의되는 경우도 흔합니다.
  4. AA 가 3×53 \times 5, BB 가 5×25 \times 2, CC 가 2×42 \times 4 입니다. ABCABC 가 만들어지는지와 그 크기를 답하세요.
    크기를 이어 적으면 (3×5)(5×2)(2×4)(3 \times 5)(5 \times 2)(2 \times 4) 입니다. 이웃한 안쪽이 55 와 55, 22 와 22 로 두 번 다 맞으므로 만들어지고, 결과는 맨 바깥을 읽어 3×43 \times 4 입니다.

연습 3 — AB ≠ BA와 이어 붙이기

  1. A=(0100), B=(0010)A = \begin{pmatrix} 0 & 1 \\ 0 & 0 \end{pmatrix}, \ B = \begin{pmatrix} 0 & 0 \\ 1 & 0 \end{pmatrix} 에 대해 ABAB 와 BABA 를 각각 구해 두 결과가 다름을 보이세요.
    AB=(0⋅0+1⋅10⋅0+1⋅00⋅0+0⋅10⋅0+0⋅0)=(1000)AB = \begin{pmatrix} 0\cdot 0 + 1\cdot 1 & 0\cdot 0 + 1\cdot 0 \\ 0\cdot 0 + 0\cdot 1 & 0\cdot 0 + 0\cdot 0 \end{pmatrix} = \begin{pmatrix} 1 & 0 \\ 0 & 0 \end{pmatrix} 이고 BA=(0⋅0+0⋅00⋅1+0⋅01⋅0+0⋅01⋅1+0⋅0)=(0001)BA = \begin{pmatrix} 0\cdot 0 + 0\cdot 0 & 0\cdot 1 + 0\cdot 0 \\ 1\cdot 0 + 0\cdot 0 & 1\cdot 1 + 0\cdot 0 \end{pmatrix} = \begin{pmatrix} 0 & 0 \\ 0 & 1 \end{pmatrix} 입니다. 완전히 다른 자리에 1이 놓입니다.
  2. A=(1101), B=(2001), x=(14)A = \begin{pmatrix} 1 & 1 \\ 0 & 1 \end{pmatrix}, \ B = \begin{pmatrix} 2 & 0 \\ 0 & 1 \end{pmatrix}, \ x = \begin{pmatrix} 1 \\ 4 \end{pmatrix} 에 대해 A(Bx)A(Bx) 와 (AB)x(AB)x 를 각각 계산해 같은지 보세요.
    Bx=(24)Bx = \begin{pmatrix} 2 \\ 4 \end{pmatrix} 이므로 A(Bx)=(2+44)=(64)A(Bx) = \begin{pmatrix} 2+4 \\ 4 \end{pmatrix} = \begin{pmatrix} 6 \\ 4 \end{pmatrix} 입니다. 한편 AB=(2101)AB = \begin{pmatrix} 2 & 1 \\ 0 & 1 \end{pmatrix} 이므로 (AB)x=(2+44)=(64)(AB)x = \begin{pmatrix} 2+4 \\ 4 \end{pmatrix} = \begin{pmatrix} 6 \\ 4 \end{pmatrix} 로 같습니다. 두 걸음을 한 걸음으로 적은 것이 곱입니다.

연습 4 — 단위행렬·전치·대각합

  1. A=(2−10315)A = \begin{pmatrix} 2 & -1 & 0 \\ 3 & 1 & 5 \end{pmatrix} 에 대해 AI3AI_3 와 I2AI_2A 를 각각 적고, 어느 쪽 단위행렬을 곱해야 크기가 맞는지 설명하세요.
    둘 다 AA 그대로입니다. AA 가 2×32 \times 3 이므로 오른쪽에서 곱하려면 행이 3인 I3I_3 이어야 하고, 왼쪽에서 곱하려면 열이 2인 I2I_2 여야 합니다. 크기가 다른 두 단위행렬이 같은 일을 합니다.
  2. B=(140−235)B = \begin{pmatrix} 1 & 4 \\ 0 & -2 \\ 3 & 5 \end{pmatrix} 의 전치를 적고, 다시 전치하면 무엇이 되는지 답하세요.
    BT=(1034−25)B^\mathsf{T} = \begin{pmatrix} 1 & 0 & 3 \\ 4 & -2 & 5 \end{pmatrix} 이고 크기는 2×32 \times 3 입니다. 한 번 더 전치하면 첨자가 두 번 뒤집혀 제자리로 오므로 BB 자신입니다.
  3. C=(47−1026539)C = \begin{pmatrix} 4 & 7 & -1 \\ 0 & 2 & 6 \\ 5 & 3 & 9 \end{pmatrix} 의 대각합을 구하고, CTC^\mathsf{T} 의 대각합과 비교하세요.
    tr⁡C=4+2+9=15\operatorname{tr} C = 4+2+9 = 15 입니다. 전치해도 대각선 자리의 수는 그대로이므로 tr⁡CT=15\operatorname{tr} C^\mathsf{T} = 15 로 같습니다.
  4. A=(1234), B=(5678)A = \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix}, \ B = \begin{pmatrix} 5 & 6 \\ 7 & 8 \end{pmatrix} 에 대해 (AB)T(AB)^\mathsf{T} 와 BTATB^\mathsf{T} A^\mathsf{T} 를 각각 계산해 같은 결과가 나옴을 확인하세요.
    본문에서 AB=(19224350)AB = \begin{pmatrix} 19 & 22 \\ 43 & 50 \end{pmatrix} 이었으므로 (AB)T=(19432250)(AB)^\mathsf{T} = \begin{pmatrix} 19 & 43 \\ 22 & 50 \end{pmatrix} 입니다. BT=(5768)B^\mathsf{T} = \begin{pmatrix} 5 & 7 \\ 6 & 8 \end{pmatrix}, AT=(1324)A^\mathsf{T} = \begin{pmatrix} 1 & 3 \\ 2 & 4 \end{pmatrix} 이므로 BTAT=(5⋅1+7⋅25⋅3+7⋅46⋅1+8⋅26⋅3+8⋅4)=(19432250)B^\mathsf{T} A^\mathsf{T} = \begin{pmatrix} 5\cdot 1 + 7\cdot 2 & 5\cdot 3 + 7\cdot 4 \\ 6\cdot 1 + 8\cdot 2 & 6\cdot 3 + 8\cdot 4 \end{pmatrix} = \begin{pmatrix} 19 & 43 \\ 22 & 50 \end{pmatrix} 로 같습니다.
  5. A=(102−103), B=(21014−2)A = \begin{pmatrix} 1 & 0 \\ 2 & -1 \\ 0 & 3 \end{pmatrix}, \ B = \begin{pmatrix} 2 & 1 & 0 \\ 1 & 4 & -2 \end{pmatrix} 에 대해 (AB)T(AB)^\mathsf{T} 와 BTATB^\mathsf{T}A^\mathsf{T} 가 같음을 정사각이 아닌 크기에서 확인하세요.
    AB=(2103−22312−6)AB = \begin{pmatrix} 2 & 1 & 0 \\ 3 & -2 & 2 \\ 3 & 12 & -6 \end{pmatrix} 이므로 (AB)T=(2331−21202−6)(AB)^\mathsf{T} = \begin{pmatrix} 2 & 3 & 3 \\ 1 & -2 & 12 \\ 0 & 2 & -6 \end{pmatrix} 입니다. 한편 BTB^\mathsf{T} 는 3×23 \times 2, ATA^\mathsf{T} 는 2×32 \times 3 이라 곱이 3×33 \times 3 이고, 계산하면 (2331−21202−6)\begin{pmatrix} 2 & 3 & 3 \\ 1 & -2 & 12 \\ 0 & 2 & -6 \end{pmatrix} 로 같습니다. ATBTA^\mathsf{T}B^\mathsf{T} 는 (2×3)(3×2)(2 \times 3)(3 \times 2) 라 크기는 맞지만 2×22 \times 2 가 나와 애초에 다른 것입니다.
  6. A=(2310−14)A = \begin{pmatrix} 2 & 3 & 1 \\ 0 & -1 & 4 \end{pmatrix} 의 전치를 적고 대각합 tr⁡(AAT)\operatorname{tr}(A A^\mathsf{T}) 를 구하세요.
    AT=(203−114)A^\mathsf{T} = \begin{pmatrix} 2 & 0 \\ 3 & -1 \\ 1 & 4 \end{pmatrix} 이고 크기는 3×23 \times 2 입니다. AAT=(22+32+122⋅0+3⋅(−1)+1⋅40⋅2+(−1)⋅3+4⋅102+(−1)2+42)=(141117)AA^\mathsf{T} = \begin{pmatrix} 2^2 + 3^2 + 1^2 & 2\cdot 0 + 3\cdot(-1) + 1\cdot 4 \\ 0\cdot 2 + (-1)\cdot 3 + 4\cdot 1 & 0^2 + (-1)^2 + 4^2 \end{pmatrix} = \begin{pmatrix} 14 & 1 \\ 1 & 17 \end{pmatrix} 이므로 tr⁡(AAT)=14+17=31\operatorname{tr}(AA^\mathsf{T}) = 14 + 17 = 31 입니다.

정리

  • 행렬은 수를 가로세로로 늘어놓은 것입니다. 표, 흑백 이미지, 방정식의 계수처럼 자리 자체가 뜻을 갖는 것을 이렇게 적습니다.
  • 크기는 m×nm \times n (행 × 열), 성분은 aija_{ij} (행 먼저, 열 나중)로 씁니다. 빠진 항은 0으로 적어 자리를 지킵니다.
  • 덧셈과 스칼라배는 성분끼리 하는 것이라 크기만 맞으면 그대로입니다.
  • AxAx 는 AA 의 각 행과 xx 를 성분끼리 곱해 더한 것입니다. AA 의 열 수와 xx 의 행 수가 같아야 곱해집니다. 방정식 여럿을 Ax=bAx = b 한 줄로 적을 수 있고, AA 를 계수행렬이라 부릅니다.
  • ABAB 는 같은 규칙의 확장이라 (i,j)(i, j) 성분이 AA 의 ii 행과 BB 의 jj 열의 곱의 합입니다. 크기 규칙은 (m×n‾)(n‾×p)=(m×p)(m \times \underline{n})(\underline{n} \times p) = (m \times p) 이고, 안쪽 두 수를 가리면 남는 바깥 두 수가 결과의 크기입니다.
  • 곱이 이 모양인 것은 두 걸음을 한 걸음으로 적으려는 것이기 때문입니다 — A(Bx)=(AB)xA(Bx) = (AB)x.
  • AB≠BAAB \ne BA — 이어서 하는 두 걸음은 순서가 뜻의 일부이고, 아예 한 쪽만 정의되기도 합니다.
  • 영행렬 OO 는 덧셈의 0, 단위행렬 II 는 곱의 1입니다. 대각선 밖이 0인 정사각 행렬을 대각행렬이라 부릅니다.
  • 전치 ATA^\mathsf{T} 는 행과 열을 바꿉니다. 두 번 하면 제자리이고, (AB)T=BTAT(AB)^\mathsf{T} = B^\mathsf{T} A^\mathsf{T} 로 순서가 뒤집힙니다 — 크기를 세어 보면 그래야만 곱이 만들어집니다.
  • 대각선 성분의 합을 대각합 tr⁡A\operatorname{tr} A 라 부르고, 전치해도 값이 같습니다.

다음 글은 이 표기로 미지수 셋 이상짜리 연립방정식을 요령이 아니라 절차로 푸는 법을 세웁니다.


읽어주셔서 감사합니다. 😊

LATEST

수학의 최신 글

수학2026.09.07

양자화 오차: 격자 사상, 오차 분산, 이상치 채널

실수를 2^b개 격자에 사상할 때 오차의 분산이 왜 Δ²/12인지 유도하고, 그것이 비트당 6.02dB라는 SNR로 번역되는 과정을 실측과 대조했습니다. 이상치 하나가 나머지 값의 유효 비트를 어떻게 먹는지, 그리고 int4에서 성능이 무너지는 지점을 오차 예산으로 미리 계산하는 법까지.

중급18 MIN
수학2026.09.07

수치적으로 안정한 계산 패턴 모음

최댓값 빼기, 로그 공간, log1p·expm1, 분산의 두 공식, 정규화의 ε, fp32 누산, 역행렬 대신 solve — 프레임워크가 몰래 해 주는 일곱 가지를 하나씩 꺼내 각각 어떤 고장을 막는지 직접 재 봤습니다. 수식을 그대로 옮긴 코드가 왜 라이브러리보다 나쁜지에 대한 목록입니다.

중급22 MIN
수학2026.09.07

부동소수점은 어디서 새는가: 반올림, 상쇄, 더하는 순서

0.1 + 0.2가 0.3이 아닌 이유부터 시작해 머신 엡실론을 유도하고, 같은 16비트인데 fp16과 bf16이 서로 다른 지점에서 터지는 이유, 비슷한 수를 뺄 때 유효자리가 사라지는 파괴적 상쇄, 그리고 1,000만 개를 순서만 바꿔 더했을 때 오차가 백만 배 갈리는 실험까지 직접 재 봤습니다.

중급23 MIN