Loading [MathJax]/jax/output/CommonHTML/jax.js
본문 바로가기

선형대수

Solving Ax = b: row reduced form R

1. Complete solution of Ax=b

1.1 Ax=b의 해

Ax=b에서 해가 존재할 수도, 존재하지 않을 수도 있다. 해의 존재 여부는 소거법을 통해 확인해야 한다.

■ 그리고 해가 존재한다면, 유일한 해인지 아니면 여러 해가 존재하는지 확인해야 한다.

예를 들어 방정식이 다음과 같을 때,

x1+2x2+2x3+2x4=b12x1+4x2+6x3+8x4=b23x1+6x2+8x3+10x4=b3

■ 이 방정식을 행렬로 바꿔 소거법을 풀기 위해서 계수 행렬에 미지수를 붙여 확대 행렬(augmented matrix)를 만들어 사용한다. (Ab)

- Ax=0에서는 우변이 0이었기 때문에 좌변의 계수만 행렬로 만들어서 풀지만, 우변에 b가 존재하면 확대 행렬을 만들어서 소거를 진행한다.

(Ab)에서 소거를 진행하면,

■ 마지막 방정식은 0=b3b2b1이 된다. 이 조건을 해가 존재하기 위한 조건. 가해(solvability) 조건이라고 한다. 

■ 여기서 가해 조건은 0=b3b2b1b1+b2=b3으로 표현할 수 있다. 이는 계수 행렬 A에서 row1 + row2 = row3이기 때문이다. 

b=[156]T라고 가정하자. 그러면 b1=1, b2=52=3이 되고 b3=651=0이 되므로 가해 조건을 만족한다. 가해 조건을 만족하므로 b는 해를 가질 수 있다.

■ 단, 이 예시의 가해 조건 0=b3b2b1는 일반적인 조건이 아니다. 이 가해 조건은 위의 선형 방정식에 해당되는 가해 조건이다. 

Ax=b가 풀리려면, Ax를 선형 결합으로 보았을 때, 선형 결합의 결과인 bA의 열공간에 속해야 한다.

즉, ① 해가 존재하는 조건(가해 조건)은 b가 행렬 A의 열공간에 존재해야 한다는 것을 의미한다.

위의 말을 행(row)의 관점에서 보면, ② 가해 조건은 행렬 A의 행들의 선형 결합으로 모든 원소가 0인 행을 만든다면, b의 항목들 역시 같은 선형 결합을 적용했을 때 0이 되어야 한다.

행렬 A를 가우스 소거했을 때, 모든 원소가 0인 행이 생긴다는 것은 '서로 독립이 아닌 행(종속 관계를 갖는 행)'이 있음을 의미한다. 

이때, 만약 (Ab)에 대해서도 같은 소거 과정을 적용했을 때 모든 원소가 0인 행 옆에 '0이 아닌 어떤 값'이 남아있다면 ( [000∣≠0] ) 0=c0이 되므로 모순이다. 

그러므로 이런 '모순 행'이 생기지 않으려면 A에 대해 모든 원소가 0인 행을 만들었던 선형 결합이 b에도 똑같이 적용되어 0이 되어야 한다. 이는 가해 조건이 rank(A)=rank(Ab)임을 의미한다. 이것은 결국 bCol(A)에 속한다는 것과 동치이다.

왜냐하면, Col(A)란 행렬 A의 선형 독립인 열벡터들이 만들어내는 선형적인 '모든 조합'을 모아놓은 공간이다. 그리고 rank(A)는 행렬 A선형 독립인 열벡터(또는 행벡터)의 개수이다.

즉, rank(A)A의 열공간 Col(A)의 차원(= A의 열벡터들 중 서로 독립인 벡터의 개수)과 같다.

(Ab)는 행렬 Ab를 하나 더 붙인 확장된 행렬이다. 만약, bA의 선형 결합으로 만들어질 수 없다면(독립 이라면), 다음과 같이 (Ab)에서 b의 랭크가 1만큼 증가한다.

