2018-01-15 19:00:22

선형연립방정식(Ax=b)의 해를 구하는 방법은 행렬 A가 어떤 행렬인가에 따라서 달라진다. 


1) r = m = n: full rank, 선형독립인 열들로만 이루어진 정사각형 행렬, 단 한 개의 해를 갖는다. 

2) r = n < m: full row rank, 위로 길쭉한 직사각형 행렬, 1개의 해 또는 해가 없다. 대부분의 경우에 없다. 

3) r = m < n: full column rank, 좌우로 길쭉한 직사각형 행렬, 셀 수 없이 많은 해를 갖는다. 

4) r < m, r < n: 그 외의 직사각형 행렬, 해가 없거나 셀 수 없이 많은 해를 갖는다. 


여기서, 


r: 행렬의 rank

m: 행렬내 행벡터의 갯수, 행렬의 세로 크기

n: 행렬내 열벡터의 갯수, 행렬의 가로 크기


을 의미한다. 


기본적으로 b가 행렬 A의 column space 위에 있지 않으면 해는 존재하지 않는다. 왜냐하면 행렬A의 열벡터들의 선형 조합으로 b를 나타낼 수가 없기 때문이다. 



▶ r = m = n인 경우


가장 익숙한 경우이다. 즉 미지수와 방정식의 갯수가 같고 모든 열벡터들이 선형독립인 경우다. 이런 경우를 full rank라고 부른다. 이 때 네가지 부분공간을 그려보면, nullspace와 left-nullspace는 오직 영벡터뿐이다(그림1). 


그림1. r = m = n인 경우


이때는 벡터 b는 항상 행렬A의 column space 위에 존재한다. 행렬A의 열벡터들의 선형조합으로 b가 만들어진다는 것이다. 이때 열벡터들의 다양한 조합으로 b가 만들어질 수 있는 것이 아니라 단 한가지의 조합으로만 b가 만들어질 수 있다. 따라서 r = m = n의 경우 단 하나의 해를 갖는다. 



▶ r = n < m인 경우


행렬A가 위아래로 길쭉한 직사각형 행렬이면서, 행렬의 rank가 열벡터의 갯수와 같은 경우이다. 이런 경우를 full column rank라고 부른다. 이 때 네가지 부분공간을 그리면 그림2와 같다. 


그림2. r = n < m인 경우


이때 nullspace는 오직 영벡터만을 포함한다. 이 경우에는 열벡터들이 부족하기 때문에 b가 column space위에 있을 수도 없을 수도 있다. 예를 들어, 



와 같이 b가 행렬 A의 열벡터들의 선형조합으로 이뤄지는 경우에만 해를 구할 수 있다. 그러나 b가 column space위에 있는 경우는 극히 드물고, 대부분의 경우에 b가 column space 밖에 존재한다. 따라서, 해를 구할 수 없다. 이때는 b를 column space에 투영시켜서 구할 수 없는 해 대신에 최적해 를 구한다(최소자승법). 


정리하자면, full row rank인 경우에 b가 C(A)에 있다면 단 한개의 해가 존재하고, C(A) 밖에 있다면 해가 존재하지 않기 때문에 대신 최소자승법을 이용해서 최적해를 구해준다. 



▶ r = m < n인 경우


행렬A가 좌우로 길쭉한 직사각형 행렬이면서, 행렬의 rank가 행벡터의 갯수와 같은 경우이다. 이런 경우를 full row rank라고 부른다. 이 때 네가지 부분공간을 그리면 그림3과 같다. 

그림3. r = m < n인 경우


이때 left-nullspace는 오직 영벡터만을 포함한다. 열벡터들은 지금 차고 넘치기 때문에, b는 항상 C(A) 위에 존재한다. 그렇기 때문에 Ax = b의 해가 존재한다. 그런데 이때는 셀 수 없이 많은 해가 존재한다. 그 이유를 이해하려면, 우선 완전해(complete solution)는 항상 특별해(particular solution)과 null space 해의 합으로 이루어진다는 것을 알아야 한다. 우리가 구하고 있었던 해의 풀네임이 완전해이다. 


...(공식1: 완전해)


이때 특별해 는 항상 row space 위에 있고, null space 해 은 이름에서 암시하듯이 null space 위에 존재한다. Ax = b를 아래와 같이 전개해보자. 



보다시피 null space위에 존재하는 null space 해들은 더해져도 아무런 영향을 미치지 않는다. 따라서 null space 위에 존재하는 셀 수 없이 많은 null space 해들이 특별해에 더해질 수 있다. 위에서 살펴본 r = m = n 케이스와 r = n < m 케이스에는 null space에 영벡터밖에 없었기 때문에 특별해에 영벡터밖에 더해지지 않았던 것이다. 


는 free 변수들에 모두 0을 넣어줌으로 구하고, 은 free 변수 중에 하나에만 1, 나머지에는 0을 대입해주는 식으로 구한 special 해들의 선형 조합으로 구한다. 


...(공식2: null space 해)


여기서 은 임의의 상수이고, N은 free 변수의 개수다. 만약 free 변수가 2개라면 두개의 special 해, 3개라면 3개의 special 해들을 갖는다. 이 무한개이기 때문에 완전해 x도 무한개가 된다. 따라서 r = m < n인 경우에는 무한개의 해를 갖게 된다. 



▶ r < m, r < n인 경우


사실 이 경우가 가장 일반적이다(그림4). 마찬가지로 벡터 b가 C(A) 위에 존재하면 해가 존재하는데 무수히 많은 해가 존재하고, 벡터 b가 C(A) 밖에 있다면 해는 존재하지 않는다. 셀 수 없이 많은 해 또는 0개의 해. 이 경우에는 의사역행렬을 이용해서 를 구하면 된다. 



그림4. r < m, r < n인 경우