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 6. 열공간과 영공간

Column Space and Nullspace — 서술

지난 강의에서 벡터공간과 부분공간을 정의했지만, 든 예는 전부 손으로 지어낸 것이었다. 평면 x+y+z=0x + y + z = 0 이 부분공간이라는 것은 확인했어도, 그런 평면이 어디서 오는지는 말하지 않았다.

이번 강의에서는 행렬 하나가 주어지면 부분공간이 저절로 따라 나온다는 것을 본다. 이름은 열공간(column space)과 영공간(null space)이다.

그리고 이 두 개념으로 다음 문장을 얻는다.

Ax=b 에 해가 있다    b 가 A 의 열공간 안에 있다A\vv{x} = \vv{b} \text{ 에 해가 있다} \;\Longleftrightarrow\; \vv{b} \text{ 가 } A \text{ 의 열공간 안에 있다}

방정식을 푸는 문제가 어떤 점이 어떤 집합에 속하는가라는 문제로 바뀐다.


1. 열공간 (Column space)

L1에서 AxA\vv{x}AA 의 열들의 선형결합이라고 하였다. x\vv{x} 를 이리저리 바꾸면 열들을 여러 비율로 섞을 수 있다. 그렇다면 자연스러운 질문이 하나 생긴다. 섞어서 만들 수 있는 것을 전부 모으면 무엇이 되는가?

L1의 (33)에 의해 Ax=x1a1++xnanA\vv{x} = x_1\vv{a}_1 + \cdots + x_n\vv{a}_n 이므로, 이 집합은 AA 의 열들의 모든 선형결합의 집합과 같은 것이다. 두 표현은 같은 것을 다르게 쓴 것이다.

정말 부분공간인가

이름에 공간이 들어갔으니 확인해야 한다. L5의 Definition 4에 따라 두 조건을 보면 된다. 계산은 A(u+v)=Au+AvA(\vv{u} + \vv{v}) = A\vv{u} + A\vv{v}A(cu)=cAuA(c\vv{u}) = cA\vv{u} 라는 성질만 쓴다.

먼저 원점이다. x=0\vv{x} = \vv{0} 을 넣으면 A0=0A\vv{0} = \vv{0} 이므로

0C(A)\vv{0} \in C(A)

이다. 덧셈을 보자. C(A)C(A) 의 원소 두 개를 잡으면 각각 Ax1A\vv{x}_1, Ax2A\vv{x}_2 의 꼴이다. 이 둘을 더하면

Ax1+Ax2=A(x1+x2)A\vv{x}_1 + A\vv{x}_2 = A(\vv{x}_1 + \vv{x}_2)

가 되어 다시 A(어떤 벡터)A(\text{어떤 벡터}) 의 꼴이므로 C(A)C(A) 안에 있다. 스칼라배도 마찬가지이다.

c(Ax)=A(cx)c\,(A\vv{x}) = A(c\vv{x})

두 조건을 모두 만족하므로 C(A)C(A) 는 부분공간이다. 증명에서 쓴 것은 행렬곱의 분배법칙뿐이고 AA 가 어떻게 생겼는지는 전혀 쓰지 않았다. 어떤 행렬이든 열공간은 부분공간이다.

어디에 있는가

AAm×nm \times n 이면 AxA\vv{x} 는 성분이 mm 개인 벡터이다. 따라서

C(A)RmC(A) \subseteq \R^m

이다. 열의 개수 nn 이 아니라 열의 길이 mm 이 사는 공간을 정한다.

예제

L1에서 다룬 행렬을 다시 가져온다.

A=[123257633],a3=a1+a2A = \begin{bmatrix} 1 & 2 & 3 \\ 2 & 5 & 7 \\ 6 & -3 & 3 \end{bmatrix}, \qquad \vv{a}_3 = \vv{a}_1 + \vv{a}_2

세 번째 열이 앞의 두 열의 합이므로, L1의 (27)에서 본 것처럼 세 열의 어떤 결합도 앞의 두 열의 결합으로 다시 쓸 수 있다. 그러므로

C(A)={ca1+da2  :  c,dR}C(A) = \{\, c\,\vv{a}_1 + d\,\vv{a}_2 \;:\; c, d \in \R \,\}

이고, 이것은 R3\R^3 안의 평면이다. 그 평면의 법선은 L1의 (28)에서 구한 n=(36,15,1)\vv{n} = (-36, 15, 1) 이다.


2. 열공간과 해의 존재

이제 (1)의 문장을 확인해 보자.

Ax=bA\vv{x} = \vv{b} 에 해가 있다는 것은 이 식을 만족하는 x\vv{x} 가 존재한다는 뜻이다. 그런데 (2)의 정의를 보면 C(A)C(A) 는 정확히 그런 AxA\vv{x} 들을 모아 놓은 집합이다. 따라서 두 문장은 같은 말이다.

