Linearism › 선형대수 › LA.5

5장. 변환의 합성으로서의 행렬곱

선형대수 · 1부. 그림으로 보는 선형대수

기본 · 약 40분 · 연습문제 12 · 그림 3

요약

선형변환의 합성과 행렬곱의 정의, 크기 규칙, 행렬곱의 네 가지 계산법, 연산 법칙과 교환법칙의 실패, 거듭제곱과 회전의 덧셈정리, 전치와 대칭행렬

행렬곱은 고등학교에서 '행과 열을 곱해 더한다'는 규칙으로 배웁니다. 그런데 왜 하필 그런 규칙일까요? 이 장의 답은 '변환을 차례로 하는 것(합성)이 곧 행렬곱'이라는 것입니다. 이 관점에서 보면 행렬곱이 왜 교환법칙을 만족하지 않는지, 결합법칙은 왜 만족하는지가 그림으로 보입니다. 신경망의 층을 쌓는 것도 행렬곱을 이어 붙이는 것입니다.

5.1 두 변환을 이어서 하기

질문. 평면을 먼저 층밀림 S=[1101]S = \begin{bmatrix} 1 & 1 \\ 0 & 1 \end{bmatrix}으로 움직이고, 그 결과를 다시 90∘90^\circ 회전 R=[0−110]R = \begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix}으로 돌렸습니다. 두 번 움직인 결과도 선형변환일까요? 그렇다면 그 행렬은 무엇일까요?

0.6절에서 함수의 합성 g∘fg \circ f를 정의했습니다. “ff를 먼저, gg를 나중에”였습니다. 선형변환도 함수이므로 합성할 수 있습니다. 이 장의 결론은 다음과 같습니다.

선형변환의 합성은 다시 선형변환이고, 그 행렬이 행렬곱입니다. ABAB는 “BB를 먼저, AA를 나중에” 한 변환입니다.

행렬곱의 정의는 처음 보면 이상하게 생겼습니다. “왜 같은 자리끼리 곱하지 않고 행과 열을 곱하는가”라는 질문의 답이 이 장의 내용입니다.

5.2 합성의 행렬

정리 5.1 (선형변환의 합성은 선형입니다). T:Rp→RnT : \mathbb{R}^p \to \mathbb{R}^n, U:Rn→RmU : \mathbb{R}^n \to \mathbb{R}^m이 선형변환이면 U∘T:Rp→RmU \circ T : \mathbb{R}^p \to \mathbb{R}^m도 선형변환입니다.

증명. (U∘T)(cv+dw)=U(cT(v)+dT(w))=c U(T(v))+d U(T(w))(U \circ T)(c\mathbf{v} + d\mathbf{w}) = U\big(cT(\mathbf{v}) + dT(\mathbf{w})\big) = c\,U(T(\mathbf{v})) + d\,U(T(\mathbf{w})). 첫 등호는 TT의 선형성, 둘째는 UU의 선형성입니다. ■

합성이 선형이므로 표준행렬이 있습니다. 4장의 방법대로 구하면 됩니다. 각 ej\mathbf{e}_j가 어디로 가는지 봅시다. BB를 TT의 행렬(n×pn \times p), AA를 UU의 행렬(m×nm \times n)이라 하면

ej→ B Bej=bj (B의 제j열)→ A Abj.\mathbf{e}_j \xrightarrow{\ B\ } B\mathbf{e}_j = \mathbf{b}_j\ (B\text{의 제}j\text{열}) \xrightarrow{\ A\ } A\mathbf{b}_j.

따라서 합성의 행렬의 제jj열은 AbjA\mathbf{b}_j입니다.

정의 5.2 (행렬곱). A∈Rm×nA \in \mathbb{R}^{m \times n}, B=[b1⋯bp]∈Rn×pB = \begin{bmatrix} \mathbf{b}_1 & \cdots & \mathbf{b}_p \end{bmatrix} \in \mathbb{R}^{n \times p}에 대하여

AB=[Ab1Ab2⋯Abp]∈Rm×p.AB = \begin{bmatrix} A\mathbf{b}_1 & A\mathbf{b}_2 & \cdots & A\mathbf{b}_p \end{bmatrix} \in \mathbb{R}^{m \times p}.

정리 5.3 (행렬곱은 합성입니다). 모든 x∈Rp\mathbf{x} \in \mathbb{R}^p에 대하여 (AB)x=A(Bx)(AB)\mathbf{x} = A(B\mathbf{x}).

증명. 위의 논의에 의해 ABAB는 선형변환 x↦A(Bx)\mathbf{x} \mapsto A(B\mathbf{x})의 표준행렬입니다. 정리 4.10에 의해 두 변환은 모든 x\mathbf{x}에서 같습니다. ■

세 공간 R^p, R^n, R^m을 타원으로 그리고, R^p에서 R^n으로 가는 화살표 B(n × p), R^n에서 R^m으로 가는 화살표 A(m × n), R^p에서 R^m으로 바로 가는 곡선 화살표 AB(m × p)를 그렸습니다.

그림 5.1. ABAB는 BB를 먼저, AA를 나중에 적용합니다. 가운데 공간 Rn\mathbb{R}^n에서 두 행렬이 이어집니다.

