Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Lecture 13. 중간 정리 — 행렬 하나를 완전히 해부하기

Review — 랭크에서 갈라져 나온 것들

열두 편이 지났다. 소거를 배웠고, 분해를 배웠고, 부분공간을 정의했고, 네 부분공간의 지도까지 그렸다. 그런데 실제로 행렬 하나를 받았을 때 무엇부터 봐야 하는가.

이번 강의에서는 새 개념을 들여오지 않는다. 대신 지금까지 흩어져 있던 결과들이 사실은 소거에서 나온 하나의 수 rr 에서 갈라져 나온 것임을 보인다. 그 과정에서 AAA=CRA = CR 이라는 두 조각으로 쪼개는 방법을 얻는데, 이 등식 하나에 L7부터 L11까지의 이야기가 전부 들어 있다. 마지막으로 앞으로 계속 꺼내 쓸 절차 하나를 만들어 둔다.


1. 피벗 하나가 동시에 세는 세 가지

소거를 하면 피벗이 rr 개 나온다. 이 하나의 수가 왜 그렇게 많은 것을 결정하는가. 피벗이 서로 다른 세 가지를 동시에 세기 때문이다. 하나씩 확인하자.

(1) 독립인 행의 개수

소거는 행공간을 바꾸지 않는다. 행에 하는 연산이 전부 행들의 결합이고, 되돌릴 수도 있기 때문이다(L10의 (5)). 그러니 AA 의 행공간을 보려면 RR 의 행을 보면 된다.

RR 의 0이 아닌 행은 rr 개이고, 이들은 독립이다. 그 결합이 영벡터라고 하자.

c1r1+c2r2++crrr=0c_1 \vv{r}_1 + c_2 \vv{r}_2 + \cdots + c_r \vv{r}_r = \vv{0}

ii 번째 행의 피벗이 있는 열을 보자. RREF에서는 그 열이 피벗 자리에만 1이고 나머지는 전부 0이다. 따라서 (1)의 그 자리는 ci1c_i \cdot 1 뿐이고, 이것이 0이므로 ci=0c_i = 0 이다. 모든 ii 에 대해 같으므로 독립이다.

dimC(AT)=r\dim \Col(A^{\mathsf{T}}) = r

(2) 독립인 열의 개수

소거는 열 사이의 종속 관계를 바꾸지 않는다. Ax=0A\vv{x} = \vv{0}Rx=0R\vv{x} = \vv{0} 의 해가 정확히 같기 때문이다(L10의 (13)). 열의 결합이 0이 되는 계수의 모임이 곧 영공간이므로, AA 의 열들이 만드는 종속 관계와 RR 의 열들이 만드는 종속 관계가 같다.

RR 에서 피벗열은 서로 다른 자리에 1을 하나씩 가진 표준기저벡터이므로 독립이고, 자유열은 L9의 (15)에서 보았듯 피벗열의 결합이다. 그러므로 독립인 열은 rr 개이다.

dimC(A)=r\dim \Col(A) = r

여기서 주의할 것이 하나 있다. 차원이 rr 이라는 것만 옮겨 오고, 기저는 AA 에서 가져와야 한다. 소거는 열공간 자체를 옮겨 버리기 때문이다(L10의 (12)).

(3) 정해지는 변수의 개수

rr 개의 열에 피벗이 있으므로 피벗 변수가 rr 개, 자유 변수가 nrn - r 개이다. 자유 변수 하나에 1을 주고 나머지에 0을 주면 특수해가 하나씩 나오고, 그것들이 영공간의 기저였다(L7의 (31)).

dimN(A)=nr\dim \Nul(A) = n - r

같은 논리를 ATA^{\mathsf{T}} 에 적용하면 된다. ATA^{\mathsf{T}}n×mn \times m 이고 랭크는 L10의 Theorem 1에 의해 역시 rr 이므로

dimN(AT)=mr\dim \Nul(A^{\mathsf{T}}) = m - r

이다. 네 개가 모두 rr 에서 나왔다.

rC(AT),nrN(A),rC(A),mrN(AT)\underbrace{r}_{\Col(A^{\mathsf{T}})}, \qquad \underbrace{n - r}_{\Nul(A)}, \qquad \underbrace{r}_{\Col(A)}, \qquad \underbrace{m - r}_{\Nul(A^{\mathsf{T}})}
행렬을 받으면 크기를 보고, 소거해서 r 을 세고, 그 r 로 나머지를 전부 읽는다.

