가우스-조던 소거법

STATS·2023년 8월 13일

선형대수학

목록 보기
25/28

기본연산과 랭크

임의의 행렬에 기본행(열)연산을 적용한 행렬의 랭크는 원래 행렬의 랭크와 동일하다. 따라서 기본행(열)연산을 통해 랭크를 구하기 쉬운 꼴로 바꿀 수 있다면 원래 행렬의 랭크를 더 쉽게 구할 수 있다.

가우스-조던 소거법

랭크가 rrm×nm \times n 행렬 AA에 대해서, rm,rnr \le m, r \le n이 성립한다.
또한 기본행(열)연산을 유한 번 사용해서 AA를 다음과 같은 꼴로 바꿀 수 있다.

D=(IrO1O2O3)D = \begin{pmatrix} I_r & O_1 \\ O_2 & O_3 \end{pmatrix}

이 때 iri \le r이면 Dii=1D_{ii} = 1, 그렇지 않으면 Dij=0D_{ij} = 0이고 O1,O2,O3O_1, O_2, O_3은 영행렬이다.

증명)

  1. A=OA = Or=0r=0이다. 따라서 D=AD = A이고, 증명이 끝난다.
  2. AOA \neq O일 때 r=rank(A)r = rank(A)이면 r>0r > 0이다.
    AA의 행의 개수 mm에 대한 수학적 귀납법을 이용하자.

m=1m=1일 때, 두 열을 교환하는 열연산과 한 열에 스칼라를 곱하는 열연산을 각각 최대 한번씩 사용해서 첫 열의 원소를 1로 만들 수 있다. 그 후 1열의 원소에 스칼라를 곱해 다른 열에 더하는 연산을 최대 n1n-1번 해서 d=(1 0 ... 0)d = (1 \ 0 \ ... \ 0) 꼴로 만들 수 있다.
이 때 DD의 일차독립인 열은 하나이기 때문에 Rank(A)=Rank(D)=1Rank(A) = Rank(D) = 1이다.

어떤 자연수 m>1m > 1에 대해 최대 m1m-1개의 행을 가지는 임의의 행렬에서 이 정리가 성립한다고 가정하자. 그렇가면 mm개의 행을 가지는 임의의 행렬에 대해서도 이 정리가 성립함을 보이면 증명은 끝난다.

AAm×nm \times n 행렬이라고 가정하자. n=1n=1인 경우, 위에서와 동일하지만 이번에는 행연산을 이용해서 D=(100)D = \begin{pmatrix} 1 \\ 0 \\ \vdots \\ 0 \end{pmatrix} 꼴로 만들 수 있다.
이 경우에도 원래 행렬인 AA의 일차독립인 열의 개수 = DD의 일차독립인 열의 개수 = 1이므로 Rank(A)=Rank(D)=1Rank(A) = Rank(D) = 1이다.

n>1n > 1일 때, AOA\neq O이므로 어떤 i,ji, j에 대해 Aij0A_{ij} \neq 0이다. 따라서 행을 교환하는 행연산과 열을 교환하는 열연산을 각각 최대 한번씩 사용해서 1행 1열의 값이 0이 아니도록 만들 수 있다. 그 후 1행을 1행 1열의 값으로 나누는 행연산을 진행하면, 1행 1열의 값은 1이 된다.

이제 1행 1열을 이용해 행연산을 최대 m1m-1번, 열연산을 최대 n1n-1번 해서 1행과 1열 각각에서 1행 1열은 제외한 모든 성분을 0으로 만들 수 있다. 그 결과는 다음 행렬과 같다.

이 때 BB'의 랭크는 r1r-1이고, 귀납법의 가정에 의해 r1m1r-1 \le m-1이고 r1n1r-1 \le n-1이므로 rmr \le m, rnr \le n이다.

귀납적으로 BB'에도 같은 작업을 반복해서 첫 rr개의 대각성분이 1이 될 때까지 반복하자. 그 결과로 다음과 같은 행렬 DD를 완성할 수 있다.

따라서 AA에 유한번의 행연산과 열연산을 이용해서 DD를 완성할 수 있고, DD는 첫 rr개의 대각성분이 1이고 그외 성분은 모두 0인 행렬이다. 따라서 증명이 완료된다.

기본행렬과 가우스 조던 소거법

랭크가 rrm×nm \times n 행렬 AA에 대해 다음을 만족하는 m×mm \times m 가역행렬 BBn×nn \times n 가역행렬 CC가 존재한다.

D=[IrO1O2O3]=BACD = \left[ \begin{array}{c|c} I_r & O_1 \\ \hline O_2 & O_3 \end{array} \right] =BAC

증명)
앞의 정리에 따르면 AA에 유한번의 행연산과 열연산을 적용시켜 DD를 구할 수 있다. 그런데 각각의 행연산과 열연산은 하나의 기본행렬에 대응된다. 따라서 각 행연산의 기본행렬을 EiE_i, 열연산의 기본행렬을 GjG_j에 대응하면 다음을 만족한다.

B=EkEk1...E1, C=GpGp1...G1D=BACB = E_kE_{k-1}...E_1, \ C = G_pG_{p-1}...G_1 \Rightarrow D = BAC

그리고 모든 기본행렬은 가역이므로 기본행렬의 곱들도 가역이다. 따라서 BBCC는 가역행렬이다.