5.2.1 크기 규칙

그림 5.1에서 BB의 출력이 AA의 입력이 되어야 하므로, AA의 열 수 = BB의 행 수여야 곱이 정의됩니다.

A⏟m×n B⏟n×p=AB⏟m×p.\underbrace{A}_{m \times n}\ \underbrace{B}_{n \times p} = \underbrace{AB}_{m \times p}.

안쪽 두 숫자가 같아야 하고, 결과의 크기는 바깥쪽 두 숫자입니다. 이 규칙은 AxA\mathbf{x}에도 그대로 맞습니다. x\mathbf{x}를 n×1n \times 1 행렬로 보면 AxA\mathbf{x}는 m×1m \times 1입니다.

5.3 행렬곱을 계산하는 네 가지 방법

예제 5.4. A=[1234]A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix}, B=[5678]B = \begin{bmatrix} 5 & 6 \\ 7 & 8 \end{bmatrix}이면

Ab1=5[13]+7[24]=[1943],Ab2=6[13]+8[24]=[2250],AB=[19224350].A\mathbf{b}_1 = 5\begin{bmatrix} 1 \\ 3 \end{bmatrix} + 7\begin{bmatrix} 2 \\ 4 \end{bmatrix} = \begin{bmatrix} 19 \\ 43 \end{bmatrix}, \quad A\mathbf{b}_2 = 6\begin{bmatrix} 1 \\ 3 \end{bmatrix} + 8\begin{bmatrix} 2 \\ 4 \end{bmatrix} = \begin{bmatrix} 22 \\ 50 \end{bmatrix}, \quad AB = \begin{bmatrix} 19 & 22 \\ 43 & 50 \end{bmatrix}.

정의는 열 단위였습니다. 같은 곱을 다른 단위로 볼 수 있습니다.

정리 5.5 (행렬곱의 네 가지 계산법). A∈Rm×nA \in \mathbb{R}^{m \times n}의 행을 r1,…,rm\mathbf{r}_1, \ldots, \mathbf{r}_m, 열을 a1,…,an\mathbf{a}_1, \ldots, \mathbf{a}_n이라 하고, B∈Rn×pB \in \mathbb{R}^{n \times p}의 행을 s1,…,sn\mathbf{s}_1, \ldots, \mathbf{s}_n, 열을 b1,…,bp\mathbf{b}_1, \ldots, \mathbf{b}_p라 합시다.

  1. (성분) (AB)ij=ri⋅bj=∑k=1naikbkj(AB)_{ij} = \mathbf{r}_i \cdot \mathbf{b}_j = \sum_{k=1}^n a_{ik}b_{kj}.
  2. (열) ABAB의 제jj열 =Abj= A\mathbf{b}_j = AA의 열들의 일차결합.
  3. (행) ABAB의 제ii행 =riB= \mathbf{r}_i B = BB의 행들의 일차결합 ∑kaiksk\sum_k a_{ik}\mathbf{s}_k.
  4. (열×행의 합) AB=∑k=1nakskAB = \sum_{k=1}^n \mathbf{a}_k\mathbf{s}_k. 여기서 aksk\mathbf{a}_k\mathbf{s}_k는 m×1m \times 1 행렬과 1×p1 \times p 행렬의 곱인 m×pm \times p 행렬입니다.

증명. (2)는 정의 그 자체입니다. (1): ABAB의 (i,j)(i, j) 성분은 AbjA\mathbf{b}_j의 제ii 성분이고, 정리 4.11에 의해 ri⋅bj=∑kaikbkj\mathbf{r}_i \cdot \mathbf{b}_j = \sum_k a_{ik}b_{kj}입니다. (3): ABAB의 제ii행의 제jj 성분은 (1)에 의해 ∑kaikbkj\sum_k a_{ik}b_{kj}이고, 이것은 벡터 ∑kaiksk\sum_k a_{ik}\mathbf{s}_k의 제jj 성분입니다. (4): aksk\mathbf{a}_k\mathbf{s}_k의 (i,j)(i, j) 성분은 (1)을 적용하면 aikbkja_{ik}b_{kj} 하나이므로, kk에 대해 더하면 (AB)ij(AB)_{ij}입니다. ■

직관. 손으로 계산할 때는 (1)을 씁니다. “AA의 ii행을 왼손 손가락으로 가로로 훑고, BB의 jj열을 오른손 손가락으로 세로로 훑으면서 곱해 더합니다.” 생각할 때는 (2)와 (3)을 씁니다. (4)는 18장의 SVD에서 행렬을 “간단한 조각들의 합”으로 쪼갤 때 씁니다.

예제 5.6. [102−131][312110]\begin{bmatrix} 1 & 0 & 2 \\ -1 & 3 & 1 \end{bmatrix}\begin{bmatrix} 3 & 1 \\ 2 & 1 \\ 1 & 0 \end{bmatrix}은 (2×3)(3×2)(2 \times 3)(3 \times 2)이므로 2×22 \times 2입니다.

