가우스 소거법

선형대수학에서 '''가우스 소거법'''(Gauß消去法, )이란, 연립일차방정식을 풀이하는 알고리즘이다. 풀이 과정에서, 일부 미지수가 차츰 소거되어 결국 남은 미지수에 대한 선형 결합으로 표현되면서 풀이가 완성된다. 가우스 소거법은 보통 행렬을 사용하며, 첨가 행렬을 그와 풀이가 같은 더 간단한 행렬로 변환하여 풀이를 완성한다. 가우스 소거법은 행렬식과 역행렬의 계산에도 응용된다.
체 에 대하여, 개의 미지수에 대한 개의 방정식으로 구성된 연립일차방정식
:
이 주어졌다고 하자. 여기서
:
은 주어진  행렬이고,
:
은 개의 미지수를 포함하는 열벡터이다. 즉, 이는 풀어서 쓰면 다음과 같다.
:
:
::::::::
:
=== 기본 행 연산 ===
이 경우, 이 연립방정식에 다음과 같은 세 가지 연산을 가할 수 있다. 이들을 '''기본 행 연산'''(基本行演算, )이라고 한다.
* (행의 치환) 의 번째 행과 번째 행을 서로 바꾼다.
::
* (행의 상수곱) 번째 행을 0이 아닌 임의의 상수 으로 곱한다.
::
* (행의 합) 임의의 상수 에 대하여, 번째 행의 배를 번째 행에 더한다.
::
=== 행사다리꼴행렬 ===
일반적으로 사다리꼴행렬(Echelon matrix,에쉴론 메트릭스, 또는 행사다리꼴행렬)은,
 행렬 에 대하여, 이라고 하면, 를 번째 행의 '''선행 계수'''(先行係數, )라고 한다. 선행 계수는 존재하지 않을 수 있다.
 행렬 이 다음 조건을 만족시키면, 을 '''행사다리꼴행렬'''(사다리꼴行列, )이라고 한다.
* 만약 이라면, 모든 에 대하여 이다.
* 만약 이며 와 가 존재한다면, 이다.
 행렬 이 다음 조건을 만족시키면, 을 '''기약행사다리꼴행렬'''(旣約行사다리꼴行列, )이라고 한다.
* 은 행사다리꼴행렬이다.
* 가 존재한다면, 이며, 모든 에 대하여 이다.
즉, 행사다리꼴행렬은 행렬의 항들이 대략 위에는 사다리꼴, 밑에는 0인 형태의 행렬이다. 기약행사다리꼴행렬 조건은 행사다리꼴행렬 조건보다 더 강한 조건이다.
예를 들어, 다음과 같은 행렬은 행사다리꼴행렬이다.
:
다음과 같은 행렬은 기약행사다리꼴행렬이다.
:
=== 가우스 소거법 ===
'''가우스 소거법'''은  행렬 을 기본행연산을 가하여 행사다리꼴행렬로 만드는 알고리즘이며, 다음과 같다. 먼저 첫번째 행을 다음과 같이 처리한다.
# 선행 계수가 위치하는 가장 작은 열수 을 찾는다.
# 이라면, 첫번째 행을 인 어떤 번째 행과 치환한다.
# 모든 번째 행에 첫번째 행의 배를 더해,  밑의 항들을 0으로 만든다.
그 뒤, 두번째 행을 다음과 같이 처리한다.
# 어떤 번째 행의 선행 계수가 위치하는 가장 작은 열수 을 찾는다.
# 이라면, 두번째 행을 인 어떤 번째 행과 치환한다.
# 모든 번째 행에 두번째 행의 배를 더해,  밑의 항들을 0으로 만든다.
뒤에 오는 다른 행에 대하여, 순차적으로 위와 같이 처리한다. 일반적으로, 번째 행은 다음과 같이 처리한다.
# 어떤 번째 행의 선행 계수가 위치하는 가장 작은 열수 을 찾는다.
# 이라면, 번째 행을 인 어떤 번째 행과 치환한다.
# 모든 번째 행에 번째 행의 배를 더해,  밑의 항들을 0으로 만든다.
만약 어떤 가 존재하지 않는다면, 번째 행에서 멈춘다. 만약 항상 를 찾을 수 있다면, 모든 번째 행에 대하여 순차적으로 위와 같이 처리하며, 으로 둔다.
기약행사다리꼴행렬을 원한다면, 찾았던 모든 에 대하여 순차적으로 다음과 같은 단계를 추가로 거친다.
# 번째 행에 를 곱해, 를 1로 만든다.
# 모든 번째 행에 번째 행의 배를 더해,  위의 항들을 0으로 만든다.
여기서 이며 인 데 주의하자. 사실, 이는 행렬의 계수이다.
*기약행사다리꼴행렬의 과정을 특히 조단이 제시한 "가우스 조단 소거법"으로 부른다.
=== 기본행연산 ===
세 가지 기본행연산은 모두 가역 연산이다.
* 행의 치환의 역연산은, 자기 자신이다.
* 행의 상수곱의 역연산은, 그 행에 그 상수 대신 역수를 곱하는 것이다.
* 어떤 행에 다른 행의 배수를 더하는 것의 역연산은, 더하는 대신 빼는 것이다.
두 연립일차방정식의 첨가 행렬이 하나에 기본행연산을 가하여 다른 하나를 얻을 수 있다면, 행동치라고 한다. 첨가 행렬이 행동치라면, 연립방정식의 풀이는 서로 같다.
기본 행렬은 단위 행렬에 기본행연산을 한 번 가하여 얻는 행렬이다. 이에 따라, 세 가지 기본행연산은 기본 행렬 곱셈과 같다.
=== 행사다리꼴행렬 ===
가우스 소거법 알고리즘에서 알 수 있듯, 모든 연립일차방정식의 첨가 행렬은 그와 같은 해를 갖는 행사다리꼴행렬 및 기약행사다리꼴행렬로 변환할 수 있다. 따라서, 연립일차방정식의 풀이는 행사다리꼴행렬 및 기약행사다리꼴에 대한 풀이로 귀결된다.
 행사다리꼴행렬 에 대한 연립일차방정식 에 대하여, 다음 두 조건이 서로 동치이다.
