기본연산과 랭크
임의의 행렬에 기본행(열)연산을 적용한 행렬의 랭크는 원래 행렬의 랭크와 동일하다. 따라서 기본행(열)연산을 통해 랭크를 구하기 쉬운 꼴로 바꿀 수 있다면 원래 행렬의 랭크를 더 쉽게 구할 수 있다.
가우스-조던 소거법
랭크가 r인 m×n 행렬 A에 대해서, r≤m,r≤n이 성립한다.
또한 기본행(열)연산을 유한 번 사용해서 A를 다음과 같은 꼴로 바꿀 수 있다.
D=(IrO2O1O3)
이 때 i≤r이면 Dii=1, 그렇지 않으면 Dij=0이고 O1,O2,O3은 영행렬이다.
증명)
- A=O면 r=0이다. 따라서 D=A이고, 증명이 끝난다.
- A=O일 때 r=rank(A)이면 r>0이다.
A의 행의 개수 m에 대한 수학적 귀납법을 이용하자.
m=1일 때, 두 열을 교환하는 열연산과 한 열에 스칼라를 곱하는 열연산을 각각 최대 한번씩 사용해서 첫 열의 원소를 1로 만들 수 있다. 그 후 1열의 원소에 스칼라를 곱해 다른 열에 더하는 연산을 최대 n−1번 해서 d=(1 0 ... 0) 꼴로 만들 수 있다.
이 때 D의 일차독립인 열은 하나이기 때문에 Rank(A)=Rank(D)=1이다.
어떤 자연수 m>1에 대해 최대 m−1개의 행을 가지는 임의의 행렬에서 이 정리가 성립한다고 가정하자. 그렇가면 m개의 행을 가지는 임의의 행렬에 대해서도 이 정리가 성립함을 보이면 증명은 끝난다.
A가 m×n 행렬이라고 가정하자. n=1인 경우, 위에서와 동일하지만 이번에는 행연산을 이용해서 D=⎝⎜⎜⎜⎜⎛10⋮0⎠⎟⎟⎟⎟⎞ 꼴로 만들 수 있다.
이 경우에도 원래 행렬인 A의 일차독립인 열의 개수 = D의 일차독립인 열의 개수 = 1이므로 Rank(A)=Rank(D)=1이다.
n>1일 때, A=O이므로 어떤 i,j에 대해 Aij=0이다. 따라서 행을 교환하는 행연산과 열을 교환하는 열연산을 각각 최대 한번씩 사용해서 1행 1열의 값이 0이 아니도록 만들 수 있다. 그 후 1행을 1행 1열의 값으로 나누는 행연산을 진행하면, 1행 1열의 값은 1이 된다.
이제 1행 1열을 이용해 행연산을 최대 m−1번, 열연산을 최대 n−1번 해서 1행과 1열 각각에서 1행 1열은 제외한 모든 성분을 0으로 만들 수 있다. 그 결과는 다음 행렬과 같다.

이 때 B′의 랭크는 r−1이고, 귀납법의 가정에 의해 r−1≤m−1이고 r−1≤n−1이므로 r≤m, r≤n이다.
귀납적으로 B′에도 같은 작업을 반복해서 첫 r개의 대각성분이 1이 될 때까지 반복하자. 그 결과로 다음과 같은 행렬 D를 완성할 수 있다.