반대로 A의 선형 결합으로 b를 만들 수 있다면, 소거 과정을 통해 rank(A)=rank(Ab)가 성립한다.

여기서 rank(A)=rank(Ab). 즉, A의 선형 결합으로 b를 만들 수 있다는 것은 A의 선형 결합 결과인 bA의 열공간에 존재한다는 것이므로, 가해 조건 ①과 ②가 동치라는 것을 알 수 있다.

이 개념을 동일하게 생각하면, rank(A)<rank(Ab)라는 것은 A의 선형 결합으로 b를 만들 수 없는 것이므로 해가 존재하지 않는다고 할 수 있다.

■ 정리하면 Ax=b에서 rank(A)<rank(Ab)bCol(A)라면 '해가 존재한다', rank(A)<rank(Ab)이면 '해가 존재하지 않는다.'

1.2 Ax=b의 완전해(complete solution)를 찾는 방법

■ 이 예에서 (Ab)의 마지막 방정식이 0 = 0 이므로, 방정식이 해를 가질 것이라 기대할 수 있다.

- 실제로 두 개의 방정식과 네 개의 미지수가 존재하므로, 여러 해가 존재할 것으로 예상할 수 있다.

Ax=b의 완전해를 찾기 위해 먼저 특수 해(particular solution)인 xparticular, xp를 찾아야 한다.

■ 이 예에서는 여러 개의 해가 존재하므로, 특수 해인 xp를 찾는 방법은 다양할 수 있다.

■ 이런 경우, 가장 간단한 방법은 모든 자유 변수(free variable)을 0으로 설정하는 것이다.

- free variable은 어떤 값도 될 수 있으므로 가장 간단한 설정은 모두 0으로 설정하는 것이다.

■ 그다음, 피벗 변수(pivot variable)에 대해 Ax=b를 푼다.

■ 이 예에서 x2,x4free variable이므로 x2=x4=0으로 설정하면, 첫 번째 방정식은 다음과 같이 x12x3만 남으며, 이는 b1=1과 같아야 한다. 그리고 두 번째 방정식은 2x3만 남고, 2x3b2=3과 같아야 한다.

x3=32이고 x1=2이므로 특수 해 xp는 벡터 [2,0,32,0]T가 된다.

■ 이제 나머지 해들을 찾아야 한다. 이 나머지 해들은 영공간에서 찾는다. 이 해를 nullspace solution xnullspace, xn이라고 한다. 

즉, Ax=b의 완전해 x는  x=xp+xn이며, 이는 Ax=b의 완전(전체) 해가 특수 해와 영공간에 속하는 모든 벡터의 선형 결합으로 정의할 수 있음을 의미한다.

완전해를 구하기 위해 이와 같은 조합을 사용하는 이유는 Ax=b에서 bA의 열공간에 존재한다면, 선형 방정식은 해가 존재하는데, 

■ 이때 이 해에 영공간에 존재하는 어떠한 벡터를 추가해도 그 결과는 해가 된다. 이는 다음과 같은 식이 성립하기 때문이다.

- 특수 해의 경우 Axp=b이고, 영공간의 해는 항상 Axn=0. 즉 우변 b가 0이된다.

- 그러므로 두 방정식을 더하면 우변은 b가 그대로 오기 때문에 식이 성립한다.

■ 이 예의 완전해를 찾으면 다음과 같이 특수 해와 영공간의 해를 더한 형태가 된다.

- 여기서 특수해에 상수를 곱할 수 없는 이유는 Axp=b를 만족해야 하기 때문이다. 

- 즉, Axp는 특정 값을 가지는 b를 만족해야 하기 때문에 상수를 곱하는 것은 허용되지 않는다.

- 반면, Axn=0에서 영공간의 해는 유일한 해가 아니기 때문에 영공간 전체를 표현하기 위해 상수를 곱한 것이다.

 

2. Rank와 Ax=b의 해

2.1 Full column rank r=n

행렬 Am×n이고 rank(A)=r일 때,

■ 행렬애 m개의 행이 있고 r개의 피벗이 있다면(= 행렬의 rank가 r), rm의 관계는 rm이다.