* 해가 존재한다.
* 상수항이 0이 아닌 행이 존재하지 않는다. (상수항은 번째 열의 항, 0행은 선행 계수가 없는 행을 뜻한다.)
해가 존재하는 의 경우, 다음 두 조건이 서로 동치이다.
* 해가 유일하다.
* . 즉, 0행이 아닌 행의 개수는 미지수의 개수와 같다. 즉, 선행 계수가 없는 열이 계수 행렬에 존재하지 않는다.
달리 말해, 해가 존재하는 의 경우, 다음 두 조건이 서로 동치이다.
* 해가 유일하지 않다. (체의 표수가 0이라면, 이는 해가 무한히 많은 것과 동치이다.)
* . 즉, 0행이 아닌 행의 개수는 미지수의 개수보다 적다. 즉, 선행 계수가 없는 열이 계수 행렬에 존재한다.
=== 행렬식의 계산 ===
가우스 소거법을 사용하여 정사각행렬의 행렬식을 계산할 수 있다. 이는 정사각행렬에 대하여 다음 사실들이 성립하기 때문이다.
* 기본행연산을 가하면, 행렬식은 "상수배" 변화하며, 주어진 기본행연산이 행렬식을 변화시키는 배수는 자명하다. 즉,
** 행을 치환하면, 행렬식은 -1배가 된다.
** 행에 상수곱을 하면, 행렬식은 그 상수의 역수배가 된다.
** 어떤 행에 다른 어떤 행의 상수배를 더하면, 행렬식은 변하지 않는다.
* 가우스 소거법을 통해 행렬을 행사다리꼴행렬로 변환할 수 있다. 특히 정사각행렬이므로, 이는 0행(즉 모든 항이 0인 행)을 갖거나, 상삼각행렬이다.
* 0행을 갖는 정사각행렬의 행렬식은 0이다.
* 상삼각행렬의 행렬식은 모든 대각항의 곱이다.
=== 역행렬의 계산 ===
가우스 소거법을 사용하여 정사각행렬의 역행렬을 계산할 수 있다.  행렬 의 역행렬은 다음과 같이 계산한다. 에  단위행렬을 추가하여  행렬로 만든다.
:
이 행렬에 기본행연산을 가하여
:
로 만든다면, 행렬 은 과 같다.
:
=== 계수 계산 ===
가우스 소거법을 사용하여 행렬의 계수를 계산할 수 있다.  행렬 의 계수는 가우스 소거법을 가하여 얻는 행사다리꼴행렬에서 0이 아닌 행의 계수(즉, 선행 계수의 개수) 이다.
:
=== 해가 유일한 연립 선형 방정식 ===
다음과 같은 선형 방정식이 주어졌다고 하자.
:
첫 번째 열을 사다리꼴로 놓기 위해, 다음과 같은 기본행연산을 가한다.
# 첫째 식의 -2배를 둘째 식에 더한다
# 첫째 식의 1배를 셋째 식에 더한다.
그렇다면 다음과 같다.
:
두 번째 열을 사다리꼴로 놓기 위해, 다음과 같은 기본행연산을 가한다.
 둘째 식의 1배를 셋째 식에 더한다.
그러면 다음과 같다.
:
이제 행렬이 사다리꼴이 되었다.
그렇다면, 이제 미지수들을 가장 밑의 행으로부터 순서대로 대입하여 계산할 수 있다. 이것을 '''후방대입'''(back substitution)이라 한다.
:
:
:
=== 해가 유일하지 않거나 없는 연립 선형 방정식 ===
;정칙(Nonsingular) 행렬일 경우의 예
(식 2와 3을 바꾸어 해결한다)
* 
;비정칙(Singular) 행렬일 경우의 예
(해가 없는 경우도 있다.)
* 
* 
=== 역행렬의 계산 ===
다음과 같은 행렬 의 역행렬을 계산한다고 하자.
:
기본행연산을 가하면, 다음과 같다.
:
따라서 은 다음과 같다.
:
* 사다리꼴행렬
* 크래머 공식
* 
* 
* 
* 
* 
* 
분류:수치선형대수학