Figure 1:행렬을 받으면 크기를 보고, 소거해서 rr 을 세고, 그 rr 로 나머지를 전부 읽는다.


2. 세 가지 세기를 하나의 등식으로 : A=CRA = CR

1절의 세 가지는 따로따로 증명되었다. 그런데 이것들을 등식 하나로 묶을 수 있다. 행렬 두 개를 만들자.

이름이 겹치니 주의하자. 여기서의 RR 은 기약 사다리꼴 전체가 아니라 0인 행을 잘라 낸 r×nr \times n 조각이다.

증명. AAjj 번째 열이 CC 곱하기 RRjj 번째 열과 같음을 보이면 된다. 행렬 곱을 열별로 보는 L3의 방식((6))에서 CRCRjj 열은 C(R의 j)C(R \text{의 } j \text{열}) 이기 때문이다. 두 경우로 나눈다.

jjii 번째 피벗열인 경우. 기약 사다리꼴에서 ii 번째 피벗열은 ii 행에만 1이고 나머지는 0이므로, 0인 행을 잘라 낸 RR 에서도 그 열은 ei\vv{e}_i 이다. 그러면

Cei=(C의 i)=(A의 j)C\,\vv{e}_i = (C \text{의 } i \text{열}) = (A \text{의 } j \text{열})

이다. CCii 열이 곧 AAjj 열이기 때문이다.

jj자유열인 경우. 소거는 열 사이의 종속 관계를 바꾸지 않으므로, AAjj 열이 피벗열들의 어떤 결합인지는 기약 사다리꼴의 jj 열을 그대로 읽으면 된다 (L9의 (15)). 그 jj 열의 성분을 α1,,αr\alpha_1, \dots, \alpha_r 이라 하면

(A의 j)=α1(C의 1)++αr(C의 r)=C[α1αr](A \text{의 } j \text{열}) = \alpha_1 (C\text{의 }1\text{열}) + \cdots + \alpha_r (C\text{의 }r\text{열}) = C \begin{bmatrix} \alpha_1 \\ \vdots \\ \alpha_r \end{bmatrix}

인데, 오른쪽의 열벡터가 바로 RRjj 열이다. 두 경우 모두 성립하므로 A=CRA = CR 이다. \square

L7의 예로 확인해 보자. 피벗열은 1열과 3열이었다.

[1222246836810]A=[122638]C[12020012]R\underbrace{\begin{bmatrix} 1 & 2 & 2 & 2 \\ 2 & 4 & 6 & 8 \\ 3 & 6 & 8 & 10 \end{bmatrix}}_{A} = \underbrace{\begin{bmatrix} 1 & 2 \\ 2 & 6 \\ 3 & 8 \end{bmatrix}}_{C} \underbrace{\begin{bmatrix} 1 & 2 & 0 & -2 \\ 0 & 0 & 1 & 2 \end{bmatrix}}_{R}
C 는 A 에서 그대로 떼어 온 피벗열이고, R 은 기약 사다리꼴에서 0인 행을 잘라 낸 것이다.

Figure 2:CCAA 에서 그대로 떼어 온 피벗열이고, RR 은 기약 사다리꼴에서 0인 행을 잘라 낸 것이다.

이 등식 하나가 말해 주는 것

첫째, 열공간의 기저가 CC 의 열이다. 열별 곱셈에 의해 AA 의 모든 열이 CC 의 열의 결합이므로 C(A)C(C)\Col(A) \subseteq \Col(C) 이고, CC 의 열은 원래 AA 의 열이었으므로 C(C)C(A)\Col(C) \subseteq \Col(A) 이다. 두 공간이 같다.

둘째, 행공간의 기저가 RR 의 행이다. 같은 등식을 L3의 행별 곱셈으로 읽으면 ((8)) AA 의 각 행은 RR 의 행들을 CC 의 그 행 성분으로 결합한 것이다. 그러므로 AA 의 행공간은 RR 의 행공간에 들어 있고, RR 의 행은 소거로 얻어진 것이라 반대 포함도 성립한다.

