column space, nullspace, row space, left nullspace의 개념을 다시한번 바로잡는 목적으로 글을 쓴다. 아래 보이는 것과 같은 3 x 4인 행렬A를 예로 들어, 이상의 4가지 부분 공간에 대해서 설명하겠다. 





▶ column space


column space는 행렬A의 column vector들로 만들 수 있는 부분 공간(subspace)이다. 행렬 A의 column space를 C(A)로 표기한다. column space를 찾기 위해서는 우선 basis vector들을 찾는 것이 중요하다. 


행렬A에는 4개의 3차원 column vector가 들어있다. 



일단 a1과 a2는 서로 독립(independent)이다. a1에 어떤 상수를 곱해도 a2가 될 수 없기 때문이다. 그리고 a3 = 2*a1 + a2이므로 a3는 a1과 a2의 선형조합이다. a3는 a1과 a2의 조합일뿐 새로운 정보를 담고 있지 않다. 또한 a1 = a4이다. 결과적으로, a3, a4는 a1, a2에 종속(dependent)된다. a1, a2가 C(A)의 basis vector이 된다. 이 basis vector들을 모아놓은 것을 basis라고 한다. 행렬A에서 독립인 column vector의 갯수는 2개이므로, 행렬 A의 rank는 2다(rank(A)=2). 행렬A의 rank는 선형 독립인 column vector들의 최대 갯수, 즉 pivot의 갯수임을 기억하자. 


행렬A의 column space, 즉 C(A)는 basis vector들인 a1과 a2의 선형 조합으로 만들어낼 수 있는 부분 공간이 된다. 


...(1: 행렬A의 column space)


여기서 c, d는 임의의 모든 실수, a1과 a2는 basis vectors이다. a1과 a2은 3차원 공간에서의 1차원 공간인 선(line)들이고, 이 둘을 조합하면 3차원 공간에서 2차원 공간인 평면(plane)이 만들어진다(그림1 참고). 즉, C(A)의 차원(dimension)은 2다. 


그림1. 행렬A의 column space.



만약 Ax = b에서 해를 구할 수 있으려면, b가 행렬A의 column space에 존재해야만 한다. 그림1에 보이는 파란색으로 표시한 2차원 평면에 존재해야한다는 말이다. 그 이유는 아래와 같이, 



b는 A의 column vector들의 선형 조합이기 때문이다. column space에 대해 이해가 되었다면 이제 nullspace로 넘어가보자. 아직 안되었다면, 한번 더 읽어보고 그래도 안되면 질문하자. 




▶ nullspace


nullspace는 column space와 아예 다른 개념으로, Ax = 0을 만족시키는 x의 집합이다. 



여기서 x1, x2, x3, x4가 무엇일 때 영벡터가 되게 할지를 생각해보자. 



세 개만 찾아보았지만 Ax=0을 만족시키는 x는 셀 수 없이 많다. 그러면 그 x의 집합인 nullspace를 어떻게 표현해낼 수 있을까? 방법은 column space를 구했을 때와 같이 basis vector들을 찾아서 그것의 선형조합으로 표현하는 것이다. 구체적으로 말하자면, 자유 변수(free variable) 중에서 하나에는 1을 대입하고, 나머지에는 0을 대입한다. 이번에는 또 다른 자유 변수에 1을 대입하고 나머지에는 0을 대입한다. 이것을 반복해서 특수해(special solution)들을 찾는다. 우리가 알고자 하는 완전해(complete solution)은 특수해들의 선형조합이다. 즉, nullspace에서의 basis vector들은 특수해들이다. 이것이 무슨 의미인지 아래를 통해 확인하자. 


우선 자유변수가 무엇인지 알려면 pivot을 찾아야하므로, 행렬A를 상삼각행렬 U(upper triangular)로 변환해야 한다. 아래와 같이 세번째 행에서 첫번째 행을 빼주면,



간단히 U로 변환된다. 여기서 pivot은 첫번째 열의 1과 두번째 열의 1이다. 이 pivot을 포함하고 있는 column vector가 pivot column들이 되고, 없는 것들은 free column들이 된다(그림2 참고).  


그림2. pivot column과 free column에 대한 설명.

U에서 pivot column, free column이면 A에서도 마찬가지로 pivot column, free column이다. 따라서 A에서 a1과 a2는 pivot column들이고 a3와 a4는 free column들이다. 그렇다면 pivot 변수와 자유변수는 무엇일까? pivot 변수와 자유변수는 pivot column들과 free column들에 곱해지는 x의 요소이다. 즉, 아래와 같이,