x   로서 Ax=b    bC(A)\exists\, \vv{x} \;\text{ 로서 } A\vv{x} = \vv{b} \;\Longleftrightarrow\; \vv{b} \in C(A)

증명이랄 것도 없이 정의를 다시 읽은 것이다. 그러나 문제를 보는 방식이 달라진다. 지금까지는 x\vv{x} 를 구하려고 소거를 했는데, 이제는 b\vv{b} 가 어느 집합에 속하는지만 보면 된다. 소속을 판정하는 것이 방정식을 푸는 것보다 쉬운 경우가 많다.

판정해 보기

(7)AA 에 대해 두 우변을 시험해 보자. C(A)C(A) 는 법선이 n=(36,15,1)\vv{n} = (-36, 15, 1) 인 평면이므로, b\vv{b} 가 그 위에 있는지는 내적 한 번으로 판정된다.

b1=[373]:nb1=108+105+3=0\vv{b}_1 = \begin{bmatrix} 3 \\ 7 \\ 3 \end{bmatrix} : \quad \vv{n} \cdot \vv{b}_1 = -108 + 105 + 3 = 0
b2=[642]:nb2=216+60+2=1540\vv{b}_2 = \begin{bmatrix} 6 \\ 4 \\ 2 \end{bmatrix} : \quad \vv{n} \cdot \vv{b}_2 = -216 + 60 + 2 = -154 \neq 0

b1\vv{b}_1 은 열공간 안에 있으므로 Ax=b1A\vv{x} = \vv{b}_1 에는 해가 있다. 실제로 b1=a1+a2\vv{b}_1 = \vv{a}_1 + \vv{a}_2 이므로 x=(1,1,0)\vv{x} = (1, 1, 0) 이 해이다. b2\vv{b}_2 는 밖에 있으므로 해가 없다. 소거를 한 번도 하지 않고 판정했다.

C(A) 를 거의 옆에서 본 그림이다. 두 열과 \vv{b}_1 은 청록색 평면 안에 들어 있고,
\vv{b}_2 만 평면을 벗어나 있다. 빨간 점선은 \vv{b}_2 에서 평면에 내린 수선이다.

Figure 1:C(A)C(A) 를 거의 옆에서 본 그림이다. 두 열과 b1\vv{b}_1 은 청록색 평면 안에 들어 있고, b2\vv{b}_2 만 평면을 벗어나 있다. 빨간 점선은 b2\vv{b}_2 에서 평면에 내린 수선이다.


3. 영공간 (Null space)

열공간은 우변 쪽 이야기였다. 이번에는 미지수 쪽을 본다.

부분공간인가

역시 확인한다. 원점은 A0=0A\vv{0} = \vv{0} 이므로 언제나 들어 있다.

0N(A)\vv{0} \in N(A)

x1,x2N(A)\vv{x}_1, \vv{x}_2 \in N(A) 라 하자. 정의상 Ax1=0A\vv{x}_1 = \vv{0} 이고 Ax2=0A\vv{x}_2 = \vv{0} 이므로

A(x1+x2)=Ax1+Ax2=0+0=0A(\vv{x}_1 + \vv{x}_2) = A\vv{x}_1 + A\vv{x}_2 = \vv{0} + \vv{0} = \vv{0}

이 되어 합도 영공간에 있다. 스칼라배도 마찬가지이다.

A(cx1)=cAx1=c0=0A(c\vv{x}_1) = c\,A\vv{x}_1 = c\,\vv{0} = \vv{0}

따라서 N(A)N(A) 는 부분공간이다.

예제

(7)AA 에 대해 영공간을 실제로 구해 보자. 조건은 다음과 같다.

x1a1+x2a2+x3a3=0x_1\vv{a}_1 + x_2\vv{a}_2 + x_3\vv{a}_3 = \vv{0}

a3=a1+a2\vv{a}_3 = \vv{a}_1 + \vv{a}_2 를 넣고 항을 모으면

x1a1+x2a2+x3(a1+a2)=(x1+x3)a1+(x2+x3)a2=0x_1\vv{a}_1 + x_2\vv{a}_2 + x_3(\vv{a}_1 + \vv{a}_2) = (x_1 + x_3)\,\vv{a}_1 + (x_2 + x_3)\,\vv{a}_2 = \vv{0}

가 된다. 여기서 a1\vv{a}_1a2\vv{a}_2 는 서로 평행하지 않다. 만약 어느 한 계수가 0이 아니라면, 예를 들어 첫 계수를 c0c \neq 0 이라 하고 둘째를 dd 라 하면 a1=(d/c)a2\vv{a}_1 = -(d/c)\,\vv{a}_2 가 되어 두 벡터가 평행해진다. 이는 사실이 아니므로 두 계수가 모두 0이어야 한다.

