Lecture 10. 네 개의 기본 부분공간 The Four Fundamental Subspaces — 서술
이번 강의는 지금까지 배운 것이 그림 한 장으로 모이는 자리이다.
L6에서 행렬 하나에 부분공간이 둘 딸려 온다고 하였다. 열공간과 영공간이다. 그런데 A A A 가 있으면
A T A^{\mathsf{T}} A T 도 있다. 그렇다면 A T A^{\mathsf{T}} A T 의 열공간과 영공간도 있을 것이다.
부분공간은 둘이 아니라 넷 이다. 그리고 이 넷은 흩어져 있지 않고 둘씩 짝을 지어
정의역과 공역을 각각 완전히 나눈다.
계속 쓸 예제는 L7과 L8에서 다룬 행렬이다.
A = [ 1 2 2 2 2 4 6 8 3 6 8 10 ] , m = 3 , n = 4 , r = 2 A = \begin{bmatrix} 1 & 2 & 2 & 2 \\ 2 & 4 & 6 & 8 \\ 3 & 6 & 8 & 10 \end{bmatrix},
\qquad m = 3, \quad n = 4, \quad r = 2 A = ⎣ ⎡ 1 2 3 2 4 6 2 6 8 2 8 10 ⎦ ⎤ , m = 3 , n = 4 , r = 2 1. 네 개의 부분공간 ¶ 이미 둘은 안다. 나머지 둘은 A T A^{\mathsf{T}} A T 에 같은 정의를 적용한 것이다.
열공간 C ( A ) C(A) C ( A ) — A A A 의 열들이 생성하는 공간
영공간 N ( A ) N(A) N ( A ) — A x = 0 A\vv{x} = \vv{0} A x = 0 을 만족하는 x \vv{x} x 들의 공간
행공간 C ( A T ) C(A^{\mathsf{T}}) C ( A T ) — A A A 의 행 들이 생성하는 공간
좌영공간 N ( A T ) N(A^{\mathsf{T}}) N ( A T ) — A T y = 0 A^{\mathsf{T}}\vv{y} = \vv{0} A T y = 0 을 만족하는 y \vv{y} y 들의 공간
행공간이 A T A^{\mathsf{T}} A T 의 열공간인 이유는 전치의 정의에서 바로 나온다. A A A 의 행을 세로로
세우면 A T A^{\mathsf{T}} A T 의 열이 되기 때문이다.
좌영공간이라는 이름은 어디서 왔는가. A T y = 0 A^{\mathsf{T}}\vv{y} = \vv{0} A T y = 0 의 양변을 전치하고
L5의 (8) 의 성질을 쓰면
( A T y ) T = y T ( A T ) T = y T A = 0 T (A^{\mathsf{T}}\vv{y})^{\mathsf{T}} = \vv{y}^{\mathsf{T}}(A^{\mathsf{T}})^{\mathsf{T}}
= \vv{y}^{\mathsf{T}}A = \vv{0}^{\mathsf{T}} ( A T y ) T = y T ( A T ) T = y T A = 0 T 가 된다. 즉 y \vv{y} y 가 A A A 의 왼쪽 에 곱해져 0을 만든다. 그래서 좌영공간이다.
L8에서 해가 존재할 조건을 따질 때 쓴 y T A = 0 \vv{y}^{\mathsf{T}}A = \vv{0} y T A = 0 의 y \vv{y} y 가 바로 여기에 산다.
어디에 사는가 ¶ 가장 헷갈리는 지점이다. 표로 정리해 둔다.
부분공간 사는 곳 차원 행공간 C ( A T ) C(A^{\mathsf{T}}) C ( A T ) R n \R^n R n r r r 영공간 N ( A ) N(A) N ( A ) R n \R^n R n n − r n - r n − r 열공간 C ( A ) C(A) C ( A ) R m \R^m R m r r r 좌영공간 N ( A T ) N(A^{\mathsf{T}}) N ( A T ) R m \R^m R m m − r m - r m − r
A A A 가 m × n m \times n m × n 이면 행은 성분이 n n n 개이므로 행공간은 R n \R^n R n 에 있고, 열은 성분이
m m m 개이므로 열공간은 R m \R^m R m 에 있다. 행공간과 영공간은 정의역 쪽에, 열공간과 좌영공간은
공역 쪽에 있다.
(1) 의 예제로 확인하면 행공간과 영공간은 R 4 \R^4 R 4 에, 열공간과 좌영공간은 R 3 \R^3 R 3 에 있다.
차원 중 셋은 이미 아는 것이다. dim C ( A ) = r \dim C(A) = r dim C ( A ) = r 은 L9에서 증명했고, dim N ( A ) = n − r \dim N(A) = n - r dim N ( A ) = n − r 은
L7에서 얻었다. 좌영공간의 차원은 A T A^{\mathsf{T}} A T 에 L7의 공식을 적용하면 된다.
A T A^{\mathsf{T}} A T 는 n × m n \times m n × m 이므로 열이 m m m 개이고, 랭크가 r r r 이라면
dim N ( A T ) = m − r \dim N(A^{\mathsf{T}}) = m - r dim N ( A T ) = m − r 이다. 남은 것은 행공간의 차원이 정말 r r r 인지, 즉 A T A^{\mathsf{T}} A T 의 랭크도 r r r 인지이다.
2. 행랭크와 열랭크는 같다 ¶ 이것은 자명한 사실이 아니다. 행공간은 R n \R^n R n 에 있고 열공간은 R m \R^m R m 에 있어서 아예 다른
공간에 사는데, 두 공간의 차원이 같다고 주장하는 것이기 때문이다.
증명은 세 단계이다.
첫째, 행 연산은 행공간을 바꾸지 않는다 ¶ 소거의 각 단계는 어떤 행에 다른 행의 배수를 더하는 것이다. 새 행은 옛 행들의 선형결합이므로
새 행공간은 옛 행공간에 포함된다.
C ( R T ) ⊆ C ( A T ) C(R^{\mathsf{T}}) \subseteq C(A^{\mathsf{T}}) C ( R T ) ⊆ C ( A T ) 그런데 L2의 (29) 에서 본 것처럼 소거는 되돌릴 수 있다. 되돌리는 연산도
행에 행의 배수를 더하는 것이므로 같은 논리가 반대 방향으로도 성립한다. 양쪽이 서로를
포함하므로 두 공간은 같다.
C ( R T ) = C ( A T ) C(R^{\mathsf{T}}) = C(A^{\mathsf{T}}) C ( R T ) = C ( A T ) 둘째, R R R 의 0이 아닌 행들은 독립이다 ¶ R R R 을 기약 사다리꼴이라 하자. 0이 아닌 행은 정확히 r r r 개이고, 각 행은 자기 피벗 자리에
1을 갖는다. 그리고 기약 사다리꼴에서는 피벗이 있는 열의 다른 성분이 모두 0 이다.
이제 이 행들의 결합이 0이라 하자.
c 1 ( 1행 ) + c 2 ( 2행 ) + ⋯ + c r ( r 행 ) = 0 c_1(\text{1행}) + c_2(\text{2행}) + \cdots + c_r(r\text{행}) = \vv{0} c 1 ( 1 행 ) + c 2 ( 2 행 ) + ⋯ + c r ( r 행 ) = 0 i i i 번째 행의 피벗이 있는 열을 보면, 그 자리에서 i i i 번째 행만 1이고 나머지 행은 0이다.
따라서 그 자리의 값은 c i c_i c i 이고, 전체가 0이므로 c i = 0 c_i = 0 c i = 0 이다. 모든 i i i 에 대해 성립하므로
r r r 개의 행은 독립이다.
셋째, 그 행들이 행공간을 생성한다 ¶ 0인 행은 결합에 아무것도 보태지 않으므로, R R R 의 행공간은 0이 아닌 행들이 생성하는 공간과 같다.
(5) 에 의해 그것이 곧 A A A 의 행공간이다.
둘째와 셋째를 합치면 R R R 의 0이 아닌 행들이 행공간의 기저이고, 그 개수가 r r r 이므로
dim C ( A T ) = r \dim C(A^{\mathsf{T}}) = r dim C ( A T ) = r 이다. 열공간의 차원도 r r r 이었으므로 두 값이 같다.
Figure 1: 같은 행렬에서 피벗 열의 개수와 R R R 의 0이 아닌 행의 개수가 둘 다 r r r 이다.
왼쪽은 R 3 \R^3 R 3 안의 차원을, 오른쪽은 R 4 \R^4 R 4 안의 차원을 세고 있는데 값이 같다.
행렬을 가로로 읽든 세로로 읽든 독립적인 정보의 양은 같다. 그래서 랭크라는 하나의 숫자를
쓸 수 있다.
3. 각 공간의 기저 구하기 ¶ 네 공간의 기저를 (1) 의 예제로 실제로 구해 보자. L7에서 구한 기약 사다리꼴은
다음과 같았다.
R = [ 1 2 0 − 2 0 0 1 2 0 0 0 0 ] R = \begin{bmatrix} 1 & 2 & 0 & -2 \\ 0 & 0 & 1 & 2 \\ 0 & 0 & 0 & 0 \end{bmatrix} R = ⎣ ⎡ 1 0 0 2 0 0 0 1 0 − 2 2 0 ⎦ ⎤ 행공간 — R R R 의 0이 아닌 행 ¶ 2절에서 증명한 대로이다.
( 1 , 2 , 0 , − 2 ) , ( 0 , 0 , 1 , 2 ) (1,\, 2,\, 0,\, -2), \qquad (0,\, 0,\, 1,\, 2) ( 1 , 2 , 0 , − 2 ) , ( 0 , 0 , 1 , 2 ) 열공간 — 원래 A A A 의 피벗 열 ¶ L9에서 피벗 열이 C ( A ) C(A) C ( A ) 의 기저임을 보였다. 피벗은 1열과 3열에 있으므로
[ 1 2 3 ] , [ 2 6 8 ] \begin{bmatrix} 1 \\ 2 \\ 3 \end{bmatrix}, \qquad \begin{bmatrix} 2 \\ 6 \\ 8 \end{bmatrix} ⎣ ⎡ 1 2 3 ⎦ ⎤ , ⎣ ⎡ 2 6 8 ⎦ ⎤ 이다. 여기서 반드시 주의할 것이 있다.
왜 그런지 작은 예로 보자.
A = [ 1 2 3 6 ] ⟶ R = [ 1 2 0 0 ] A = \begin{bmatrix} 1 & 2 \\ 3 & 6 \end{bmatrix}
\;\longrightarrow\;
R = \begin{bmatrix} 1 & 2 \\ 0 & 0 \end{bmatrix} A = [ 1 3 2 6 ] ⟶ R = [ 1 0 2 0 ] C ( A ) C(A) C ( A ) 는 ( 1 , 3 ) (1,3) ( 1 , 3 ) 이 만드는 직선이고 C ( R ) C(R) C ( R ) 은 ( 1 , 0 ) (1,0) ( 1 , 0 ) 이 만드는 직선이다. 완전히 다른 직선이다.
Figure 2: 피벗이 1열에 있다는 사실은 둘이 같지만, 그 열이 가리키는 방향은 전혀 다르다.
행공간은 왜 보존되고 열공간은 왜 바뀌는가. 소거는 R = E A R = EA R = E A 로 쓸 수 있고 E E E 는 가역이다.
행 관점으로 보면 R R R 의 각 행이 A A A 의 행들의 결합이므로 행공간이 유지된다. 반면 열 관점으로
보면 R R R 의 각 열은 A A A 의 해당 열에 E E E 를 곱한 것이라 방향이 달라진다.
C ( R ) = { E v : v ∈ C ( A ) } C(R) = \{\, E\vv{v} : \vv{v} \in C(A) \,\} C ( R ) = { E v : v ∈ C ( A ) } 다만 열들 사이의 종속 관계는 그대로이다. E E E 가 가역이므로
A x = 0 ⟺ E A x = 0 ⟺ R x = 0 A\vv{x} = \vv{0} \;\Longleftrightarrow\; EA\vv{x} = \vv{0} \;\Longleftrightarrow\; R\vv{x} = \vv{0} A x = 0 ⟺ E A x = 0 ⟺ R x = 0 이고, 따라서 N ( A ) = N ( R ) N(A) = N(R) N ( A ) = N ( R ) 이다. 어느 열이 다른 열들로 만들어지는지가 두 행렬에서 같다는 뜻이고,
그래서 피벗 열의 번호 는 R R R 에서 읽어도 된다.
영공간 — 특수해 ¶ L7에서 구한 것이다.
[ − 2 1 0 0 ] , [ 2 0 − 2 1 ] \begin{bmatrix} -2 \\ 1 \\ 0 \\ 0 \end{bmatrix},
\qquad
\begin{bmatrix} 2 \\ 0 \\ -2 \\ 1 \end{bmatrix} ⎣ ⎡ − 2 1 0 0 ⎦ ⎤ , ⎣ ⎡ 2 0 − 2 1 ⎦ ⎤ 좌영공간 — 0이 된 행이 알려 준다 ¶ A T A^{\mathsf{T}} A T 에 같은 절차를 적용해도 되지만, 이미 한 소거에서 읽을 수도 있다.
R = E A R = EA R = E A 에서 R R R 의 i i i 번째 행이 0이라 하자. 그 행은 E E E 의 i i i 번째 행과 A A A 의 곱이므로
( E 의 i 행 ) A = 0 (E\text{의 } i \text{행}) \, A = \vv{0} ( E 의 i 행 ) A = 0 이고, 이는 E E E 의 그 행이 좌영공간에 있다는 뜻이다. 0인 행은 m − r m - r m − r 개이고 E E E 가 가역이라
그 행들은 독립이므로, 이것이 좌영공간의 기저가 된다.
이 예제에서 0이 된 행은 하나이고, L8의 (4) 에서 그 결합을 이미 구했다.
y = [ − 1 − 1 1 ] , y T A = 0 \vv{y} = \begin{bmatrix} -1 \\ -1 \\ 1 \end{bmatrix},
\qquad \vv{y}^{\mathsf{T}}A = \vv{0} y = ⎣ ⎡ − 1 − 1 1 ⎦ ⎤ , y T A = 0 차원이 m − r = 3 − 2 = 1 m - r = 3 - 2 = 1 m − r = 3 − 2 = 1 이므로 이 하나가 기저이다.
4. 차원의 기본정리 ¶ 네 차원을 두 줄로 묶으면 다음과 같다.
dim C ( A T ) + dim N ( A ) = r + ( n − r ) = n \dim C(A^{\mathsf{T}}) + \dim N(A) = r + (n - r) = n dim C ( A T ) + dim N ( A ) = r + ( n − r ) = n dim C ( A ) + dim N ( A T ) = r + ( m − r ) = m \dim C(A) + \dim N(A^{\mathsf{T}}) = r + (m - r) = m dim C ( A ) + dim N ( A T ) = r + ( m − r ) = m 정의역 R n \R^n R n 은 행공간과 영공간으로, 공역 R m \R^m R m 은 열공간과 좌영공간으로 나뉜다.
차원의 합이 정확히 맞아떨어지므로 남는 것도 없고 모자라는 것도 없다.
예제로 확인하면 2 + 2 = 4 = n 2 + 2 = 4 = n 2 + 2 = 4 = n 이고 2 + 1 = 3 = m 2 + 1 = 3 = m 2 + 1 = 3 = m 이다.
5. 행렬이 하는 일 ¶ 이제 네 공간을 한 그림에 놓는다.
Figure 3: 네 부분공간의 지도. 왼쪽이 정의역, 오른쪽이 공역이다.
A A A 가 무엇을 하는지 이 그림으로 읽어 보자.
영공간은 0으로 간다 ¶ 정의상 x ∈ N ( A ) \vv{x} \in N(A) x ∈ N ( A ) 이면 A x = 0 A\vv{x} = \vv{0} A x = 0 이다. 영공간 전체가 원점 하나로 뭉개진다.
행공간은 열공간으로 일대일 대응된다 ¶ 먼저 행공간과 영공간이 원점만 공유한다는 것을 보이자. x \vv{x} x 가 둘 다에 속한다고 하면,
행공간은 C ( A T ) C(A^{\mathsf{T}}) C ( A T ) 이므로 어떤 z \vv{z} z 에 대해 x = A T z \vv{x} = A^{\mathsf{T}}\vv{z} x = A T z 이고,
동시에 A x = 0 A\vv{x} = \vv{0} A x = 0 이다. 그러면 다음을 계산할 수 있다.
x T x = ( A T z ) T x = z T A x = z T 0 = 0 \vv{x}^{\mathsf{T}}\vv{x}
= (A^{\mathsf{T}}\vv{z})^{\mathsf{T}}\vv{x}
= \vv{z}^{\mathsf{T}}A\,\vv{x}
= \vv{z}^{\mathsf{T}}\vv{0} = 0 x T x = ( A T z ) T x = z T A x = z T 0 = 0 그런데 x T x = x 1 2 + ⋯ + x n 2 \vv{x}^{\mathsf{T}}\vv{x} = x_1^2 + \cdots + x_n^2 x T x = x 1 2 + ⋯ + x n 2 이므로 이 값이 0이려면 모든 성분이
0이어야 한다. 따라서 x = 0 \vv{x} = \vv{0} x = 0 이다.
C ( A T ) ∩ N ( A ) = { 0 } C(A^{\mathsf{T}}) \cap N(A) = \{\vv{0}\} C ( A T ) ∩ N ( A ) = { 0 } 이제 행공간의 두 벡터 x , x ′ \vv{x}, \vv{x}' x , x ′ 이 같은 곳으로 간다고 하자. A x = A x ′ A\vv{x} = A\vv{x}' A x = A x ′ 이면
A ( x − x ′ ) = 0 A(\vv{x} - \vv{x}') = \vv{0} A ( x − x ′ ) = 0 이므로 x − x ′ \vv{x} - \vv{x}' x − x ′ 은 영공간에 있다. 동시에 행공간은
부분공간이므로 두 원소의 차도 행공간에 있다. (20) 에 의해 그 차는 영벡터이고,
따라서 x = x ′ \vv{x} = \vv{x}' x = x ′ 이다. 서로 다른 곳에서 출발하면 서로 다른 곳에 도착한다.
상이 C ( A ) C(A) C ( A ) 전체인 것도 따라온다. 행공간의 기저 r r r 개를 A A A 로 보내면, 일대일이므로 그 상들도
독립이다. L9의 Theorem 1 증명에서 실제로 쓴 것은 한쪽이 생성하고 다른 쪽이
독립이라는 것뿐이었으므로, r r r 차원 공간 안의 독립인 벡터는 많아야 r r r 개이다. 지금 C ( A ) C(A) C ( A ) 안에
독립인 벡터가 정확히 r r r 개 있고 dim C ( A ) = r \dim C(A) = r dim C ( A ) = r 이므로, 이들이 더 늘어날 수 없다.
즉 이들이 C ( A ) C(A) C ( A ) 의 기저이고 상은 C ( A ) C(A) C ( A ) 전체이다.
L6에서 "영공간의 크기가 잃어버린 정보의 양"이라고 한 것이 이 그림에서 분명해진다.
정의역 중 행공간에 해당하는 부분은 하나도 잃지 않고 그대로 살아 건너가고, 영공간에 해당하는
부분은 통째로 사라진다.
왜 직각으로 그렸는가 ¶ Figure 3 에서 각 공간을 위아래로 나누어 그렸다. 실제로 이 두 쌍은 서로 직각을 이룬다.
(19) 의 계산이 그 실마리이다. 거기서 우리는 x T x \vv{x}^{\mathsf{T}}\vv{x} x T x 라는
양을 썼는데, 이것은 벡터의 길이와 관련된 값이다.
그런데 지금까지 열 강의를 오면서 길이나 각도라는 개념을 정의한 적이 없다. 두 쌍이 직각이라는
것을 제대로 말하려면 먼저 그 개념을 세워야 한다. 뒤에서 다시 다룬다.
마치며... ¶ 이번 강의에서 얻은 것을 정리하면 다음과 같다.
부분공간 기저를 구하는 법 사는 곳 차원 행공간 C ( A T ) C(A^{\mathsf{T}}) C ( A T ) R R R 의 0이 아닌 행R n \R^n R n r r r 영공간 N ( A ) N(A) N ( A ) 특수해 R n \R^n R n n − r n - r n − r 열공간 C ( A ) C(A) C ( A ) A A A 의 피벗 열R m \R^m R m r r r 좌영공간 N ( A T ) N(A^{\mathsf{T}}) N ( A T ) 0이 된 행에 대응하는 E E E 의 행 R m \R^m R m m − r m - r m − r
행렬 하나에 부분공간이 넷 딸려 오고, 정의역은 행공간과 영공간으로, 공역은 열공간과 좌영공간으로
나뉜다. 차원의 합이 각각 n n n 과 m m m 이 되어 남거나 겹치는 부분이 없다.
그리고 행랭크와 열랭크가 같다는, 전혀 자명하지 않은 사실을 증명했다. 행공간과 열공간은
아예 다른 공간에 사는데도 차원이 같다.
A A A 가 하는 일은 행공간을 열공간으로 옮기고 영공간을 0으로 뭉개는 것, 그것이 전부이다.
이 그림은 앞으로 여러 번 다시 꺼내게 된다.
다음 강의에서는 이 지도에서 가장 단순한 지형을 살펴본다. 랭크가 1인 행렬이다.
L3에서 열 하나와 행 하나의 곱으로 만들어지는 행렬을 잠깐 보았는데, 그것이 모든 행렬을
쌓아 올리는 벽돌이 된다.
이번 강의의 내용을 파이썬으로 확인해 보려면 L10 실습 노트북 으로 넘어가면 된다.
네 부분공간의 기저를 모두 구해 차원의 합을 확인하고, 열공간의 기저를 R R R 에서 잘못 가져오면
어떤 일이 생기는지 직접 볼 수 있다.