가우스 소거법 — 계단 꼴로 만들어 푼다
쓸 수 있는 손놀림은 딱 세 가지
소거법은 방정식을 계단 모양으로 정리해 아래에서부터 풀어 올립니다.
미지수가 셋, 넷, 백 개가 되면 눈으로 푸는 건 불가능합니다.
그래서 절대 실패하지 않는 절차가 필요해요. 그것이 가우스 소거법입니다.
핵심은 이겁니다 — 방정식을 주물러도 해가 변하지 않는 손놀림이 세 가지 있습니다.
① 두 줄의 순서를 바꾼다 (식을 쓴 순서는 답과 무관)
② 한 줄에 0이 아닌 수를 곱한다 (양변에 같은 수를 곱한 것)
③ 한 줄에 다른 줄의 몇 배를 더한다 (같은 값을 양변에 더한 것)
이 셋만 써서 첨가행렬을 계단 꼴로 만듭니다.
왼쪽 아래가 전부 0이 되면, 마지막 줄부터 거꾸로 값을 구해 올라갈 수 있어요.
축(피벗)을 1로 만들고, 그 아래를 0으로 지웁니다. 이것을 왼쪽부터 반복합니다.
🎮 한 단계씩 밟아 보세요
"다음 단계" 를 누를 때마다 소거가 한 번씩 진행되고,
무엇을 왜 했는지가 아래에 적힙니다. 어느 칸이 방금 0이 되었는지도 표시돼요.
"해가 없음"과 "해가 무수히" 예제도 꼭 끝까지 돌려 보세요.
피벗이 0 이면 어떡하나
축으로 삼으려는 자리가 0 이면 나눌 수 없습니다. 이때는 아래 줄과 자리를 바꿉니다(손놀림 ①).
바꿀 줄이 없다면? 그 열에는 축을 세울 수 없으니 다음 열로 넘어갑니다 —
이때 자유변수가 생겨요 (12강).
실제 컴퓨터는 한 걸음 더 나갑니다. 0이 아니어도 절댓값이 가장 큰 수를 축으로 골라
줄을 바꿉니다. 이것을 부분 피벗팅이라고 해요.
왜 그럴까요? 아주 작은 수로 나누면 오차가 크게 부풀기 때문입니다.
0.0001 로 나누면 원래 있던 작은 오차가 만 배가 되어 버려요.
수학적으로는 아무 수로 나눠도 되지만, 컴퓨터의 실수 계산에서는 큰 차이가 납니다.
수학적으로는 같아도, 컴퓨터에서는 나누는 수의 크기가 정확도를 좌우합니다.
소거법이 알려 주는 것들
소거법은 답만 주는 게 아닙니다. 끝까지 돌려 놓으면 이 행렬에 대한 거의 모든 것이 드러납니다.
| 소거 결과 | 알 수 있는 것 |
| 피벗의 개수 | 랭크 (12강) |
| 피벗이 없는 열 | 자유변수 → 영공간의 차원 (15강) |
| [0 0 0 | 5] 같은 줄 | 해가 없음 |
| 대각선의 곱 | 행렬식 (부호는 줄바꿈 횟수로) |
| [A | I] 를 소거 | 오른쪽에 A⁻¹ 이 나타남 |
마지막 줄이 재미있습니다. A 옆에 단위행렬을 붙여 놓고 A 쪽을 I 로 만들면,
같은 손놀림을 받은 오른쪽이 저절로 A⁻¹ 이 됩니다.
역행렬을 구하는 실제 방법이 이거예요.
소거법 하나로 방정식도 풀고 역행렬도 구합니다.
🤔 확인 문제
가우스 소거법에서 허용되지 않는 손놀림은?
해설 0을 곱하면 그 식이 통째로 사라져 정보를 잃습니다 — 해가 달라져요. 곱할 수 있는 것은 0이 아닌 수뿐입니다.
🤔 확인 문제
소거 끝에 [0 0 0 | 7] 이라는 줄이 나왔습니다. 무슨 뜻인가요?
해설 그 줄을 식으로 읽으면 0 = 7 입니다. 어떤 값을 넣어도 성립할 수 없으니 해가 없어요. 서로 어긋나는 조건이 섞여 있었다는 뜻입니다.
🤔 확인 문제
컴퓨터가 절댓값이 가장 큰 수를 축으로 고르는 까닭은?
해설 수학적으로는 어떤 축을 골라도 답이 같습니다. 하지만 실수 계산에서는 작은 수로 나눌수록 오차가 커져요. 그래서 큰 수를 고릅니다 — 부분 피벗팅입니다.