x1+x3=0,x2+x3=0x_1 + x_3 = 0, \qquad x_2 + x_3 = 0

x3x_3 를 자유롭게 두면 x1=x3x_1 = -x_3, x2=x3x_2 = -x_3 이므로

x=x3[111]\vv{x} = x_3 \begin{bmatrix} -1 \\ -1 \\ 1 \end{bmatrix}

이다. 즉 N(A)N(A)(1,1,1)(1, 1, -1) 방향의 직선이다. 부호는 상수배로 흡수되므로 (1,1,1)(-1,-1,1)(1,1,1)(1,1,-1) 중 어느 쪽으로 써도 같은 직선이다.

L1에서 이 행렬의 해가 무수히 많을 때 (1,1,1)(1, 1, -1) 의 배수를 더해도 해가 된다고 했는데, 그 방향이 바로 영공간이었다.


4. 두 공간은 어디에 있는가

여기서 자주 헷갈리는 것을 짚어 둔다. 두 공간은 서로 다른 공간에 산다.

C(A)Rm,N(A)RnC(A) \subseteq \R^m, \qquad N(A) \subseteq \R^n

이유는 간단하다. C(A)C(A) 의 원소는 AxA\vv{x} 이고 이것은 성분이 mm 개이다. N(A)N(A) 의 원소는 x\vv{x} 자체이고 이것은 성분이 nn 개이다. 열공간은 도착지 쪽 이야기이고, 영공간은 출발지 쪽 이야기이다.

AA 가 정방행렬이면 m=nm = n 이라 둘 다 같은 Rn\R^n 안에 있게 되는데, 이 때문에 두 공간이 원래 같은 곳에 있는 것으로 오해하기 쉽다. 정방이 아닌 예를 하나 보면 분명해진다.

B=[123246]B = \begin{bmatrix} 1 & 2 & 3 \\ 2 & 4 & 6 \end{bmatrix}

BB2×32 \times 3 이다. 열은 (1,2)(1,2), (2,4)(2,4), (3,6)(3,6) 인데 모두 (1,2)(1,2) 의 배수이므로 그 결합도 전부 (1,2)(1,2) 의 배수이다. 따라서 C(B)C(B)R2\R^2 안의 직선이다.

영공간은 Bx=0B\vv{x} = \vv{0} 을 푸는 것인데, 두 번째 행이 첫 번째 행의 2배라 조건이 하나로 줄어든다.

x1+2x2+3x3=0x_1 + 2x_2 + 3x_3 = 0

이것은 R3\R^3 안의 평면이다. 정리하면 다음과 같다.

C(B)C(B)N(B)N(B)
사는 곳R2\R^2R3\R^3
모양직선평면
2 \times 3 행렬의 두 부분공간. 하나는 \R^2 안에, 다른 하나는 \R^3 안에 있어
같은 그림에 그릴 수조차 없다.

Figure 2:2×32 \times 3 행렬의 두 부분공간. 하나는 R2\R^2 안에, 다른 하나는 R3\R^3 안에 있어 같은 그림에 그릴 수조차 없다.


5. 영공간과 가역성

L3에서 Ax=0A\vv{x} = \vv{0} 을 만족하는 x0\vv{x} \neq \vv{0} 이 있으면 역행렬이 없다고 하였다. 이제 그 문장을 새 언어로 다시 쓸 수 있다.

왜 그런지는 영공간이 무엇을 재는지 보면 더 분명해진다. 서로 다른 두 벡터가 같은 곳으로 가는 경우를 따져 보자.

Au=Av    AuAv=0    A(uv)=0    uvN(A)A\vv{u} = A\vv{v} \;\Longleftrightarrow\; A\vv{u} - A\vv{v} = \vv{0} \;\Longleftrightarrow\; A(\vv{u} - \vv{v}) = \vv{0} \;\Longleftrightarrow\; \vv{u} - \vv{v} \in N(A)

영공간은 같은 곳으로 가는 두 점의 차이를 모아 놓은 집합이다. 영공간에 0이 아닌 벡터가 있다면 서로 다른 두 점이 같은 곳으로 간다는 뜻이고, 그러면 도착점만 보고 출발점을 알아낼 수 없으므로 되돌리는 변환이 존재할 수 없다.

반대로 N(A)={0}N(A) = \{\vv{0}\} 이면 (23)에 의해 Au=AvA\vv{u} = A\vv{v} 일 때 반드시 u=v\vv{u} = \vv{v} 이다. 서로 다른 점은 서로 다른 곳으로 간다.

L3에서 정육면체가 납작해지는 것을 보았는데, 납작해지는 방향이 바로 영공간이다.


6. 우변이 0이 아닐 때의 해집합