- 행의 개수가 m개이므로 피벗의 개수 rm을 초과할 수 없다. 즉, 피벗의 개수는 m개 이하이다.

■ 행렬의 열이 n개라면, rn의 관계도 rn이다. 하나의 열에는 하나의 피벗만 있을 수 있기 때문이다. 즉, 피벗의 개수는 열의 개수 n을 초과할 수 없다.

■ 이때 r=n이면, 모든 열이 피벗을 가지고 있는 것으로 free variable이 존재하지 않는다. 이를 풀 컬럼 랭크(full column rank)라고 한다. 이는 해의 존재여부와 관련이 있다.

r=n이라는 것은  free variable이 존재하지 않으므로, 행렬 A의 영공간에는 오직 영벡터(zero vector)만 존재함을 의미한다. 

■ 그러므로 완전해 x=xp+xn에서 xn=0이므로 x=xp가 된다.

■ 만약, 특수 해 xp가 존재한다면, 유일한 해로 특수 해를 가질 것이며, 특수 해가 존재하지 않는다면 해가 없는 상황이 된다.

- 해가 존재하지 않는 상황은 앞서 설명한 A의 열벡터의 선형 결합으로 b를 만들 수 없는 상황이다.

■ 정리하면, r=n인 경우 해가 없거나 단 하나의 해만 존재한다.

■ 예를 들어 다음과 같은 행렬 A가 존재할 때,

[13216157]

■ 소거법을 적용하면 2개의 열에 2개의 피벗이 존재하게 된다. ( 두 열벡터는 독립 관계를 가지므로 = 두 열벡터는 서로 다른 방향을 가리키므로)

■ 행렬 A를 기약행사다리꼴행렬 R로 만들면 다음과 같다.

[10010000]

R의 형태를 보면 2×2 단위행렬이 있으며, 그 아래는 모두 0이다. 즉, 이 행렬에는 두 개의 독립적인 행이 있으며, 첫 번째와 두 번째 행은 서로 독립이다. 그러므로 이 두 행은 동일한 방향을 가리키지 않는다고 할 수 있다.

■ 그리고 나머지 행인 3행과 4행은 모두 0이므로 첫 번째와 두 번째 행의 선형 결합으로 나머지 두 행을 표현할 수 있다는 것을 알 수 있다.

■ 결국 A에서 독립인 행은 첫 번째 행과 두 번째 행뿐이다. 그렇다면, 행렬 A에 대해 Ax=b는 항상 해를 가질 수 있을까

■ 이 예의 행렬 A는 full column rank이다. 두 열벡터를 이용해서 어떤 선형 결합을 해도 zero column을 만들 수 없다.  이는 영공간에 영벡터를 제외하면, 영공간에는 어떠한 비영벡터도 존재하지 않음을 의미한다. 

Ax=b의 완전해는 특수해와 영공간의 해로 표현된다는 점에서 영공간에 어떠한 비영벡터도 존재하지 않는다는 것은 특수해가 존재하면 유일한 해를 가지며, 특수해도 존재하지 않으면 해가 아예 존재하지 않는다는 것을 알 수 있다.

■ 이는 full column rank인 행렬에는 free variable이 없기 때문에 발생하는 일이라고 볼 수 있다.

정리하면, 행렬 A가 풀 컬럼 랭크(full column rank)이면 Ax=b의 해는 아예 존재하지 않거나, 유일해를 가질 수 있다.

2.2 Full row rank r=m

■ 이번에는 행렬 Ar=m으로 full row rank를 가지는 경우이다.

r=m이 의미하는 것은 모든 행이 pivot을 가지는 경우이므로 소거법을 수행하면 모든 행에 총 m개의 pivot이 존재한다. 

■ 즉, 소거법을 수행해도 모든 원소가 0인 행이 존재하지 않는다. 즉, 모두 독립 관계를 가지며 Ax라는 선형 결합으로 우변에 있는 어떠한 b를 생성할 수 있다고 볼 수 있다. 