[1⋅3+0⋅2+2⋅11⋅1+0⋅1+2⋅0−1⋅3+3⋅2+1⋅1−1⋅1+3⋅1+1⋅0]=[5142].\begin{bmatrix} 1 \cdot 3 + 0 \cdot 2 + 2 \cdot 1 & 1 \cdot 1 + 0 \cdot 1 + 2 \cdot 0 \\ -1 \cdot 3 + 3 \cdot 2 + 1 \cdot 1 & -1 \cdot 1 + 3 \cdot 1 + 1 \cdot 0 \end{bmatrix} = \begin{bmatrix} 5 & 1 \\ 4 & 2 \end{bmatrix}.

같은 두 행렬을 반대 순서로 곱하면 (3×2)(2×3)=3×3(3 \times 2)(2 \times 3) = 3 \times 3 행렬이 됩니다. 크기부터 다릅니다.

예제 5.7 (열×행). [12][34]=[3468]\begin{bmatrix} 1 \\ 2 \end{bmatrix}\begin{bmatrix} 3 & 4 \end{bmatrix} = \begin{bmatrix} 3 & 4 \\ 6 & 8 \end{bmatrix}. 열벡터 곱하기 행벡터는 모든 행이 서로의 배수인 행렬이 됩니다. 이런 행렬을 랭크 1 행렬이라 하며 11장에서 다시 만납니다.

▶ 문제 5.1–5.4

5.4 행렬의 연산 법칙

5.4.1 덧셈과 스칼라배

같은 크기의 행렬은 성분끼리 더하고, 스칼라는 모든 성분에 곱합니다.

(A+B)ij=aij+bij,(cA)ij=c aij.(A + B)_{ij} = a_{ij} + b_{ij}, \qquad (cA)_{ij} = c\,a_{ij}.

변환으로 보면 (A+B)x=Ax+Bx(A + B)\mathbf{x} = A\mathbf{x} + B\mathbf{x}, (cA)x=c(Ax)(cA)\mathbf{x} = c(A\mathbf{x})입니다. 행렬의 덧셈과 스칼라배는 2.6절의 8가지 법칙을 모두 만족합니다. 성분별로 보면 Rmn\mathbb{R}^{mn}의 벡터와 똑같기 때문입니다. 이 사실은 20장에서 “행렬 전체도 벡터공간입니다”로 다시 등장합니다.

5.4.2 곱셈의 법칙

정리 5.8 (행렬곱의 성질). 크기가 맞는 행렬에 대하여

  1. (AB)C=A(BC)(AB)C = A(BC) (결합법칙)
  2. A(B+C)=AB+ACA(B + C) = AB + AC, (A+B)C=AC+BC(A + B)C = AC + BC (분배법칙)
  3. c(AB)=(cA)B=A(cB)c(AB) = (cA)B = A(cB)
  4. ImA=A=AInI_m A = A = AI_n (A∈Rm×nA \in \mathbb{R}^{m \times n})

증명. (1)을 보입니다. 성분으로 증명할 수도 있지만, 합성으로 보면 한 줄입니다. 모든 x\mathbf{x}에 대해 정리 5.3을 반복하면

((AB)C)x=(AB)(Cx)=A(B(Cx))=A((BC)x)=(A(BC))x.\big((AB)C\big)\mathbf{x} = (AB)(C\mathbf{x}) = A\big(B(C\mathbf{x})\big) = A\big((BC)\mathbf{x}\big) = \big(A(BC)\big)\mathbf{x}.

두 행렬이 모든 x\mathbf{x}에 대해 같은 결과를 주므로(특히 x=ej\mathbf{x} = \mathbf{e}_j를 넣으면 같은 열을 가지므로) 같은 행렬입니다.

(2)의 첫 식: AB+ACAB + AC의 제jj열은 Abj+Acj=A(bj+cj)A\mathbf{b}_j + A\mathbf{c}_j = A(\mathbf{b}_j + \mathbf{c}_j)이고 이것은 A(B+C)A(B + C)의 제jj열입니다. 나머지는 문제 5.6. ■

결합법칙을 성분으로 증명하려면 ∑k∑laikbklclj\sum_k\sum_l a_{ik}b_{kl}c_{lj}의 합 순서를 바꿔야 합니다. 함수의 합성이 원래 결합법칙을 만족합니다(h∘(g∘f)=(h∘g)∘fh \circ (g \circ f) = (h \circ g) \circ f, 둘 다 “f,g,hf, g, h 순서로 적용”)는 사실을 쓰면 계산이 필요 없습니다. 행렬을 변환으로 보는 관점이 계산을 줄여 주는 첫 예입니다.

5.4.3 교환법칙의 실패

세 그림. (a) 원래 단위정사각형과 글자 F. (b) RS: 층밀림 후 회전한 결과로, 왼쪽 위로 기운 평행사변형. (c) SR: 회전 후 층밀림한 결과로, 왼쪽으로 누운 다른 평행사변형.

그림 5.2. S=[1101]S = \begin{bmatrix} 1 & 1 \\ 0 & 1 \end{bmatrix}, R=[0−110]R = \begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix}. 순서를 바꾸면 결과가 다릅니다.

예제 5.9. 5.1절의 질문에 답합시다. 층밀림 SS 먼저, 회전 RR 나중이므로 행렬은 RSRS입니다.