영공간은 Ax=0A\vv{x} = \vv{0} 의 해집합이었고, 부분공간이었다. 그러면 b0\vv{b} \neq \vv{0} 일 때 Ax=bA\vv{x} = \vv{b} 의 해집합도 부분공간인가?

아니다. x=0\vv{x} = \vv{0} 을 넣으면 A0=0A\vv{0} = \vv{0} 인데 이것은 b\vv{b} 가 아니다. 즉 원점이 해가 아니므로, L5에서 본 것처럼 부분공간일 수 없다.

그러면 무엇인가. 해가 하나라도 있다고 하고 그것을 xp\vv{x}_p 라 하자. x\vv{x} 가 또 다른 해라면

Ax=b,Axp=b    A(xxp)=bb=0A\vv{x} = \vv{b}, \quad A\vv{x}_p = \vv{b} \;\Longrightarrow\; A(\vv{x} - \vv{x}_p) = \vv{b} - \vv{b} = \vv{0}

이므로 xxpN(A)\vv{x} - \vv{x}_p \in N(A) 이다. 거꾸로 xnN(A)\vv{x}_n \in N(A) 를 아무거나 잡으면

A(xp+xn)=Axp+Axn=b+0=bA(\vv{x}_p + \vv{x}_n) = A\vv{x}_p + A\vv{x}_n = \vv{b} + \vv{0} = \vv{b}

이므로 xp+xn\vv{x}_p + \vv{x}_n 도 해이다. 양쪽을 합치면 해집합이 정확히 무엇인지 나온다.

{x:Ax=b}=xp+N(A)\{\, \vv{x} : A\vv{x} = \vv{b} \,\} = \vv{x}_p + N(A)

해집합은 영공간을 해 하나만큼 평행이동한 것이다. 부분공간은 아니지만 부분공간을 옮겨 놓은 것이라 모양은 같다. 영공간이 직선이면 해집합도 직선이고, 평면이면 평면이다.

회색 점선이 원점을 지나는 N(A) 이고, 주황색 실선이 A\vv{x} = \vv{b} 의 해집합이다.
두 직선은 나란하며, \vv{x}_p 만큼 떨어져 있다.

Figure 3:회색 점선이 원점을 지나는 N(A)N(A) 이고, 주황색 실선이 Ax=bA\vv{x} = \vv{b} 의 해집합이다. 두 직선은 나란하며, xp\vv{x}_p 만큼 떨어져 있다.

(7)의 예로 확인해 보자. b1=(3,7,3)\vv{b}_1 = (3,7,3) 에 대해 xp=(1,1,0)\vv{x}_p = (1,1,0) 이 해였고, N(A)N(A)(1,1,1)(1,1,-1) 방향의 직선이었다. 따라서 해집합은 다음과 같다.

x=[110]+t[111](tR)\vv{x} = \begin{bmatrix} 1 \\ 1 \\ 0 \end{bmatrix} + t \begin{bmatrix} 1 \\ 1 \\ -1 \end{bmatrix} \qquad (t \in \R)

L1에서 "해 하나를 찾았다면 (1,1,1)(1,1,-1) 의 아무 배수를 더해도 해가 된다"고 한 것이 바로 이 식이다.

여기까지는 xp\vv{x}_pN(A)N(A) 를 이미 알고 있다고 가정하고 이야기했다. 실제로 그것들을 어떻게 구하는지는 아직 다루지 않았다.


마치며...

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

대상정의사는 곳무엇에 대한 이야기인가
열공간 C(A)C(A)AxA\vv{x} 가 도달할 수 있는 모든 곳Rm\R^m도착지
영공간 N(A)N(A)Ax=0A\vv{x} = \vv{0} 인 모든 x\vv{x}Rn\R^n출발지

그리고 세 가지 결과를 얻었다.

마지막 결과는 해집합의 모양을 알려 주지만, xp\vv{x}_pN(A)N(A) 를 어떻게 구하는지는 말해 주지 않는다. 지금까지는 세 번째 열이 앞의 두 열의 합이라는 것이 눈에 보이는 예제만 다루었다. 그런 관계가 보이지 않는 행렬이라면 어떻게 해야 하는가.

다음 강의에서는 Ax=0A\vv{x} = \vv{0} 을 소거로 푸는 방법을 다룬다. 거기서 피벗 변수자유 변수라는 구분이 나오고, 영공간의 모양이 그 구분에서 결정된다.


이번 강의의 내용을 파이썬으로 확인해 보려면 L6 실습 노트북으로 넘어가면 된다. 무작위 x\vv{x} 를 많이 만들어 AxA\vv{x} 가 정말 한 평면 위에만 떨어지는지 보고, b\vv{b} 가 열공간 안에 있는지를 판정하는 함수를 직접 만들어 볼 수 있다.