
행공간, 열공간, 영공간과 계수
2020, Aug 26
- 이번 글에서는
행공간 (row space)
,열공간 (column space)
,영공간 (null space)
에 대하여 알아보도록 하겠습니다.
행공간(Row Space), 열공간(Column Space), 영공간(Null Space)의 정의
- 행공간 (Row Space)는 m×nm×n 행렬 AA 의 행벡터 A1,A2,...,AmA1,A2,...,Am 에 의해 생성된 RnRn 의 부분공간 Row(A)=Span(A1,A2,...,Am)Row(A)=Span(A1,A2,...,Am) 을 의미합니다.
- 위 표기에서 RnRn 은 각각의 행벡터를 구성하는 성분은 nn 개로 이루어져 있기 때문에 RnRn 의 부분공간으로 표기합니다.
- 행공간의 기저는 사다리꼴 행렬에서 피봇이 존재하는 행을 선택합니다.
- 열공간 (Column Space)는 m×nm×n 행렬 AA 의 열벡터 A(1),A(2),A(1),...,A(n)A(1),A(2),A(1),...,A(n) 에 의해 생성된 RmRm 의 부분공간 Col(A)=Span(A(1),A(2),...,A(n))Col(A)=Span(A(1),A(2),...,A(n)) 을 의미합니다.
- 열공간의 기저는 행렬 AA 에서
피봇
이 존재하는 열을 선택합니다.
- 행공간과 열공간에서 선택되는 기저가 행공간에서는 사다리꼴 행렬에서 선택하고 열공간에서는 기존 행렬 AA 에서 선택하는 지는 본 글에서 설명드리곘습니다.
- 영공간 (Null Space)는 m×nm×n 행렬 AA 를 계수행렬로 가지는 제차연립방정식( Av=0Av=0 )의 해집합으로 Null(A)={v∈Rn|Av=0}Null(A)={v∈Rn|Av=0} 으로 표기합니다.
- 영공간의 기저는 연립방정식을 풀어야 구할 수 있습니다.
- 영공간의
해집합
이기 때문에 해가 유일하게 1개일 수도 있고 해가 없을 수도 있으며 무한히 많은 해를 가질 수도 있습니다.
- 공간 (Space)의 의미는 벡터 공간 (Vector Space)의 의미를 가지고 행공간과 열공간은
Span
을 이용하여 표현하기 때문에 부분 공간이 됨을 만족합니다. - 하지만 영공간의 경우 단순히 제차연립방정식의 해를 만족하는 집합인데 이 공간이 과연 벡터 공간의 성질을 만족하는 지는 별도 확인이 필요합니다. 이 내용을 먼저 확인해 보도록 하겠습니다.
- (정리 12) m×nm×n 행렬 AA 의 영공간은 RnRn 의 부분공간이다.
- 아래 3가지 내용을 차례로 증명하면 위 정리 12를 증명할 수 있습니다. 아래 3가지 내용은 벡터 공간을 구성하기 위한 조건에 해당합니다.
-
1) 0∈Null(A)0∈Null(A)
-
2) u,v∈Null(A)⇒u+v∈Null(A)u,v∈Null(A)⇒u+v∈Null(A)
-
3) u∈Null(A),c∈R⇒cu∈Null(A)u∈Null(A),c∈R⇒cu∈Null(A)
- 위 3가지 내용을 차례로 증면하면 아래와 같습니다.
-
1) A0=0A0=0 이므로 0∈Null(A)0∈Null(A) 을 만족합니다.
-
2) u,v∈Null(A)u,v∈Null(A) 이면 Au=0Au=0 이고 Av=0Av=0 이므로 A(u+v)=Au+Av=0+0=0A(u+v)=Au+Av=0+0=0 입니다.
-
3) u∈Null(A)u∈Null(A) 와 c∈Rc∈R 에 대하여 Au=0Au=0 이므로 A(cu)=c(Au)=c0=0A(cu)=c(Au)=c0=0 입니다. 따라서 cu∈Null(A)cu∈Null(A) 입니다.
- 그러면 행공간, 열공간, 영공간에 대하여 좀 더 자세히 다루어 보도록 하겠습니다.
- 앞에서 정의한 행공간은 Row(A)=Span(A1,A2,...,Am)Row(A)=Span(A1,A2,...,Am) 형태를 따르고 만약 행벡터 A1,A2,...,AmA1,A2,...,Am 가 모두 일차 독립이라면 모두 기저가 되고 일차 종속인 행벡터가 있다면
Row Echelon Form
형태의 사다리꼴 행렬 ( RR )을 만들어 정리할 수 있습니다. - 이 때, 사다리꼴 행렬에서 피봇이 존재하는 행을 선택하면 기저에 해당하는 행공간을 구성할 수 있습니다. 주의할 점은 행공간의 기저는 AA 행렬 또는 RR 행렬에서 모두 선택할 수 있지만,
Row Echelon Form
형태로 만들 시 행 간의 교환이 발생하면 RR 에서 구한 기저가 AA 에서 구한 기저와 다를 수 있기 때문입니다. - 기본행 연산을 이용하여 행렬의 변화가 발생할 때, 행공간은 변하지 않는 다는 성질을 이용하면 행공간은 사다리꼴 행렬에서 쉽게 구할 수 있습니다. 물론 원본 행렬 AA 에서 행공간을 가져올 수 있으나 교환에 대한 추적을 정확히 해야 하는 불편함이 있습니다.
- 반면 열공간은 사다리꼴행렬 RR 에서 얻은 기저를 직접적으로 사용하지 않고 사다리꼴을 통해 확인할 수 있는 열공간의 기저의 위치를 확인한 후 원본 행렬 AA 에서 기저의 위치에 해당하는 열을 가져와서 사용합니다.
- 이와 같은 방법을 사용하는 이유는 기본행 연산을 통해 얻은 사다리꼴 행렬에서 열의 정보는 보존 되지 않기 때문입니다.
- 아래 예제를 살펴보도록 하겠습니다.
- A=[1−32−591]A=[1−32−591] 일 때, 영공간을 구해보도록 하겠습니다.
- A=[1−32−591]A=[1−32−591]
- ⇒[1−320−6−11]⇒[1−320−6−11]
- 위 사다라꼴 행렬 식에서
pivot
이 생긴 열은 선행 변수라고 하며pivot
이 없는 열은 자유 변수라고 합니다. - 1열과 2열은 각각 1, -6 이라는 피벗이 있기 때문에 선행 변수가 존재하며 3열은 피벗이 없기 때문에 자유 변수가 존재합니다.
- 따라서 위 사다리꼴 행렬 에서 첫번째 행이 행공간이 되고 원본 행렬에서 첫번째 열이 열공간이 됩니다.
- Row(A)=Span([1−32])Row(A)=Span([1−32])
- Col(A)=Span([1−5])Col(A)=Span([1−5])
- 아래 쉬운 예제를 통하여 먼저
영공간
에 대한 이해를 살펴보도록 하겠습니다.
- [1−320−6−9][x1x2x3]=[000][1−320−6−9]⎡⎢⎣x1x2x3⎤⎥⎦=⎡⎢⎣000⎤⎥⎦(1)
- x3=ax3=a(2)
- −6x2−9x3=0−6x2−9x3=0(3)
- x2=−32ax2=−32a(4)
- x1−3x2−2x3=0x1−3x2−2x3=0(5)
- x1=−92a+2a=−52ax1=−92a+2a=−52a(6)
- Null(A)={[−52a−32aa]|a∈R}Null(A)=⎧⎪ ⎪⎨⎪ ⎪⎩⎡⎢ ⎢⎣−52a−32aa⎤⎥ ⎥⎦|a∈R⎫⎪ ⎪⎬⎪ ⎪⎭(7)
- ={−a2[53−2]|a∈R}=⎧⎪⎨⎪⎩−a2⎡⎢⎣53−2⎤⎥⎦|a∈R⎫⎪⎬⎪⎭(8)
- 영공간을 식 (8) 과 같이 정리할 수 있고 Av=0Av=0 의 해를 얻은 영공간은 독립이기 때문에 다음과 같은
Span
형태로 나타낼 수 있습니다.
- Null(A)=Span([53−2])Null(A)=Span(⎡⎢⎣53−2⎤⎥⎦)(9)
- 조금 더 복잡한 예제를 통하여 행공간, 열공간, 영공간을 구해보도록 하겠습니다.
- A=[−36−11−71−223−12−458−4]A=⎡⎢⎣−36−11−71−223−12−458−4⎤⎥⎦(10)
- 위 행렬을 사다리꼴로 만들어 보도록 하곘습니다.
- ⇒[1−223−1−36−11−72−458−4]
- ⇒[1−223−100510−100012−2]
- ⇒[1−223−100510−100012−2]
- ⇒[1−223−10012−200000]
- 따라서
행공간
의 기저는 다음과 같습니다.
- Row(A)=Span([1,−2,2,3,−1],[0,0,1,2,−2])
열공간
의 기저는 다음과 같습니다.
- Col(A)=Span([−312],[−125])
영공간
의 기저는 다음과 같습니다.
- x2=a,x4=b,x5=c
- x3+2x4−2x5=0
- x1−2x2+2x3+3x4−x5=0
- 먼저 식 (18)을 이용하여 전개해 보겠습니다.
- 다음으로 식 (19)를 이용하여 전개해 보겠습니다.
- x1−2x2+2x3+3x4−x5=x1−2a+2(−2b+2c)+3b−c=0
- x1−2a−4b+4c+3b−c=0
- x1=2a+b−3c
- [x1x2x3x4x5]=a[21000]+b[10−210]+c[−30201]
- 따라서 영공간의 기저는 다음과 같습니다.
- Null(A)=Span{[21000],[10−210],[−30201]}
계수(Rank)의 정의
계수 (Rank)
는 m×n 행렬 A 에 대하여 열공간의 차원을 행렬 A 의 계수라고 합니다. 즉, rank(A)=dim(Col(A)) 가 성립하며 다음 성질을 가집니다.
- ① rank(A) 는 사다리꼴 행렬에서
pivot
의 갯수와 같다. - ② rank(A)+dim(Null(A))=n
- ③ rank(A)=dim(Col(A))=dim(Row(A))
- ② 에서 rank(A) 에서는 선행 변수의 갯수를 구할 수 있고 dim(Null(A)) 에서는 자유 변수의 갯수를 구할 수 있습니다. 이 두가지 변수를 합하면 전체 변수의 갯수를 구할 수 있습니다. 이를
계수 정리
라고 합니다.
- 다음 예제를 통하여
행공간의 기저
,열공간의 기저
,행렬의 계수
,영공간의 기저
를 구해보도록 하겠습니다.
- A=[1402−131215528132520288]
- 위 식 (25)를 사다리꼴 행렬로 변경해 보도록 하겠습니다.
- A⇒[1402−1001−18001−14002−213]
- ⇒[1402−1001−180000−40000−3]
- ⇒[1402−1001−180000−400000]=R
- 식 (28)을 통하여 확인하였을 때,
pivot
은 1, 2, 3 행에 존재하고 1, 3, 5 열에 존재합니다.
행공간의 기저
를 구하기 위하여 식 (28) 의 R 에서 기저를 구하면 다음과 같습니다.
- Row(A)=Span([1402−1],[001−18],[0000−4])
열공간의 기저
는 앞선 설명에 따라 식 (28)의 피벗에 해당하는 열인 1, 3, 5 열을 식 (25)의 A 행렬에서 구합니다.
- Col(A)=Span([1325],[0112],[−1528])
- 따라서
행렬의 계수
는 rank(A)=3 임을 알 수 있습니다.
- 다음으로
영공간의 기저
를 구해보도록 하겠습니다. 행렬의 계수가 3이므로 영공간의 기저는 2개임을 알 수 있습니다.
- 식 (28)의 R 을 이용하여 Rx=0 을 전개하면 다음과 같습니다.
- x1+4x2+2x4−x5=0
- x3−x4+8x5=0
- −4x5=0
- 식 (31), (32), (33) 을 풀면 다음과 같습니다.
- [x1x2x3x4x5]=[−4a−2babb0]
- Null(A)={[x1x2x3x4x5]|[x1=−4a−2bx2=ax3bx4bx50]}={a[−41000]+b[−20110]|a,b∈R}
- 따라서
영공간의 기저
는 다음과 같이 정리 됩니다.
- Null(A)=Span([−41000],[−20110])