RS=[0−110][1101]=[0−111],SR=[1101][0−110]=[1−110].RS = \begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix}\begin{bmatrix} 1 & 1 \\ 0 & 1 \end{bmatrix} = \begin{bmatrix} 0 & -1 \\ 1 & 1 \end{bmatrix}, \qquad SR = \begin{bmatrix} 1 & 1 \\ 0 & 1 \end{bmatrix}\begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix} = \begin{bmatrix} 1 & -1 \\ 1 & 0 \end{bmatrix}.

RS≠SRRS \ne SR입니다. 그림 5.2에서 두 결과가 다른 모양인 것을 확인할 수 있습니다.

A와 B를 고르면 B 먼저 A 나중(AB)과 A 먼저 B 나중(BA)의 결과가 나란히 그려집니다

이 위젯은 JavaScript가 필요합니다

일상에서도 순서가 중요한 동작은 많습니다. 양말을 신고 신발을 신는 것과 신발을 신고 양말을 신는 것은 다릅니다. 행렬곱이 교환법칙을 만족하지 않는 것은 계산상의 불편이 아니라, 변환의 순서가 실제로 결과를 바꾼다는 사실을 정직하게 반영한 것입니다.

교환법칙 외에도 실수의 곱셈에서 당연하던 것들이 깨집니다.

  • A≠OA \ne O, B≠OB \ne O인데 AB=OAB = O일 수 있습니다. 예: [1000][0001]=O\begin{bmatrix} 1 & 0 \\ 0 & 0 \end{bmatrix}\begin{bmatrix} 0 & 0 \\ 0 & 1 \end{bmatrix} = O. (yy축 사영 후에 xx축 사영을 하면 모든 것이 원점으로 갑니다.)
  • AB=ACAB = AC이고 A≠OA \ne O여도 B=CB = C라고 할 수 없습니다. 위 예에서 C=OC = O로 두면 됩니다.

두 번째 현상은 AA가 정보를 잃는(납작하게 만드는) 변환일 때 생깁니다. 정보를 잃지 않는 AA, 즉 역행렬이 있는 AA라면 약분할 수 있습니다. 이것이 9장의 주제입니다.

▶ 문제 5.5–5.8

5.5 거듭제곱과 회전

정사각행렬 AA에 대해 A2=AAA^2 = AA, A3=AAAA^3 = AAA, …\ldots로 쓰고 A0=IA^0 = I로 약속합니다. 결합법칙 덕분에 괄호를 어떻게 치든 같습니다.

예제 5.10 (덧셈정리). α\alpha만큼 돌린 다음 β\beta만큼 돌리면 α+β\alpha + \beta만큼 돈 것입니다. 따라서 RβRα=Rα+βR_\beta R_\alpha = R_{\alpha + \beta}입니다. 좌변을 계산하면

[cos⁡β−sin⁡βsin⁡βcos⁡β][cos⁡α−sin⁡αsin⁡αcos⁡α]=[cos⁡βcos⁡α−sin⁡βsin⁡α⋯sin⁡βcos⁡α+cos⁡βsin⁡α⋯]\begin{bmatrix} \cos\beta & -\sin\beta \\ \sin\beta & \cos\beta \end{bmatrix}\begin{bmatrix} \cos\alpha & -\sin\alpha \\ \sin\alpha & \cos\alpha \end{bmatrix} = \begin{bmatrix} \cos\beta\cos\alpha - \sin\beta\sin\alpha & \cdots \\ \sin\beta\cos\alpha + \cos\beta\sin\alpha & \cdots \end{bmatrix}

이고 우변의 제1열은 (cos⁡(α+β),sin⁡(α+β))(\cos(\alpha + \beta), \sin(\alpha + \beta))입니다. 비교하면

cos⁡(α+β)=cos⁡αcos⁡β−sin⁡αsin⁡β,sin⁡(α+β)=sin⁡αcos⁡β+cos⁡αsin⁡β.\cos(\alpha + \beta) = \cos\alpha\cos\beta - \sin\alpha\sin\beta, \qquad \sin(\alpha + \beta) = \sin\alpha\cos\beta + \cos\alpha\sin\beta.

삼각함수의 덧셈정리가 “회전을 두 번 하기”의 행렬곱에서 나왔습니다. 외울 필요가 없는 공식이 되었습니다.

Rθn=RnθR_\theta^n = R_{n\theta}이므로 RθnR_\theta^n의 제1열에서 (cos⁡nθ,sin⁡nθ)(\cos n\theta, \sin n\theta)를 얻습니다. 7장과 16장에서는 일반적인 AA에 대해 AnA^n을 빠르게 구하는 방법을 배웁니다.

▶ 문제 5.9

5.6 전치

정의 5.11 (전치행렬). A∈Rm×nA \in \mathbb{R}^{m \times n}의 행과 열을 맞바꾼 n×mn \times m 행렬을 AA의 전치행렬(transpose)이라 하고 ATA^T로 씁니다. 즉 (AT)ij=aji(A^T)_{ij} = a_{ji}입니다.

예제 5.12. [123456]T=[142536]\begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \end{bmatrix}^T = \begin{bmatrix} 1 & 4 \\ 2 & 5 \\ 3 & 6 \end{bmatrix}. 열벡터 x\mathbf{x}의 전치 xT\mathbf{x}^T는 행벡터입니다.