m×nm \times n 행렬 AA에 대해 다음이 성립한다.

  1. rank(At)=rank(A)rank(A^t) = rank(A)
  2. 임의의 행렬의 랭크는 일차독립인 행의 최대 개수와 같다.
  3. 임의의 행렬의 행과 열은 차원이 같은 부분공간을 생성한다. 차원은 행렬의 랭크와 같다.

증명)
1.
위의 증명에 따르면 어떤 기본행렬들의 곱 BB, CC가 존재해서 D=BACD = BAC를 만족한다. 이 때 rank(A)=rank(D)rank(A) = rank(D)이고, 첫 rank(D)rank(D)개의 대각성분은 1이고 나머지 성분은 0이다.
랭크는 일차독립인 열벡터의 최대 개수인데, DD의 랭크는 대각성분 중 1의 개수와 동일하다.

이제 DtD^t의 경우를 살펴보자. DtD^t의 경우도 마찬가지로 대각성분의 위치는 변하지 않고, 나머지 성분은 모두 0이므로 DtD^t의 랭크는 DD와 동일하다. 따라서 rank(A)=rank(D)=rank(Dt)rank(A) = rank(D) = rank(D^t)를 얻는다.

그리고 rank(Dt)=rank(CtAtBt)rank(D^t) = rank(C^tA^tB^t)에서 CtC^tBtB^t가 가역행렬이므로 rank(Dt)=rank(At)rank(D^t) = rank(A^t)이다. 따라서 rank(A)=rank(At)rank(A) = rank(A^t)다.

2.
rank(A)=rank(At)rank(A) = rank(A^t)이므로 AA의 일차 독립인 최대 열의 개수와 AtA^t의 일차 독립인 최대 열의 개수는 동일하다.

그런데 AtA^t의 열벡터의 배치는 AA의 행벡터의 배치와 동일하다. 따라서 AtA^t의 일차 독립인 열벡터들의 최대 개수는 AA에서 일차 독립인 행벡터들의 최대 개수와 동일하다.

따라서 Rank(At)=Rank(A)=A에서 일차 독립인 행벡터의 최대 개수Rank(A^t) = Rank(A) = \text{A에서 일차 독립인 행벡터의 최대 개수}이다.

3.

행벡터들의 집합을 RR이라고 하자. 일차종속인 벡터들을 RR에서 제거하면 집합 RRR' \subset R을 만들 수 있다. 이 때 span(R)=span(R)span(R) = span(R')이다. 그리고 RR'은 모두 일차독립인 벡터들이므로 RR'span(R)span(R)의 기저가 된다.

마찬가지로 열벡터들에 대해서도 일반성을 잃지 않고 위 과정을 적용하면 열벡터들의 집합 CC에 대해 일차종속인 벡터들을 모두 제거한 CCC' \subset Cspan(C)span(C)의 기저가 됨을 알 수 있다.

그리고 2.에 의해 행렬 AA에서 일차독립인 행벡터와 열벡터의 최대 개수는 행렬의 랭크로 동일하다. 따라서 RR'의 벡터 개수와 CC'의 벡터 개수는 동일하고, span(R)span(R)span(C)span(C)의 차원도 행렬의 랭크로 동일하게 된다.

행렬 곱의 랭크와 행렬의 랭크

유한차원 벡터공간 V,W,ZV, W, Z 사이에 정의된 선형변환 T:VW,U:WZT: V \rightarrow W, U: W \rightarrow Z와 행렬곱 ABAB를 정의하는 두 행렬 A,BA, B에 대해 다음이 성립한다.

1.rank(UT)rank(U)1. rank(UT) \le rank(U)
2.rank(UT)rank(T)2. rank(UT) \le rank(T)
3.rank(AB)rank(A)3. rank(AB) \le rank(A)
4.rank(AB)rank(B)4. rank(AB) \le rank(B)

증명)
1.

T(V)WU(T(V)) is subspace of U(W)dim(U(T(V))dim(U(W))dim(R(UT))dim(R(U))Rank(UT)Rank(U)T(V) \sub W \Rightarrow U(T(V))\text{ is subspace of }U(W) \Rightarrow dim(U(T(V)) \le dim(U(W)) \Rightarrow \\ dim(R(UT)) \le dim(R(U)) \Rightarrow Rank(UT) \le Rank(U)

2.
벡터공간 T(V)T(V)의 기저를 β={v1,...,vk}\beta = \{v_1, ..., v_k\}라고 하자. U(β)={U(v1),...,U(vk)}U(\beta) = \{U(v_1), ..., U(v_k)\}U(T(V))U(T(V))의 생성집합이다. 따라서 U(T(V))U(T(V))의 기저의 크기는 k이하가 된다. 만약 sks \ge kU(T(V))U(T(V))의 기저의 크기가 된다면 k개의 벡터로는 U(T(V))U(T(V))를 생성할 수 없기 때문이다.

따라서 dim(U(T(V))kdim(U(T(V)) \le k이고, dim(U(T(V))dim(T(V))Rank(UT)Rank(T)dim(U(T(V)) \le dim(T(V)) \Rightarrow Rank(UT) \le Rank(T)가 성립한다.

3.4.
3.과 4.는 위에서 증명한 1.과 2.의 구체적인 응용이다.

Rank(AB)=Rank(LAB)=Rank(LALB)Rank(AB) = Rank(L_{AB}) = Rank(L_AL_B)

라는 성질을 이용하고, 1.과 2.를 이용하면 3.과 4.를 바로 증명할 수 있다.

0개의 댓글