셋째, 두 랭크가 같다는 것이 등식의 모양에서 바로 나온다. CC 의 열이 rr 개이고 RR 의 행이 rr 개이다. 같은 rr 이다. L10의 Theorem 1에서는 소거를 따라가며 증명했는데, A=CRA = CR 로 쓰면 한 줄로 끝난다.

넷째, AA 가 랭크 1 행렬 rr 개의 합이다. 곱셈을 L3의 바깥곱으로 보면 ((12))

A=CR=c1r1T+c2r2T++crrrTA = CR = \vv{c}_1 \vv{r}_1^{\mathsf{T}} + \vv{c}_2 \vv{r}_2^{\mathsf{T}} + \cdots + \vv{c}_r \vv{r}_r^{\mathsf{T}}

이다. 여기서 ck\vv{c}_kCC 의 열, rkT\vv{r}_k^{\mathsf{T}}RR 의 행이다. L11에서 랭크 1 행렬이 벽돌이라고 한 것이 이것이다. 벽돌은 정확히 rr 개 필요하다.


3. 네 가지 경우

L7에서 피벗열을 앞으로 모으면 기약 사다리꼴이 [IF00]\begin{bmatrix} I & F \\ 0 & 0\end{bmatrix} 이 된다고 했다((25)). 여기서 II 는 언제나 있고 FF 와 0인 행은 있을 수도 없을 수도 있다. rrmm, nn 과 같은지에 따라 네 가지가 나온다.

r = n 이면 F 가 사라지고, r = m 이면 0인 행이 사라진다.

Figure 3:r=nr = n 이면 FF 가 사라지고, r=mr = m 이면 0인 행이 사라진다.

해의 개수는 L8의 두 결과에서 바로 읽힌다. 해집합은 xp+N(A)\vv{x}_p + \Nul(A) 이므로 (L8의 (14)), 개수는 두 가지 질문으로 정해진다. 존재하는가, 그리고 영공간이 얼마나 큰가.

r=m    C(A)=Rm(모든 b 에 해가 존재)r = m \;\Longleftrightarrow\; \Col(A) = \R^m \qquad\text{(모든 }\vv{b}\text{ 에 해가 존재)}
r=n    N(A)={0}(해가 있다면 유일)r = n \;\Longleftrightarrow\; \Nul(A) = \{\vv{0}\} \qquad\text{(해가 있다면 유일)}

두 조건을 곱하면 네 칸이 채워진다.

경우기약 사다리꼴N(A)\Nul(A)모든 b\vv{b} 에 해가 있는가해의 개수
r=m=nr = m = nII{0}\{\vv{0}\}있다언제나 1개
r=n<mr = n < m[I0]\begin{bmatrix} I \\ 0\end{bmatrix}{0}\{\vv{0}\}아니다0개 또는 1개
r=m<nr = m < n[IF]\begin{bmatrix} I & F\end{bmatrix}크다있다언제나 무한히
r<m, r<nr < m,\ r < n[IF00]\begin{bmatrix} I & F \\ 0 & 0\end{bmatrix}크다아니다0개 또는 무한히

첫 줄이 가역행렬이다. r=m=nr = m = n 이면 FF 도 없고 0인 행도 없으므로 열을 옮길 것도 없이 기약 사다리꼴이 II 이다. 이것이 L3에서 가우스-조르당으로 A1A^{-1} 을 구할 때 쓴 조건이었다((28)). A=CRA = CR 로 보면 C=AC = A, R=IR = I 인 셈이라 쪼갤 것이 없다.

같은 \vv{b}, 같은 특수해인데 왼쪽은 해가 직선 전체이고 오른쪽은 점 하나이다.
차이는 \Nul(A) 의 크기뿐이다.

Figure 4:같은 b\vv{b}, 같은 특수해인데 왼쪽은 해가 직선 전체이고 오른쪽은 점 하나이다. 차이는 N(A)\Nul(A) 의 크기뿐이다.


4. 헷갈리기 쉬운 다섯 쌍

열공간 vs 행공간

차원이 둘 다 rr 이라는 것(L10의 Theorem 1)이 오히려 혼동을 만든다. 차원이 같을 뿐 사는 공간이 다르다. C(A)\Col(A)Rm\R^m 의 부분공간이고 C(AT)\Col(A^{\mathsf{T}})Rn\R^n 의 부분공간이다. mnm \neq n 이면 두 공간의 원소는 길이부터 다르므로 비교할 수도 없다.