전치를 쓰면 내적을 행렬곱으로 쓸 수 있습니다.

x⋅y=x1y1+⋯+xnyn=xTy(1×n 곱하기 n×1).\mathbf{x} \cdot \mathbf{y} = x_1y_1 + \cdots + x_ny_n = \mathbf{x}^T\mathbf{y} \quad (1 \times n \text{ 곱하기 } n \times 1).

앞으로 내적을 자주 xTy\mathbf{x}^T\mathbf{y}로 씁니다.

정리 5.13 (전치의 성질).

  1. (AT)T=A(A^T)^T = A, (A+B)T=AT+BT(A + B)^T = A^T + B^T, (cA)T=cAT(cA)^T = cA^T
  2. (AB)T=BTAT(AB)^T = B^TA^T
  3. (Ax)⋅y=x⋅(ATy)(A\mathbf{x}) \cdot \mathbf{y} = \mathbf{x} \cdot (A^T\mathbf{y})

증명. (2): ((AB)T)ij=(AB)ji=∑kajkbki\big((AB)^T\big)_{ij} = (AB)_{ji} = \sum_k a_{jk}b_{ki}. 한편 (BTAT)ij=∑k(BT)ik(AT)kj=∑kbkiajk(B^TA^T)_{ij} = \sum_k (B^T)_{ik}(A^T)_{kj} = \sum_k b_{ki}a_{jk}. 같습니다.

(3): (Ax)⋅y=(Ax)Ty=xTATy=x⋅(ATy)(A\mathbf{x}) \cdot \mathbf{y} = (A\mathbf{x})^T\mathbf{y} = \mathbf{x}^TA^T\mathbf{y} = \mathbf{x} \cdot (A^T\mathbf{y}). 둘째 등호에서 (2)를 썼습니다. ■

(2)에서 순서가 뒤집히는 것은 양말과 신발로 기억할 수 있습니다. 9장에서 역행렬도 (AB)−1=B−1A−1(AB)^{-1} = B^{-1}A^{-1}로 순서가 뒤집히는데, 이유가 같습니다. (3)은 “AA를 왼쪽 벡터에 거는 것과 ATA^T를 오른쪽 벡터에 거는 것은 내적에서 같습니다”는 뜻이고, 13장의 최소제곱과 25장의 수반연산자의 출발점입니다.

정의 5.14 (대칭행렬). AT=AA^T = A인 정사각행렬을 대칭행렬(symmetric matrix)이라 합니다. 즉 모든 i,ji, j에 대해 aij=ajia_{ij} = a_{ji}입니다.

예제 5.15. 임의의 A∈Rm×nA \in \mathbb{R}^{m \times n}에 대해 ATAA^TA는 n×nn \times n 대칭행렬입니다. (ATA)T=AT(AT)T=ATA(A^TA)^T = A^T(A^T)^T = A^TA이기 때문입니다. 이 행렬은 13장(최소제곱), 17장(양정치), 18장(SVD)의 주인공입니다.

▶ 문제 5.10–5.12

쓰이는 곳. 깊은 신경망은 층마다 행렬을 곱하는 것이고, 로봇 팔의 관절이나 그래픽의 여러 변환을 잇는 것도 행렬곱입니다. 계산량을 어림할 때 m×nm \times n과 n×pn \times p 행렬의 곱은 곱셈이 약 mnpmnp번이라는 것을 기억해 두면 좋습니다.

이 장의 요약

  • ABAB는 “BB 먼저, AA 나중”인 합성 변환의 행렬입니다. ABAB의 제jj열은 AbjA\mathbf{b}_j입니다.
  • (m×n)(n×p)=m×p(m \times n)(n \times p) = m \times p. 안쪽 크기가 같아야 곱할 수 있습니다.
  • (AB)ij=∑kaikbkj(AB)_{ij} = \sum_k a_{ik}b_{kj} (AA의 ii행 · BB의 jj열). 열 단위, 행 단위, 열×행의 합으로도 볼 수 있습니다.
  • 결합법칙과 분배법칙은 성립하지만 AB≠BAAB \ne BA일 수 있습니다. AB=OAB = O인데 A,B≠OA, B \ne O일 수도 있습니다.
  • RβRα=Rα+βR_\beta R_\alpha = R_{\alpha + \beta}에서 삼각함수의 덧셈정리가 나옵니다.
  • (AB)T=BTAT(AB)^T = B^TA^T, x⋅y=xTy\mathbf{x} \cdot \mathbf{y} = \mathbf{x}^T\mathbf{y}, (Ax)⋅y=x⋅(ATy)(A\mathbf{x}) \cdot \mathbf{y} = \mathbf{x} \cdot (A^T\mathbf{y}).

문제

5.1 [계산] · 확인 문제

AA는 2×32 \times 3, BB는 3×43 \times 4, CC는 4×24 \times 2, DD는 3×33 \times 3 행렬입니다. 다음 곱이 정의되는지 판정하고, 정의되면 크기를 씁니다. 표에는 크기를 2x4처럼 적고, 정의되지 않으면 X를 적습니다.

