본문 바로가기
선형대수학(Linear Algebra)/행렬과 행렬식

행렬의 계수, 랭크(The Rank of matrix)

by Gosamy 2020. 11. 29.
반응형

어떤 한 행렬의 여러가지 특성을 보여주는 지표로서 '랭크(rank)'는 단언컨데 가장 막강한 위력을 발휘합니다. 행렬의 랭크를 알면 행과 열의 독립성, 행공간의 차원, 차원정리, 가역성, 기본행연산 등등에 관한 내용을 완벽히 파악할 수 있습니다. 랭크는 몇몇 전공서적에서는 행렬의 '계수'라 번역해 두었는데, 혼동의 여지가 있으니 본 블로그에서는 그렇게 쓰지 않을 것입니다. 오늘은 랭크를 구하는 방법을 알아볼 것인데, 랭크는 피벗을 설명했을 때 처럼, 랭크 역시 한 줄의 정의로는 개념에 대한 정확한 체득이 어렵고 정의가 다양하기 때문에, 기초부터 천천히 그 뜻을 헤아려 봅시다.


1. 랭크의 정의(Definition of Rank)

 

1) 행과 열의 기본적 특성으로 정의

랭크에 대한 정의는 크게 4가지로 분류할 수 있습니다. 2개는 선형변환(Linear transform)과 관련된 정의이고 나머지 2개는 행렬과 관련된 것으로 생각하면 될 것 같습니다. 선형변환에 대해서는 아직 블로그에서 다룬 적이 없어서, 이에 대한 2가지 정리는 본 글의 마지막에서 간단히 언급하겠습니다. 참고로 선형변환을 곁들어 정의한 랭크의 뜻이 더 어렵습니다. 우리가 할 것은 순수 행렬에 관한 지식으로 랭크를 정의하는 것이고, 그 내용은 다음과 같습니다.

 

[랭크의 정의]

행렬 $A$의 '랭크(rank)'는 $\mathrm{rank}(A)$ 로 표기하고 다음이 가리키는 것과 같다.


① 행렬의 일차독립인 행 또는 열의 최대 개수

② 행렬 $A$의 pivots 의 개수

③ 행렬의 랭크(rank)는 그 행렬의 열벡터들에 의해 생성된 벡터공간의 차원(dimension)이다.

 

①은 행렬의 랭크를 구할 때 가장 많이 애용하는 방법입니다. $m \times n$ 행렬은 $m$개의 행과 $n$개의 열이 있습니다. 행렬의 랭크는 $m$개의 행 중에서 일차독립인 행의 최대 개수 또는 $n$개의 열 중 일차독립인 열의 최대 개수와 같습니다. 모든 열이 서로 일차독립이라면, 행렬의 랭크는 $n$이 됩니다. 모든 행이 서로 일차독립이라면, 행렬의 랭크는 $m$이 됩니다. 아니, 그렇다면 $m \times n$ 행렬에서 모든 행끼리, 모든 열끼리 서로 일차독립이면 어떻게 되는지 궁금하지 않나요? 결론부터 말하지만 그럴 일은 없습니다. 행 관점에서 보든, 열 관점에서 보든 항상 최대 일차독립인 행 또는 열의 개수는 한 행렬에서 동일하게 나옵니다. 이 특징은 좀 더 전문적인 말로 '한 행렬의 열공간의 차원과 행공간의 차원은 같다'고 표현합니다.

반면 ②를 보면 한 행렬의 랭크는 그 행렬의 피벗의 개수라고 했습니다. 피벗을 구하는 방법은 전 포스팅에서 다루었었고 그 원리는 승수(multipler)라는 것을 곱하여 미지수를 소거해 계수행렬을 상삼각행렬로 바꾸는 것이었습니다. 때때로 소거를 진행했을 때 부정이나 불능이 발생하면 피벗이 있어야 할 자리에 0이 생기고 피벗을 구할 수 없게 되었습니다. 부정이나 불능이 아니라면, 소거법을 사용해 미지수의 개수만큼 피벗을 구할 수 있었지요. 그러나, 이 방법은 종종 ①에 비해서는 복잡한 경우가 있습니다. (예제 참조) 그리고 $\mathrm{pivot}$ 을 구하는 주된 까닭은, 랭크를 찾기 위해서도 있지만 행렬의 가역성이나 연립일차방정식의 해를 구하는 등의 상황을 만나기 때문이기에, ②는 '②를 써서 랭크를 구하세요!' 때문이 아니라 '만약 어떤 행렬의 $\mathrm{pivot}$ 개수를 알고 있다면, 그것은 랭크와도 같아요' 를 써먹으라는 의도에서 알려드리는 것임을 꼭꼭 명심하시기 바랍니다.