에서 pivot column들인 a1과 a2에 곱해지는 x1과 x2가 pivot 변수들이고, free column들인 a3와 a4에 곱해지는 x3와 x4가 자유변수들이다. 이제 자유변수가 무엇을 의미하는지 알았으니, 특수해를 구하는 것으로 넘어가자. 위에서 언급한 것과 같이 먼저 자유변수 중의 하나에 1을 넣고, 나머지에는 0을 넣는다. 먼저 x3=1, x4=0을 대입하자. 


따라서, 첫번째 특수해는



이다. 이번에는 반대로 x3=0, x4=1을 대입한다. 


따라서, 두번째 특수해는 



이 된다. 이들의 선형 조합이 완전해가 되고 그것이 바로 행렬A의 nullspace, 즉 N(A)를 나타내는 것이다. 


...(2: 행렬A의 nullspace)


여기서, c와 d는 임의의 실수이다. 특수해들이 nullspace의 basis vector들이라고 말한 이유를 이제 이해할 수 있을 것이다. 과 는 4차원 공간에서 1차원 공간인 선(line)들이고, 이들의 선형 조합은 4차원 공간에서 2차원 공간인 평면(plane)을 만들어낸다. 따라서 N(A)의 차원(dimension)은 2다. 4차원 공간이라 그림은 생략하지만, 어떤 식으로 평면이 만들어질지 생각해보자. 



 

▶ row space


row space는 column space를 안다면 매우 쉽다. 우선 행렬 A의 row space는 와 같이 표기한다. 의 column space가 행렬 A의 row space이기 때문이다. 



에는 3개의 4차원 column vector들이 들어있다. 



우선 r1과 r2는 서로 독립임을 알 수 있다. r1에 어떤 상수를 곱해도 r2가 될 수 없기 때문이다. 그리고 r3는 r1과 동일하다. r3는 r1에 종속된다고 말할 수 있다. 따라서 r1, r2가 의 basis vector들이다. 행렬A의 row space는 basis vector들인 r1과 r2의 선형 조합으로 만들어낼 수 있는 부분 공간이 된다. 


...(3: 행렬A의 row space)


여기서 c, d는 임의의 모든 실수, r1과 r2는 basis vector들이다. 이 basis vector들은 4차원 공간에서 1차원인 선들이고, 이들의 선형 조합은 4차원 공간에서 2차원인 평면을 만들어낸다. 따라서 의 차원은 2다. 




▶ left nullspace


행렬 A의 left nullspace는  표기에서 알 수 있듯이 의 nullspace이다. 따라서, 을 만족시키는 x들의 집합이 A의 left nullspace가 된다.



을 만족시키는 것은 



의 상수배들 뿐이다. 따라서 이것이 바로 basis vector다. 즉, 는 


...(4: 행렬A의 left nullspace)


이다. basis vector는 3차원 공간에서 1차원인 선이고, 상수배 역시 1차원인 선이므로 의 차원은 1이다.



 

▶ 총 정리


지금까지 column space, nullspace, row space, left nullspace를 설명해왔는데, 이제 마지막으로 정리해보자. 부분 공간에 대해 정의할 때 가장 중요한 것은 basis vector들과 차원을 알아내는 것이다. basis vector들만 안다면 그것들의 선형 조합으로 해당 부분공간을 정의할 수 있기 때문이다. 위의 예제의 결과를 표1에 정리해보았다. 


표1. 예제로 사용한 행렬A의 네가지 부분공간들의 차원과 basis


이것을 일반화하면 아래와 같이 된다(표2).


표2. 4가지 대표적인 부분공간에 대한 설명.


이 네 가지 부분공간은 선형대수학에서 참 중요한 개념이니 꼭 이해하고 넘어가야 한다. 


여기까지 읽으시느라 수고하셨습니다. 끝까지 천천히 읽어왔다면 분명히 얻고 가시는 것이 있을 것이라고 생각합니다. 이해가 안되시거나, 혹시 잘못된 부분 있으면 꼭 말씀해주세요. 여전히 부족한 글이지만, 누군가에게 도움이 되길 소망하며 글을 마칩니다. 



<참고 자료>

[1] Gilbert Strang, Linear algebra and its applications, 4판, p. 102-110.

 

Posted by 톈진난만

댓글을 달아 주세요

  1. ㅁㄴㅇㄹ 2018.03.15 11:06 신고  댓글주소  수정/삭제  댓글쓰기

    자세한 설명 감사합니다.

    그런데 nullspace 설명 가장 처음에
    'column space는 nullspace와 아예 다른 개념으로'
    -> 'nullspace는 column space와 아예 다른 개념으로'
    가 되어야 하지 않을까요..?

    좋은글 감사합니다. 도움 정말 많이 됐네요.



티스토리 툴바