곱 크기
ABAB [?]
BABA [?]
BCBC [?]
CACA [?]
ABCABC [?]
DBDB [?]
BDBD [?]
ADAD [?]
DADA [?]
정답
2x4
X
3x2
4x3
2x2
3x4
X
2x3
X
풀이

ABAB: 2×42 \times 4. BABA: 정의 안 됨(4≠24 \ne 2). BCBC: 3×23 \times 2. CACA: 4×34 \times 3. ABCABC: 2×22 \times 2. DBDB: 3×43 \times 4. BDBD: 정의 안 됨(4≠34 \ne 3). ADAD: 2×32 \times 3. DADA: 정의 안 됨(3≠23 \ne 2).

5.2 [계산] · 확인 문제

계산합니다.

(a) [2−103][142−2](b) [123][456](c) [456][123](d) [10−1210][12013−1]\text{(a)}\ \begin{bmatrix} 2 & -1 \\ 0 & 3 \end{bmatrix}\begin{bmatrix} 1 & 4 \\ 2 & -2 \end{bmatrix} \qquad \text{(b)}\ \begin{bmatrix} 1 & 2 & 3 \end{bmatrix}\begin{bmatrix} 4 \\ 5 \\ 6 \end{bmatrix} \qquad \text{(c)}\ \begin{bmatrix} 4 \\ 5 \\ 6 \end{bmatrix}\begin{bmatrix} 1 & 2 & 3 \end{bmatrix} \qquad \text{(d)}\ \begin{bmatrix} 1 & 0 & -1 \\ 2 & 1 & 0 \end{bmatrix}\begin{bmatrix} 1 & 2 \\ 0 & 1 \\ 3 & -1 \end{bmatrix}

표에는 결과의 성분을 행 순서대로 적습니다. (b)는 1×11 \times 1 행렬의 성분 하나입니다.

1행 1열 1행 2열 1행 3열 2행 1열 2행 2열 2행 3열 3행 1열 3행 2열 3행 3열
(a) [?] [?] - [?] [?] - - - -
(b) [?] - - - - - - - -
(c) [?] [?] [?] [?] [?] [?] [?] [?] [?]
(d) [?] [?] - [?] [?] - - - -
정답
0
10
6
-6
32
4
8
12
5
10
15
6
12
18
-2
3
2
5
풀이

(a) [2−28+20+60−6]=[0106−6]\begin{bmatrix} 2 - 2 & 8 + 2 \\ 0 + 6 & 0 - 6 \end{bmatrix} = \begin{bmatrix} 0 & 10 \\ 6 & -6 \end{bmatrix} (b) [32]\begin{bmatrix} 32 \end{bmatrix} (1×11 \times 1, 내적과 같습니다)

(c) [48125101561218]\begin{bmatrix} 4 & 8 & 12 \\ 5 & 10 & 15 \\ 6 & 12 & 18 \end{bmatrix} (랭크 1 행렬) (d) [1−32+124+1]=[−2325]\begin{bmatrix} 1 - 3 & 2 + 1 \\ 2 & 4 + 1 \end{bmatrix} = \begin{bmatrix} -2 & 3 \\ 2 & 5 \end{bmatrix}

5.3 [계산] · 확인 문제

A=[1234]A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix}, P=[0110]P = \begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix}이라 합시다. (a) APAP를 열 단위(정리 5.5의 (2))로 계산합니다. (b) PAPA를 행 단위(정리 5.5의 (3))로 계산합니다. (c) PP를 오른쪽에 곱하면 AA에 무슨 일이 생길까요? 왼쪽에 곱하면? (d) APAP를 열×행의 합(정리 5.5의 (4))으로도 계산해 확인합니다. 표에는 (a), (b)를 적습니다.

1행 1열 1행 2열 2행 1열 2행 2열
APAP [?] [?] [?] [?]
PAPA [?] [?] [?] [?]
정답
2
1
4
3
3
4
1
2
풀이

(a) Ap1=Ae2=(2,4)A\mathbf{p}_1 = A\mathbf{e}_2 = (2, 4), Ap2=Ae1=(1,3)A\mathbf{p}_2 = A\mathbf{e}_1 = (1, 3)이므로 AP=[2143]AP = \begin{bmatrix} 2 & 1 \\ 4 & 3 \end{bmatrix}.

(b) PAPA의 1행 =0⋅(1,2)+1⋅(3,4)=(3,4)= 0 \cdot (1, 2) + 1 \cdot (3, 4) = (3, 4), 2행 =(1,2)= (1, 2). PA=[3412]PA = \begin{bmatrix} 3 & 4 \\ 1 & 2 \end{bmatrix}.

(c) 오른쪽에 곱하면 열이 서로 바뀌고, 왼쪽에 곱하면 행이 서로 바뀝니다.

(d) [13][01]+[24][10]=[0103]+[2040]=[2143]\begin{bmatrix} 1 \\ 3 \end{bmatrix}\begin{bmatrix} 0 & 1 \end{bmatrix} + \begin{bmatrix} 2 \\ 4 \end{bmatrix}\begin{bmatrix} 1 & 0 \end{bmatrix} = \begin{bmatrix} 0 & 1 \\ 0 & 3 \end{bmatrix} + \begin{bmatrix} 2 & 0 \\ 4 & 0 \end{bmatrix} = \begin{bmatrix} 2 & 1 \\ 4 & 3 \end{bmatrix}.