또한 벡터공간에 대한 글에서, 차원을 언급한 적이 있습니다. 서로 독립인 $n$개의 벡터는 선형결합을 통해 $n$차원의 모든 점을 나타낼 수 있었다고 하였지요. 이 원리를 이용하면, 행렬의 랭크를 ③처럼 규정할 수도 있습니다.


몇가지 행렬들로 예제를 풀어봅시다.

 

예제 1) 행렬 $A$의 랭크를 구하여라.

 

$$ A=\begin{pmatrix}
1 & 2 & 1 &1 \\ 
1 &1  & -1 & 1
\end{pmatrix}$$

 

$n$차 정사각행렬이 아니라면, 피벗에 관한 포스팅에서 설명한 방법으로 $A$를 피벗만 남긴 상삼각행렬 꼴로 바꿀 수가 없겠지요. 그래서, 굳이 피벗보다는 행이나 열들의 독립, 종속관계를 파악하는 로 접근하는 것이 수월합니다. $2 \times 4$ 행렬인데, 1열과 4열이 이미 같으니 열 관점에서 보면, 1열과 4열은 같고 3열은 이 두 열과 종속입니다. $(1,1)$과 $(1,-1)$은 종속인 벡터지요. 그 뒤 2열은 1,3열이 만든 공간 안에 들어오므로 $A$의 독립인 최대 열의 개수는 2이므로 $\mathrm{rank}(A)=2$ 입니다.

답을 구하기는 했지만 행 관점에서도 똑같이 랭크가 구해지는지 봅시다. 1행과 2행은 독립일까요? 맞습니다. 이것을 어떻게 확인할까요? 사실 쉽게 가는 방법은 1열과 4열은 이미 같으니 1행과 2행에서 각각 2,3열만 조사하면 됩니다. 즉 $(2,1)$과 $(1,-1)$은 일직선에 있지 않으니 독립이므로, 1행과 2행은 독립입니다. 이 원리가 이해가지 않는다면 2,3차원이면 몰라도 4차원 벡터는 그림을 그릴 수는 없으니까 독립과 종속의 정의대로 가야 합니다. 어떤 상수 $a,b$에 대하여 $a(1,2,1,1)+b(1,1,-1,1)=0$ 이 성립한다면 $a+b=0\;,\;2a+b=0\;,\;a-b=0$ 이어야 하므로, 이를 만족하는 유일해는 $a=b=0$ 이기 때문에 행 관점에서 두 벡터가 독립이라 $\mathrm{rank}(A)=2$ 가 됩니다.


예제 2) 행렬 $A=\begin{pmatrix}
5 & 6 &1  &2 \\ 
5 & 7 & 1 & 4\\ 
5 & 8 & 1 & 7
\end{pmatrix}$ 의 랭크를 구하여라.

 

어떤 방법을 쓸지 고민해야 하는데, 1열과 3열을 딱 보니 서로 종속이므로 독립인 최대 열의 개수를 찾는게 좋아 보입니다. 2열의 $(6,7,8)$ 벡터와 4열의 $(2,4,7)$이 $(1,1,1)$과 같은 방향에 놓여 있지 않음을 알 수 있습니다. 이는 계수를 설정해 벡터의 종속 및 독립성 판단을 하면 알 수 있습니다. 그리하여 $A$의 독립인 최대 열 개수가 3이라 판단하고 $\mathrm{rank}(A)=3$ 입니다.


예제 3) 행렬 $B$의 랭크를 구하여라.

 

$$B=\begin{pmatrix}
1 &4 \\ 
-3 & -12
\end{pmatrix}$$

 

 