영공간 vs 좌영공간

N(A)\Nul(A)Ax=0A\vv{x} = \vv{0} 의 해이고 N(AT)\Nul(A^{\mathsf{T}})ATy=0A^{\mathsf{T}}\vv{y} = \vv{0} 의 해이다. 전자는 입력 쪽 Rn\R^n, 후자는 출력 쪽 Rm\R^m 에 산다. 좌영공간을 전치 없이 쓰면 뜻이 분명해진다.

ATy=0yTA=0A^{\mathsf{T}}\vv{y} = \vv{0} \quad\Longleftrightarrow\quad \vv{y}^{\mathsf{T}}A = \vv{0}

오른쪽은 "AA 의 행들을 yiy_i 로 결합했더니 0이 되었다"는 뜻이다. 소거에서 0인 행이 생기는 과정이 곧 이 결합을 찾아내는 과정이었다.

독립 vs 생성

독립은 너무 많지 않다는 조건이고 생성은 너무 적지 않다는 조건이다. 기저는 두 조건을 동시에 만족하는 자리이다. Rn\R^n 안의 벡터 kk 개에 대해

k>n    반드시 종속,k<n    반드시 생성하지 못함k > n \;\Rightarrow\; \text{반드시 종속}, \qquad k < n \;\Rightarrow\; \text{반드시 생성하지 못함}

이므로 기저가 되려면 k=nk = n 이어야 한다. 이것이 차원이 유일한 이유였다(L9의 Theorem 1).

UU vs RR

UU 는 피벗 아래만 0으로 만든 사다리꼴, RR 은 피벗 위까지 0으로 만들고 피벗을 1로 맞춘 기약 사다리꼴이다. 랭크를 세거나 LULU 분해를 할 때는 UU 로 충분하다. L7의 (28)에 나온 영공간 행렬처럼 특수해를 바로 읽어 내거나 2절처럼 RR 을 떼어 쓰려면 기약 사다리꼴이 필요하다.

부분공간 vs 해집합

N(A)\Nul(A) 는 부분공간이지만 Ax=bA\vv{x} = \vv{b} 의 해집합은 b0\vv{b} \neq \vv{0} 이면 부분공간이 아니다. 원점이 들어 있지 않고, 덧셈에 대해 닫혀 있지도 않다.

Ax1=b,Ax2=bA(x1+x2)=2bbA\vv{x}_1 = \vv{b},\quad A\vv{x}_2 = \vv{b} \quad\Longrightarrow\quad A(\vv{x}_1 + \vv{x}_2) = 2\vv{b} \neq \vv{b}

Figure 4의 왼쪽 그림에서 두 직선이 나란한 것이 이 사정을 보여 준다. 해집합은 부분공간을 평행이동한 것이지 부분공간 자체가 아니다.


5. 자주 하는 실수

실수왜 틀렸는가되돌아갈 곳
열공간의 기저를 RR 에서 가져오기소거는 열공간을 옮긴다. 피벗의 위치만 옮겨 오고 열 자체는 AA 에서L10
원점을 지나지 않는 집합을 부분공간이라 부르기부분공간은 c=0c = 0 인 결합도 담아야 하므로 원점을 반드시 지난다L5
(AB)1=A1B1(AB)^{-1} = A^{-1}B^{-1}순서가 뒤집힌다. (AB)1=B1A1(AB)^{-1} = B^{-1}A^{-1}L3
특수해가 유일하다고 생각하기자유 변수에 무엇을 넣느냐에 따라 달라진다. 0을 넣는 것은 관례일 뿐이고 해집합은 같다L8
rank(A+B)=rankA+rankB\rank(A + B) = \rank A + \rank B부등식이지 등식이 아니다. rank(A+B)rankA+rankB\rank(A+B) \le \rank A + \rank BL11

마지막 것을 확인해 보자. A=IA = I, B=IB = -I 이면 rankA=rankB=n\rank A = \rank B = n 인데 A+B=0A + B = 0 이라 rank(A+B)=0\rank(A + B) = 0 이다.


6. 해부 절차