따라서 A에 유한번의 행연산과 열연산을 이용해서 D를 완성할 수 있고, D는 첫 r개의 대각성분이 1이고 그외 성분은 모두 0인 행렬이다. 따라서 증명이 완료된다.
기본행렬과 가우스 조던 소거법
랭크가 r인 m×n 행렬 A에 대해 다음을 만족하는 m×m 가역행렬 B와 n×n 가역행렬 C가 존재한다.
D=[IrO2O1O3]=BAC
증명)
앞의 정리에 따르면 A에 유한번의 행연산과 열연산을 적용시켜 D를 구할 수 있다. 그런데 각각의 행연산과 열연산은 하나의 기본행렬에 대응된다. 따라서 각 행연산의 기본행렬을 Ei, 열연산의 기본행렬을 Gj에 대응하면 다음을 만족한다.
B=EkEk−1...E1, C=GpGp−1...G1⇒D=BAC
그리고 모든 기본행렬은 가역이므로 기본행렬의 곱들도 가역이다. 따라서 B와 C는 가역행렬이다.
m×n 행렬 A에 대해 다음이 성립한다.
- rank(At)=rank(A)
- 임의의 행렬의 랭크는 일차독립인 행의 최대 개수와 같다.
- 임의의 행렬의 행과 열은 차원이 같은 부분공간을 생성한다. 차원은 행렬의 랭크와 같다.
증명)
1.
위의 증명에 따르면 어떤 기본행렬들의 곱 B, C가 존재해서 D=BAC를 만족한다. 이 때 rank(A)=rank(D)이고, 첫 rank(D)개의 대각성분은 1이고 나머지 성분은 0이다.
랭크는 일차독립인 열벡터의 최대 개수인데, D의 랭크는 대각성분 중 1의 개수와 동일하다.
이제 Dt의 경우를 살펴보자. Dt의 경우도 마찬가지로 대각성분의 위치는 변하지 않고, 나머지 성분은 모두 0이므로 Dt의 랭크는 D와 동일하다. 따라서 rank(A)=rank(D)=rank(Dt)를 얻는다.
그리고 rank(Dt)=rank(CtAtBt)에서 Ct와 Bt가 가역행렬이므로 rank(Dt)=rank(At)이다. 따라서 rank(A)=rank(At)다.
2.
rank(A)=rank(At)이므로 A의 일차 독립인 최대 열의 개수와 At의 일차 독립인 최대 열의 개수는 동일하다.
그런데 At의 열벡터의 배치는 A의 행벡터의 배치와 동일하다. 따라서 At의 일차 독립인 열벡터들의 최대 개수는 A에서 일차 독립인 행벡터들의 최대 개수와 동일하다.
따라서 Rank(At)=Rank(A)=A에서 일차 독립인 행벡터의 최대 개수이다.
3.
행벡터들의 집합을 R이라고 하자. 일차종속인 벡터들을 R에서 제거하면 집합 R′⊂R을 만들 수 있다. 이 때 span(R)=span(R′)이다. 그리고 R′은 모두 일차독립인 벡터들이므로 R′은 span(R)의 기저가 된다.
마찬가지로 열벡터들에 대해서도 일반성을 잃지 않고 위 과정을 적용하면 열벡터들의 집합 C에 대해 일차종속인 벡터들을 모두 제거한 C′⊂C가 span(C)의 기저가 됨을 알 수 있다.
그리고 2.에 의해 행렬 A에서 일차독립인 행벡터와 열벡터의 최대 개수는 행렬의 랭크로 동일하다. 따라서 R′의 벡터 개수와 C′의 벡터 개수는 동일하고, span(R)과 span(C)의 차원도 행렬의 랭크로 동일하게 된다.
행렬 곱의 랭크와 행렬의 랭크
유한차원 벡터공간 V,W,Z 사이에 정의된 선형변환 T:V→W,U:W→Z와 행렬곱 AB를 정의하는 두 행렬 A,B에 대해 다음이 성립한다.
1.rank(UT)≤rank(U)
2.rank(UT)≤rank(T)
3.rank(AB)≤rank(A)
4.rank(AB)≤rank(B)
증명)
1.
T(V)⊂W⇒U(T(V)) is subspace of U(W)⇒dim(U(T(V))≤dim(U(W))⇒dim(R(UT))≤dim(R(U))⇒Rank(UT)≤Rank(U)
2.
벡터공간 T(V)의 기저를 β={v1,...,vk}라고 하자. U(β)={U(v1),...,U(vk)}는 U(T(V))의 생성집합이다. 따라서 U(T(V))의 기저의 크기는 k이하가 된다. 만약 s≥k가 U(T(V))의 기저의 크기가 된다면 k개의 벡터로는 U(T(V))를 생성할 수 없기 때문이다.
따라서 dim(U(T(V))≤k이고, dim(U(T(V))≤dim(T(V))⇒Rank(UT)≤Rank(T)가 성립한다.
3.4.
3.과 4.는 위에서 증명한 1.과 2.의 구체적인 응용이다.
Rank(AB)=Rank(LAB)=Rank(LALB)
라는 성질을 이용하고, 1.과 2.를 이용하면 3.과 4.를 바로 증명할 수 있다.