도구스학업·수학

n×n 역행렬 계산기 (가우스-조던)

행렬 오른쪽에 단위행렬을 붙여 행 연산으로 역행렬을 구하는 과정을 단계별로 보여 줍니다. 분수로 계산해 오차가 없고, A × A⁻¹이 정확히 단위행렬인지 검산까지 합니다.

한 줄에 한 행씩. 3, -1.5, 7/4 꼴을 모두 받습니다. 6×6까지 계산합니다

3×3 역행렬

구했습니다

A × A⁻¹이 정확히 단위행렬임을 확인했습니다

A⁻¹

111
122
123

검산

A × A⁻¹ = I정확히 일치

분수로 계산하므로 «거의 0» 같은 애매한 값이 나오지 않습니다. 곱해서 단위행렬과 한 칸도 다르지 않아야 통과입니다.

[A | I] 를 행 연산으로 [I | A⁻¹] 만들기

1. 1행을 2으로 나눠 피벗을 1로 만듭니다

1-1/201/200
-12-1010
0-11001

2. 2행에서 1행의 -1배를 빼 1열을 0으로 만듭니다

1-1/201/200
03/2-11/210
0-11001

3. 2행을 3/2으로 나눠 피벗을 1로 만듭니다

1-1/201/200
01-2/31/32/30
0-11001

4. 1행에서 2행의 -1/2배를 빼 2열을 0으로 만듭니다

10-1/32/31/30
01-2/31/32/30
0-11001

5. 3행에서 2행의 -1배를 빼 2열을 0으로 만듭니다

10-1/32/31/30
01-2/31/32/30
001/31/32/31

6. 3행을 1/3으로 나눠 피벗을 1로 만듭니다

10-1/32/31/30
01-2/31/32/30
001123

7. 1행에서 3행의 -1/3배를 빼 3열을 0으로 만듭니다

100111
01-2/31/32/30
001123

8. 2행에서 3행의 -2/3배를 빼 3열을 0으로 만듭니다

100111
010122
001123
행렬 오른쪽에 단위행렬을 붙여 [A | I]로 놓고 행 연산만으로 왼쪽을 단위행렬로 만들면 오른쪽에 A⁻¹이 남습니다. 행 연산은 어떤 행렬 E를 왼쪽에 곱하는 것과 같은데, 왼쪽이 I가 되었다면 E·A = I이므로 E가 곧 A⁻¹이고, 같은 연산을 받은 오른쪽에 그 E가 남기 때문입니다.
계산을 분수로 합니다. 나눗셈이 반드시 들어가는 절차라 소수로 하면 오차가 쌓여, 0이어야 할 값이 미세하게 남아 특이행렬을 못 알아봅니다. 0.1과 0.2로 만든 행렬도 정확히 판정합니다.

계산 방법

  1. 1한 줄에 한 행씩 정사각 행렬을 넣습니다. 3, -1.5, 7/4 꼴을 모두 받습니다.
  2. 2[A | I]가 행 연산을 거쳐 [I | A⁻¹]가 되는 과정을 단계별로 따라갑니다.
  3. 3A × A⁻¹ 검산이 «정확히 일치»로 나오는지 확인합니다.

자주 묻는 질문

행 연산은 어떤 행렬 E를 왼쪽에 곱하는 것과 같기 때문입니다. 여러 번 거쳐 왼쪽이 단위행렬이 되었다면 E·A = I이므로 E가 곧 A⁻¹이고, 같은 연산을 받아 온 오른쪽에는 E·I = A⁻¹이 남아 있습니다. 그래서 [A | I]를 [I | A⁻¹]로 만드는 것만으로 역행렬이 구해집니다.

행렬식이 0일 때입니다. 계산 도중 어느 열에서 피벗으로 쓸 0이 아닌 값을 아래쪽 어디에서도 찾지 못하면 그 열이 통째로 0이 된 것이고, 어떤 행이 다른 행들의 조합이라는 뜻입니다. 이런 행렬을 특이행렬이라 하며, 이 도구는 몇 번째 열에서 막혔는지 알려 줍니다.

역행렬을 구하려면 나눗셈이 반드시 들어가는데, 소수로 하면 오차가 쌓이기 때문입니다. 1/3을 0.3333…으로 다루기 시작하면 0이어야 할 값이 1e-17쯤으로 남아 특이행렬을 못 알아봅니다. 분자와 분모를 정수로 들고 다니면 그런 일이 없어, 0.1과 0.2로 만든 특이행렬도 정확히 잡습니다.

원래 행렬과 구한 역행렬을 곱해 단위행렬이 되는지 확인합니다. 분수로 계산하므로 «거의 0» 같은 애매한 값이 나오지 않고 한 칸도 다르지 않아야 통과입니다. 화면의 «검산» 줄이 그 결과입니다.

결과는 같지만 계산량이 크게 다릅니다. 여인수(수반행렬) 방법은 n² 개의 소행렬식을 모두 구해야 해서 n! 에 비례하지만, 가우스-조던은 n³에 비례합니다. 3×3까지는 여인수 방법도 손으로 할 만하지만 4×4부터는 이 방법이 훨씬 빠릅니다.

전송되지 않습니다. 계산은 전부 브라우저 안에서 이뤄지고, 입력값은 이 브라우저의 localStorage에만 남습니다.

알아두면 좋은 점

  • 6×6까지 계산합니다. 단계 기록은 200개까지 그립니다.
  • 분자·분모를 BigInt로 들고 다녀 자릿수가 늘어도 정확합니다. 유리수 산술은 edu/determinant-nxn과 같은 모듈을 씁니다.
  • 피벗이 0이면 아래에서 0이 아닌 행을 찾아 바꿉니다. 수치 안정성을 위해 가장 큰 값을 고르는 부분 피벗팅은 하지 않습니다 — 분수로 계산해 오차가 없으므로 필요하지 않습니다.
  • A × A⁻¹이 단위행렬인지 스스로 검산하고, 특이행렬 판정이 edu/determinant-nxn의 행렬식 계산과 일치하는지 무작위 행렬 200개로 대조해 맞췄습니다.

함께 보면 좋은 도구

마지막 검증: 2026년 9월 1일 · 결과는 참고용 추정치입니다.