지금까지의 것을 순서로 적으면 다음과 같다.

  1. 크기를 적는다. AAm×nm \times n.

  2. 소거해서 RR 을 얻고 피벗을 센다. 그 개수가 rr.

  3. 네 부분공간의 차원을 적는다. r, nr, r, mrr,\ n-r,\ r,\ m-r.

  4. 기저를 구한다. 앞의 둘은 A=CRA = CR 의 두 조각이 그대로 답이다.

    • 행공간 — RR 의 행

    • 열공간 — CC 의 열, 곧 AA 피벗열

    • 영공간 — L7의 (28)에 나온 영공간 행렬 NN 의 열

    • 좌영공간 — ATA^{\mathsf{T}} 를 같은 방법으로 처리

  5. b\vv{b} 가 주어졌으면 [Ab][A \mid \vv{b}] 를 소거해 bC(A)\vv{b} \in \Col(A) 인지 보고, 맞으면 특수해를 구해 xp+N(A)\vv{x}_p + \Nul(A) 로 답한다.

3번까지만 해도 해의 개수는 판정된다. 4번과 5번은 그 답을 구체적으로 쓰는 단계이다. 실습 파트에서 이 절차를 행렬해부(A, b) 함수 하나로 만들어 두고, 이후 강의에서 계속 쓴다.


7. 여기까지 심은 것과 회수한 것

어디서 심었나무엇을어디서 회수했나
L1행렬 곱을 열의 결합으로 보기L6 열공간의 정의
L2피벗의 개수L7 랭크
L3곱을 바깥곱의 합으로 보기L13 A=CRA = CR 을 벽돌로 쪼개기
L3가우스-조르당이 끝나는 조건L13 r=m=nr = m = n
L4소거를 행렬 EE 로 적기L10 좌영공간의 기저
L5RTRR^{\mathsf{T}}R 은 언제나 대칭L12 ATCAA^{\mathsf{T}}CA
L7특수해와 영공간 행렬L8 완전해, L13 해부 절차
L9차원은 유일하다L10 네 부분공간의 차원
L10행랭크 == 열랭크L13 A=CRA = CR 로 한 줄 증명
L10두 쌍이 직각으로 마주 본다아직 회수하지 않았다
L11랭크 1 행렬이 벽돌이다L13 벽돌이 정확히 rr

하나가 남아 있다. L10에서 네 부분공간의 지도를 그리면서 행공간과 영공간을, 열공간과 좌영공간을 직각으로 놓아 두고는 왜 직각인지 설명하지 않았다. 그때는 직각이라는 말 자체를 쓸 수단이 없었다.


마치며...

이번 강의에서 다룬 것을 정리하면 다음과 같다.

대상내용
랭크 rr독립인 행, 독립인 열, 피벗 변수를 동시에 센다
네 차원r, nr, r, mrr,\ n-r,\ r,\ m-r — 전부 rr 에서 나온다
A=CRA = CRCC 는 열공간의 기저, RR 은 행공간의 기저
행랭크 == 열랭크가 등식의 모양에서 바로 나온다
랭크 1 벽돌 rr 개의 합으로 쪼개진다
해의 개수0, 1, 무한 셋뿐이다
네 경우rrmm, nn 의 대소로 갈린다
해부 절차크기 → 랭크 → 네 차원 → 네 기저 → 완전해

여기서 한 번 돌아보자. 우리는 지금까지 길이도 각도도 한 번도 쓰지 않았다. 두 벡터가 얼마나 긴지, 사이각이 몇 도인지 물은 적이 없다. 오직 덧셈과 스칼라배, 그리고 거기서 나온 개념들만으로 여기까지 왔다. 부분공간을 정의했고, 차원을 셌고, 해의 개수를 판정했고, 네 부분공간의 지도를 그렸다.

다음 강의에서 내적을 도입한다. 그러면 두 벡터가 직각인지 물을 수 있게 되고, L10에서 미뤄 둔 것 — 두 쌍의 부분공간이 왜 직각으로 마주 보는지 — 을 마침내 확인할 수 있다. 지금까지 그린 모든 그림에 직각이 나타난다.


이번 강의의 내용을 파이썬으로 확인해 보려면 L13 실습 노트북으로 넘어가면 된다. A=CRA = CR 을 직접 만들어 보고, 그것을 써서 행렬해부(A, b) 함수를 조립하며, 무작위 행렬로 네 경우가 모두 나오는지 시험해 볼 수 있다.