이번 글에서 다룰 내용
이 글에서는 가우스 소거법(Gaussian elimination)을 다룹니다.
- 연립일차방정식을 왜 행연산(row operation)으로 단순화하는지 설명합니다.
- 기본 행연산 세 가지를 정리합니다.
- 사다리꼴(row echelon form) 구조가 해를 읽기 쉽게 만든다는 점을 보여 줍니다.
- 피벗(pivot), 자유변수(free variable), 계수(rank)로 이어지는 감각을 준비합니다.
이번 글에서 새로 나오는 용어
- 연립방정식 (system of equations): 여러 식을 함께 푸는 문제입니다.
- 증강행렬 (augmented matrix): 계수와 결과를 한 번에 적은 행렬입니다.
- 피벗 (pivot): 각 비영행에서 가장 먼저 나오는 중요한 0이 아닌 성분입니다.
핵심 아이디어
Ax=b를 이해했다면 이제 실제로 해를 구할 도구가 필요합니다. 그 대표적인 방법이 가우스 소거법(Gaussian elimination)입니다.
가우스 소거법의 핵심은 복잡한 식을 같은 해를 가지는 더 단순한 형태로 바꾸는 것입니다. 이때 사용하는 것이 기본 행연산(elementary row operation)입니다.
기본 행연산은 보통 세 가지입니다.
- 두 행을 서로 바꾸기
- 한 행에 0이 아닌 스칼라를 곱하기
- 한 행의 배수를 다른 행에 더하기
이 연산들은 식의 표현은 바꾸지만 해집합 (solution set)은 유지합니다. 그래서 계산을 점점 더 읽기 쉬운 형태로 정리할 수 있습니다.
단계별 예시
예시 1) 증강행렬(augmented matrix) 만들기
다음 연립방정식을 보겠습니다.
x + y = 4
2x + 3y = 9
이를 증강행렬로 쓰면
[1 1 | 4]
[2 3 | 9]
입니다. 이제 식을 일일이 다루기보다 행렬 형태로 연산할 수 있습니다.
예시 2) 아래를 0으로 만들기
첫 번째 행을 이용해 두 번째 행의 첫 성분을 없애겠습니다.
R2 <- R2 - 2R1
그러면
[1 1 | 4]
[0 1 | 1]
이 됩니다. 이 형태를 사다리꼴(row echelon form)이라고 부릅니다. 각 행의 피벗이 바로 위 행의 피벗보다 오른쪽에 있어서 계단처럼 보이기 때문입니다.
이제 두 번째 행은 y = 1을 뜻합니다. 이를 첫 번째 행에 대입하면
x + 1 = 4
x = 3
을 얻을 수 있습니다.
이 과정에서 중요한 것은 숫자 계산 자체보다, 중복된 정보를 제거하며 구조를 드러낸다는 점입니다.
예시 3) 해가 없다는 신호
소거를 진행하다가 아래처럼
[0 0 | 1]
같은 행이 나오면 이는
0 = 1
을 뜻하므로 모순입니다. 즉 해가 없습니다.
반대로
[0 0 | 0]
같은 행은 새로운 제약을 주지 않으므로, 자유변수 (free variable)가 남을 가능성을 뜻합니다. 이 부분은 다음 글에서 더 자세히 다룹니다.
예시 4) 왜 피벗(pivot)이 중요한가
소거가 진행되면 각 비영행에서 처음으로 등장하는 0이 아닌 성분이 생깁니다. 이를 피벗(pivot)이라고 부릅니다. 예를 들어 위 사다리꼴
[1 1 | 4]
[0 1 | 1]
에서는 첫 번째 행의 첫 항과 두 번째 행의 두 번째 항이 피벗입니다. 피벗 위치는 독립적인 제약이 어디에 있는지 보여 줍니다.
피벗이 많은 행렬은 더 많은 방향을 제약하고 있고, 피벗이 적으면 자유롭게 움직일 수 있는 방향이 더 많습니다. 이 관점은 뒤에서 계수(rank), 자유변수(free variable), 해 구조를 이해할 때 매우 중요합니다.
수학 주석
- 가우스 소거법은 행렬 자체를 "예쁘게" 만드는 작업이 아니라, 해를 보존하면서 구조를 읽기 쉬운 형태로 바꾸는 과정입니다.
- 행연산(row operation)은 해집합과 행공간(row space)을 보존하지만, 열공간(column space)은 일반적으로 바뀔 수 있습니다. 무엇이 보존되는지 구분해야 합니다.
- 사다리꼴(row echelon form)은 0행이 아래로 모이고, 각 비영행의 피벗이 위 행의 피벗보다 오른쪽에 놓이는 형태입니다. 이런 구조가 해의 존재성과 자유도(freedom)를 읽는 데 유리합니다.
- 더 밀어 붙이면 기약 사다리꼴(reduced row echelon form)까지 갈 수 있는데, 입문 단계에서는 우선 사다리꼴 감각을 잡는 것이 중요합니다.
실제 수치 계산에서는 피벗 선택(pivoting)과 수치 안정성(numerical stability)도 중요합니다. 라이브러리가 내부적으로 이런 처리를 해 주는 이유가 여기에 있습니다.
피벗 자리에 0이 오거나 매우 작은 값이 오면, 실제 계산에서는 행을 바꾸는 부분 피벗팅(partial pivoting)을 쓰는 경우가 많습니다.
자주 하는 오해
소거법을 단순 계산 기술로만 보기
계산 절차만 따라가면 답은 구할 수 있지만, 왜 피벗이 중요하고 왜 자유변수가 생기는지는 남지 않습니다. 구조를 읽는 도구라는 관점이 더 중요합니다.
행연산과 열연산을 비슷하게 생각하기
해집합 보존 관점에서 다루는 것은 주로 행연산입니다. 열연산은 다른 성질을 바꾸기 때문에 같은 방식으로 쓰면 안 됩니다.
숫자만 맞으면 된다고 생각하기
실무 수치 계산에서는 피벗 선택(pivoting)과 수치 안정성(numerical stability)도 중요합니다. 여기서는 개념 이해가 중심이지만, 실제 구현에서는 더 섬세한 고려가 필요합니다.
사다리꼴만 만들면 끝이라고 생각하기
사다리꼴은 구조를 드러내는 좋은 중간 단계입니다. 하지만 어떤 문제에서는 기약 사다리꼴(reduced row echelon form)까지 가야 해석이 더 분명해질 수 있습니다.
연습 또는 확장
아래 연립방정식을 증강행렬로 만들고 직접 소거해 보세요.
x + 2y = 5,3x + 4y = 11x + y + z = 3,2x + y + z = 4- 소거 과정에서
[0 0 | 1]이 나오는 예를 직접 만들어 보기
그리고 다음 질문도 생각해 보세요.
- 소거 과정에서 어떤 정보가 점점 더 선명해지는가?
- 피벗이 적다는 것은 무엇을 뜻하는가?
[0 0 | 0]과[0 0 | 1]은 해 구조에서 어떤 차이를 만드는가?
마무리
이번 글에서는 가우스 소거법(Gaussian elimination)을 정리했습니다.
- 기본 행연산으로 연립방정식을 더 단순한 형태로 바꿉니다.
- 증강행렬(augmented matrix)을 사용하면 구조를 한눈에 다루기 쉽습니다.
- 피벗(pivot)은 독립적인 제약을 보여 줍니다.
- 모순 행은 해가 없다는 신호이고, 0행은 자유도가 남을 수 있음을 보여 줍니다.
다음 글에서는 해가 하나인지, 없는지, 무한히 많은지를 구조적으로 분류해 보겠습니다.
💬 댓글
이 글에 대한 의견을 남겨주세요