5.4 [증명]

(a) BB의 제jj열이 영벡터이면 ABAB의 제jj열도 영벡터임을 보입니다. (b) AA의 제ii행이 영벡터이면 ABAB의 제ii행도 영벡터임을 보입니다.

풀이

(a) ABAB의 제jj열은 Abj=A0=0A\mathbf{b}_j = A\mathbf{0} = \mathbf{0}.

(b) ABAB의 제ii행은 ∑kaiksk=∑k0⋅sk=0\sum_k a_{ik}\mathbf{s}_k = \sum_k 0 \cdot \mathbf{s}_k = \mathbf{0}.

5.5 [계산] · 확인 문제

F=[100−1]F = \begin{bmatrix} 1 & 0 \\ 0 & -1 \end{bmatrix} (xx축 반사), R=[0−110]R = \begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix} (90∘90^\circ 회전)이라 합시다. FRFR과 RFRF를 계산하고, 각각이 어떤 단일한 변환인지 말로 설명합니다. 단위정사각형을 그려 확인합니다. 위 위젯에서 “x축 반사 F”와 “90° 회전 R”을 골라 볼 수 있습니다.

1행 1열 1행 2열 2행 1열 2행 2열
FRFR [?] [?] [?] [?]
RFRF [?] [?] [?] [?]
정답
0
-1
-1
0
0
1
1
0
풀이

FR=[0−1−10]FR = \begin{bmatrix} 0 & -1 \\ -1 & 0 \end{bmatrix}: e1↦−e2\mathbf{e}_1 \mapsto -\mathbf{e}_2, e2↦−e1\mathbf{e}_2 \mapsto -\mathbf{e}_1. 직선 y=−xy = -x에 대한 반사.

RF=[0110]RF = \begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix}: e1↔e2\mathbf{e}_1 \leftrightarrow \mathbf{e}_2. 직선 y=xy = x에 대한 반사.

두 반사는 다르므로 FR≠RFFR \ne RF.

5.6 [증명]

크기가 맞는 행렬에 대하여 (A+B)C=AC+BC(A + B)C = AC + BC와 c(AB)=(cA)Bc(AB) = (cA)B를 증명합니다.

풀이

(A+B)C(A + B)C의 제jj열은 (A+B)cj=Acj+Bcj(A + B)\mathbf{c}_j = A\mathbf{c}_j + B\mathbf{c}_j (5.4.1절의 (A+B)x=Ax+Bx(A + B)\mathbf{x} = A\mathbf{x} + B\mathbf{x})이고 이것은 AC+BCAC + BC의 제jj열입니다.

c(AB)c(AB)의 (i,j)(i, j) 성분은 c∑kaikbkj=∑k(caik)bkjc\sum_k a_{ik}b_{kj} = \sum_k (ca_{ik})b_{kj}로 (cA)B(cA)B의 (i,j)(i, j) 성분입니다.

5.7 [계산]

A≠OA \ne O인데 A2=OA^2 = O인 2×22 \times 2 행렬을 하나 찾고, 이 변환이 e1,e2\mathbf{e}_1, \mathbf{e}_2에 무엇을 하는지로 A2=OA^2 = O인 이유를 설명합니다.

풀이

A=[0100]A = \begin{bmatrix} 0 & 1 \\ 0 & 0 \end{bmatrix}. e1↦0\mathbf{e}_1 \mapsto \mathbf{0}, e2↦e1\mathbf{e}_2 \mapsto \mathbf{e}_1. 두 번 적용하면 e2↦e1↦0\mathbf{e}_2 \mapsto \mathbf{e}_1 \mapsto \mathbf{0}, e1↦0↦0\mathbf{e}_1 \mapsto \mathbf{0} \mapsto \mathbf{0}이므로 모든 벡터가 0\mathbf{0}으로 갑니다. (27장의 멱영 연산자의 가장 간단한 예입니다.)

5.8 [도전]

모든 2×22 \times 2 행렬 BB에 대해 AB=BAAB = BA인 2×22 \times 2 행렬 AA를 모두 구합니다.

힌트. B=[1000]B = \begin{bmatrix} 1 & 0 \\ 0 & 0 \end{bmatrix}과 B=[0100]B = \begin{bmatrix} 0 & 1 \\ 0 & 0 \end{bmatrix}을 넣어 봅니다.

풀이

A=[abcd]A = \begin{bmatrix} a & b \\ c & d \end{bmatrix}. E=[1000]E = \begin{bmatrix} 1 & 0 \\ 0 & 0 \end{bmatrix}이면 AE=[a0c0]AE = \begin{bmatrix} a & 0 \\ c & 0 \end{bmatrix}, EA=[ab00]EA = \begin{bmatrix} a & b \\ 0 & 0 \end{bmatrix}이므로 b=c=0b = c = 0. E′=[0100]E' = \begin{bmatrix} 0 & 1 \\ 0 & 0 \end{bmatrix}이면 AE′=[0a00]AE' = \begin{bmatrix} 0 & a \\ 0 & 0 \end{bmatrix}, E′A=[0d00]E'A = \begin{bmatrix} 0 & d \\ 0 & 0 \end{bmatrix} (c=0c = 0을 이미 썼습니다)이므로 a=da = d. 따라서 A=aIA = aI. 역으로 aIaI는 모든 BB와 교환합니다. 답: A=cIA = cI (c∈Rc \in \mathbb{R}).