$2 \times 2$ 행렬은 랭크를 구하기 쉽습니다. 2차원 벡터 두개만 좌표평면에 그려보면 바로 독립성을 알 수 있기 때문이죠. 행 관점에서 보면 $(1,4)$를 $-3$배하면 2행 $(-3,-12)$가 얻어지니 두 벡터는 종속입니다. 열 관점에서는 1열 $(1,-3)$을 $4$배 하면 $(4,-12)$가 되니 역시 종속입니다. 따라서 $\mathrm{rank}(B)=1$ 입니다. 

 

추가로 ②의 방법을 사용해 pivot 의 개수를 구해봅시다. 1개가 나와야 정답입니다. 2행의 1열 자리를 0으로 바꿔 상삼각행렬을 만드는 것이 목표겠지요? 1행에 $-(-3)/1=3$을 곱하고 두 행을 더해 2행을 대체합니다. 대체된 2행은 $0y$가 생성되었으니, 2번째 $\mathrm{pivot}$ 은 존재하지 않습니다. 행렬 $B$의 $\mathrm{pivot}$ 개수는 $1$이므로 랭크도 $1$입니다.

$$B'=\begin{pmatrix}
1 &4 \\ 
0 & 0
\end{pmatrix}$$

 


예제 4) 아래 연립방정식에서 계수행렬의 랭크를 구하여라.

 

$$ \left\{\begin{matrix}
x-2y=1\\ 
3x+2y=11
\end{matrix}\right. $$

 

2열을 딱 보니, 부호만 다르므로 열 관점으로 보는 것이 좋습니다. $(1,3)$과 $(-2,2)$는 일직선에 놓여있지 않으므로 두 벡터는 독립이라, 계수행렬의 랭크는 2입니다.

 

 

2) 선형변환으로 정의

 

선형변환에 관한 내용도 포스팅을 해 두었으니 카테고리에서 찾으시면 됩니다. 행렬과 선형변환은 동형(isomorphic)이므로 랭크는 선형변환으로도 정의할 수 있습니다.

 

벡터공간 $V,W$ 와 선형변환 $T:V\rightarrow W$ 에 대하여 $T$ 의 상(image, range) $R(T)$ 의 차원을 랭크(rank)라 하고, $\mathrm{rank}(T)$ 라 표기한다. 

행렬 $A\in M_{m,n}(F)$ 에 대하여 $A$ 의 랭크(rank)는 선형변환 $L_A:F^n \rightarrow F^m$ 의 랭크로 정의하고 $\mathrm{rank}(A)$ 로 표기한다.


2. 랭크에 관한 중요한 정리

 

1) 랭크의 전치, 행공간과 열공간

 

정리($L.A$) 2.1

임의의 $A\in M_{m.n}(F)$ 에 대하여 행렬 $A$의 랭크(rank)는 $A$의 행랭크(=열랭크)로 정의되고, 다음이 항상 성립한다. 
$$\mathrm{rank}(A)=\mathrm{dim}(R(A))=\mathrm{dim}(C(A))=\mathrm{rank}(A^T)$$

 

$R(A)$와 $C(A)$는 각각 행공간과 열공간입니다. 이는 행렬의 행벡터와 열벡터들이 선형결합을 통해 만든 벡터공간에 해당합니다. 그런데 임의의 행렬에서 랭크를 구할 땐 선형독립인 행 또는 열의 최대 개수를 세게 되는데, 행을 선택하든, 열을 선택하든 그 결과가 항상 똑같기 때문에(위 예제들에서 설명했죠) 행벡터로 선형결합을 만들던, 열벡터로 선형결합을 만들던 생성되는 도형도 같고, 도형의 차원도 당연히 같습니다.

고로 행공간의 차원(=행랭크=행계수)과 열공간의 차원(=열랭크=열계수)는 항상 같으며 이 값을 행렬의 랭크(rank)로 정의하기도 합니다. 행과 열 둘 중 무엇을 선택하든 행렬의 랭크가 같으니, 임의의 행렬 행렬 $A\in M_{m,n}(F)$의 전치행렬 $A^T$의 랭크 역시 행렬 $A$의 랭크와 똑같습니다. 이것은 매우 중요한 랭크의 성질입니다.

 

 

2) 계수-퇴화차수 정리(The rank-nullity Theorem) = 차원정리(dimension Theorem)