■ 그러므로  r=m인 경우 모든 b에 대해 특별한 조건이 없어도  Ax=b의 해가 항상 존재한다.

■ free variable의 개수는 nr개이다. r=m이라면 free variable의 수를 nm으로 나타낼 수 있다.

■ 예를 들어 다음과 같은 행렬 A가 있을 때

A=[12653111]

■ 이 행렬은 두 개의 행을 가지며, 소거법을 진행하면 행렬의 rank = 2임을 알 수 있다.

■ 기약행사다리꼴행렬 R을 보면, 첫 번째와 두 번째 컬럼은 pivot column으로 두 열은 행렬 R에서 단위행렬이 된다. 그리고 나머지 두 행은 free column으로 F 행렬이다.

■ 그러므로, free variable이 존재하기 때문에 항상 해가 존재한다고 할 수 있다.

2.3 Full row and column rank r=m=n

마지막 경우는 r=m=n으로 행렬의 rank와 행렬의 행 개수 그리고 열 개수가 모두 동일한 경우이다. 즉, 행렬이 정방행렬이면서 full rank를 가지는 경우이다.

■ 예를 들어 행렬 A가 다음과 같이 정방행렬이며 r=m=n이라면

A=[1231]

■ 다음과 같이 free column이 존재하지 않기 때문에 영공간에는 오직 영벡터만 존재한다. 

그리고 R이 단위행렬의 형태가 되므로 행렬 A가 가역행렬임을 알 수 있다. 

■ 그러므로 r=m=n인 경우 모든 b에 대해 Ax=b의 해가 존재한다. 단, 이 해는 b에 대한 유일해이다.

- x=A1b

■ 위의 r=mr=n인 경우에 해를 갖는 조건으로 생각하면, r=m이므로 모든 b에 대해 Ax=b의 해가 존재하며, r=n이므로 해는 유일하다고 할 수 있다.

■ 그리고 위의 예시처럼, r=m=n인 경우 행렬 AR로 만들면 단위행렬이 되는 것을 확인하였다. 그러므로 r=m=n인 행렬은 가역행렬의 완벽한 조건을 만족한다고 볼 수 있다.

 

■ 행렬 Am×n이고 rank(A)=r일 때, Ax=b의 해를 가지는 조건을 정리하면,

- ① r=m=n이면 (정방)행렬 A는 기약행사다리꼴은 단위행렬이며, Ax=b에 대해 유일해를 갖는다.

- ② r=n<m이면 행렬 A의 기약행사다리꼴행렬 R은 단위행렬과 0으로 구성되며, 해가 아예 없거나 유일해를 가질 수 있다.

- ③ r=m<n이면 행렬 A의 기약행사다리꼴행렬 R은 pivot column으로 구성된 단위행렬과 free column으로 구성되므로, 항상 해가 존재한다. (무수히 많은 해를 갖는다.)

- ④ r<m,r<n이면 행렬 A의 기약행사다리꼴행렬 R[IF00]T 형태가 되며, 해가 아예 없거나 무수히 많은 해를 가질 수 있다.

■ 이러한 해를 가지는 조건을 확대행렬로 옮기면

- ① rank(A)=rank(Ab)=m이면 해가 존재한다.

- r=m이면 모든 bRm에 대해 방정식 Ax=b는 해를 갖는다.

- m은 행의 개수 = 선형 방정식의 식의 개수 = rank A의 최댓값이다. 

- 그런데 rank(A)=r=m이라는 것은, 풀랭크를 의미하며 이는 자동적으로 m=rank(A)=rank(Ab)을 의미한다.

- ② rank(A)<rank(Ab)이면 해가 존재하지 않는다. 

- 우변 b 계수행렬 A의 열공간에 속하지 않기 때문이다.

- ③ rank(A)=rank(Ab)=n이면 유일해를 가진다. 

- ④ 단, rank(A)=rank(Ab)<n라면  free variable이 존재하기 때문에 x=scalar[vector1, vector2, ]처럼 무수히 많은 해가 존재한다.