5.9 [계산]

(a) A=[1101]A = \begin{bmatrix} 1 & 1 \\ 0 & 1 \end{bmatrix}에 대해 A2A^2, A3A^3을 계산하고, AnA^n을 추측한 다음 귀납법으로 증명합니다. (b) R60∘6=IR_{60^\circ}^6 = I인 이유를 그림으로 설명합니다. 계산은 하지 않아도 됩니다.

풀이

(a) A2=[1201]A^2 = \begin{bmatrix} 1 & 2 \\ 0 & 1 \end{bmatrix}, A3=[1301]A^3 = \begin{bmatrix} 1 & 3 \\ 0 & 1 \end{bmatrix}. 추측: An=[1n01]A^n = \begin{bmatrix} 1 & n \\ 0 & 1 \end{bmatrix}. 귀납:

Ak+1=AkA=[1k01][1101]=[1k+101].A^{k+1} = A^kA = \begin{bmatrix} 1 & k \\ 0 & 1 \end{bmatrix}\begin{bmatrix} 1 & 1 \\ 0 & 1 \end{bmatrix} = \begin{bmatrix} 1 & k + 1 \\ 0 & 1 \end{bmatrix}.

(b) 60∘60^\circ 회전을 6번 하면 360∘360^\circ, 즉 제자리입니다. R60∘6=R360∘=IR_{60^\circ}^6 = R_{360^\circ} = I.

5.10 [계산] · 확인 문제

A=[1234]A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix}, B=[015−1]B = \begin{bmatrix} 0 & 1 \\ 5 & -1 \end{bmatrix}에 대해 (AB)T(AB)^T, BTATB^TA^T, ATBTA^TB^T를 계산하고 어느 둘이 같은지 확인합니다.

1행 1열 1행 2열 2행 1열 2행 2열
(AB)T(AB)^T [?] [?] [?] [?]
BTATB^TA^T [?] [?] [?] [?]
ATBTA^TB^T [?] [?] [?] [?]
정답
10
20
-1
-1
10
20
-1
-1
3
2
4
6
풀이

AB=[10−120−1]AB = \begin{bmatrix} 10 & -1 \\ 20 & -1 \end{bmatrix}, (AB)T=[1020−1−1](AB)^T = \begin{bmatrix} 10 & 20 \\ -1 & -1 \end{bmatrix}. BTAT=[051−1][1324]=[1020−1−1]B^TA^T = \begin{bmatrix} 0 & 5 \\ 1 & -1 \end{bmatrix}\begin{bmatrix} 1 & 3 \\ 2 & 4 \end{bmatrix} = \begin{bmatrix} 10 & 20 \\ -1 & -1 \end{bmatrix}. ATBT=[1324][051−1]=[3246]A^TB^T = \begin{bmatrix} 1 & 3 \\ 2 & 4 \end{bmatrix}\begin{bmatrix} 0 & 5 \\ 1 & -1 \end{bmatrix} = \begin{bmatrix} 3 & 2 \\ 4 & 6 \end{bmatrix}. 같은 것은 (AB)T=BTAT(AB)^T = B^TA^T.

5.11 [증명]

A=[a1⋯an]A = \begin{bmatrix} \mathbf{a}_1 & \cdots & \mathbf{a}_n \end{bmatrix}이면 (ATA)ij=ai⋅aj(A^TA)_{ij} = \mathbf{a}_i \cdot \mathbf{a}_j임을 보입니다. 이로부터 ATA=IA^TA = I인 것은 AA의 열들이 모두 길이 1이고 서로 수직인 것과 동치임을 설명합니다.

풀이

ATA^T의 제ii행은 aiT\mathbf{a}_i^T이므로 (ATA)ij=aiTaj=ai⋅aj(A^TA)_{ij} = \mathbf{a}_i^T\mathbf{a}_j = \mathbf{a}_i \cdot \mathbf{a}_j. ATA=IA^TA = I는 대각성분 ai⋅ai=∥ai∥2=1\mathbf{a}_i \cdot \mathbf{a}_i = \lVert \mathbf{a}_i \rVert^2 = 1, 비대각성분 ai⋅aj=0\mathbf{a}_i \cdot \mathbf{a}_j = 0 (i≠ji \ne j)과 같습니다. 이런 열을 정규직교라 하며 14장의 주제입니다.

5.12 [도전]

AA, BB가 같은 크기의 대칭행렬일 때, ABAB가 대칭인 것과 AB=BAAB = BA인 것이 동치임을 증명합니다.

풀이

(AB)T=BTAT=BA(AB)^T = B^TA^T = BA. 따라서 ABAB가 대칭   ⟺  \iff (AB)T=AB(AB)^T = AB   ⟺  \iff BA=ABBA = AB.