원래 이 정리는 선형변환에서 즐겨 쓰는 정리인데, 지금으로선 까마득히 먼 미래에 설명하겠지만, 선형변환과 행렬은 '동형(isomorphic)'의 관계에 놓여있습니다. 이것은 동치(equivalent)라 생각하면 됩니다. 뭐랄까... 자연현상을 수식으로 써서 표현할 수 있을 때, 그 둘은 동치라고 하지 않습니까? 그런 관계입니다. 입고 있는 옷만 다른데 같은 사람인.. 그런걸 동형이라고 합니다. 외형은 같지만 저쪽(선형변환)에서 이쪽(행렬)로 자유롭게 왔다 갔다 할 수 있는.. 그런 관계를 말합니다. 그리하여, 행렬에서도 이 정리는

 

정리($L.A$) 2.2

벡터공간 $V,W$ 와 선형변환 $T:V\rightarrow W$ 에 대하여 $V$의 차원이 $n$으로 유한차원이면 다음이 성립한다. 

$$\mathrm{rank}(T)+\mathrm{nullity}(T)=\mathrm{dim}(V)\;\;\Rightarrow\;\; r + (n-r) = n$$

 

으로 성립합니다. $\mathrm{nullity}(A)$는 행렬 $A$의 영공간의 차원입니다. 이 정리에 대한 자세한 설명은 영공간을 설명하면서 진행할 것입니다. 이 정리는 주로 정사각행렬이 아닌 행렬의 연립방정식의 해를 구할 때 이 정리가 매우 요긴하게 쓰입니다.


3. 특이한 행렬의 랭크

 

수학이나 공학, 과학에선 대부분 정사각행렬을 활용하고 가역성에 대한 논의 역시 정사각행렬에 대해서 합니다. 상대적으로 행벡터나 열벡터, 직사각형 행렬은 드물게 등장하지만 그래도 연립방정식 이론에선 이들이 중요하기에 랭크를 찾는 방법을 연구해 봅시다.

 

1) 직사각형 행렬

 

직사각형 행렬은 행의 개수와 열의 개수가 일치하지 않아 정사각행렬은 아닌 직사각형 모양의 행렬을 말합니다. 이것에 대해서는 랭크를 구할 때 독립인 행 또는 열의 최대 개수를 세는 방법으로 가도 되고, 소거법을 써서 pivot의 개수를 세는 것도 좋습니다. 예제 1), 예제 2)에서 이미 연습을 한 바 있습니다.

 

2) 행벡터와 열벡터

 

행벡터와 열벡터의 경우, 영행렬 즉 모든 성분이 0이 아니라면 랭크는 $1$입니다. 예컨대 $m$개의 행을 가진 열벡터 $C$에 대하여, $m$개의 성분 중 $k<m$개가 $0$이라고 해봅시다. 그러면 $0$이 아닌 $m-k$개의 성분은 그냥 숫자 하나기 때문에, 이들 중 아무 숫자나 선택한 뒤 스칼라 배를 하면 $m-k$개의 상수들을 다 만들 수 있습니다. 즉 0이 아닌 성분들끼리는 전부 다 선형종속이라는 뜻이죠. 따라서 경우의 수는 $\mathrm{rank}(C)=1$이거나 $\mathrm{rank}(C)=0$인 것이며, 후자는 $C=O$ 로 영행렬일 때를 말합니다.

 

행벡터도 마찬가지입니다. 행벡터 $R$이 $n$개의 열을 가진다고 하였을 때 0이 아닌 성분이 적어도 1개 존재하면 $rank(R)=1$이고 모든 성분이 0이면 $\mathrm{rank}(R)=0$ 입니다.


예제 5) 아래 모든 행렬들에 대해서, $\mathrm{rank}(D)=\mathrm{rank}(E)=\mathrm{rank}(F)=\mathrm{rank}(G)=1$ 입니다.

$$D=\begin{bmatrix}
2\\ 
0\\ 
0\\ 
3
\end{bmatrix}\;,\;E=\begin{bmatrix}
0 &4  &1 
\end{bmatrix}\;,\;F=\begin{bmatrix}
-1
\end{bmatrix}\;,\;G=\begin{bmatrix}
0 & 4 &-1 \\ 
0 & 12 &-3 
\end{bmatrix}$$

 

[참고문헌]

Linear Algebra : S.Friedberg, A.Insel, L.Spence, 5e, PEARSON

댓글