도구스학업·수학

야코비·가우스–자이델 반복법 계산기

연립방정식을 야코비·가우스–자이델·SOR 세 반복법으로 풀고 회차마다 값이 어떻게 움직이는지 보여 줍니다. 반복행렬의 스펙트럼 반지름을 내어 수렴할지 발산할지 미리 판정합니다.

한 줄이 한 행인 정사각행렬입니다. 6×6까지 다룹니다.

비워 두거나 개수가 맞지 않으면 0에서 출발합니다. 수렴하는 문제에서는 무엇을 넣어도 같은 답에 닿습니다.

야코비

19회차에서 수렴

반복행렬의 스펙트럼 반지름 ρ = 0.2679입니다. 1보다 작으므로 어떤 초기값에서 출발해도 수렴합니다. 회차마다 오차가 대략 0.268배로 줄어듭니다.

대각우세 (충분조건)모든 행이 만족
ρ(T)0.26787
정확해 (소거법)1.04327, 2.26923, -1.08173
반복법이 낸 값1.04327, 2.26923, -1.08173

세 방법 견주기

방법ρ(T)회차결과
야코비0.267919수렴
가우스–자이델0.042610수렴
SOR ω=1.20.216517수렴

가우스–자이델은 방금 갱신한 값을 곧바로 쓰기 때문에 같은 문제에서 대개 야코비의 절반쯤 되는 회차로 끝납니다. 대신 계산 순서에 매여 있어 병렬로 돌리기 어렵고, 야코비는 한 회차 안의 계산이 서로 독립이라 그대로 나눠 돌릴 수 있습니다.

회차별 진행

회차x변화량정확해와의 차이
00, 0, 02.269
10.6, 2.2727, -1.12.2730.443
21.0473, 2.2273, -0.99270.4470.089
31.0213, 2.2777, -1.08670.0940.022
41.0451, 2.2668, -1.07650.0240.005
51.042, 2.2699, -1.08230.0060.001
61.0435, 2.2691, -1.08140.0010
71.0432, 2.2693, -1.081808.20e-5
81.0433, 2.2692, -1.08179.76e-52.10e-5
91.0433, 2.2692, -1.08172.54e-55.45e-6
101.0433, 2.2692, -1.08176.66e-61.42e-6
111.0433, 2.2692, -1.08171.75e-63.74e-7
121.0433, 2.2692, -1.08174.64e-79.87e-8
131.0433, 2.2692, -1.08171.23e-72.61e-8
141.0433, 2.2692, -1.08173.27e-86.95e-9
151.0433, 2.2692, -1.08178.72e-91.85e-9
161.0433, 2.2692, -1.08172.33e-94.93e-10
171.0433, 2.2692, -1.08176.22e-101.32e-10
181.0433, 2.2692, -1.08171.66e-103.51e-11
191.0433, 2.2692, -1.08174.44e-119.39e-12

「정확해와의 차이」가 회차마다 대략 ρ배로 줄어듭니다. 이것이 반복법의 수렴 속도이고, 한 자릿수를 더 얻는 데 드는 회차는 대략 1/log₁₀(1/ρ)입니다.

계산 방법

  1. 1계수행렬 A와 우변 b를 넣습니다. 「대각우세」 예제로 시작해 보세요.
  2. 2방법을 고릅니다. SOR을 고르면 완화계수 ω를 조절할 수 있습니다.
  3. 3「세 방법 견주기」에서 같은 문제를 몇 회차에 끝내는지 나란히 봅니다.
  4. 4ρ(T)를 확인합니다. 1보다 작아야 수렴하며, 작을수록 빨리 끝납니다.
  5. 5「순서만 바꾸면 되는 것」 예제를 눌러 발산하던 문제가 행 순서 하나로 수렴하게 되는 것을 확인합니다.

자주 묻는 질문

소거법은 정해진 횟수 안에 답을 끝내지만 반복법은 어림값에서 출발해 답에 다가갈 뿐이며, 수렴할 때만 쓸모가 있습니다. 대신 행렬을 통째로 들고 있지 않아도 되고 0이 대부분인 큰 행렬에서 훨씬 쌉니다. 편미분방정식을 격자로 풀 때처럼 미지수가 수백만 개인 문제는 반복법 말고는 방법이 없습니다.

오른쪽에 넣는 값이 다릅니다. 야코비는 지난 회차 값만 쓰고, 가우스–자이델은 방금 갱신한 값을 곧바로 씁니다. 정보가 빨리 퍼지므로 가우스–자이델이 같은 문제에서 대개 야코비의 절반쯤 되는 회차로 끝납니다. 2×2에서는 가우스–자이델의 수렴 인자가 야코비의 제곱이 되는 것이 정확히 증명됩니다. 대신 야코비는 한 회차 안의 계산이 서로 독립이라 병렬로 나눠 돌릴 수 있습니다.

반복행렬 T의 스펙트럼 반지름 ρ(T)가 1보다 작을 때만 수렴합니다. 한 회차는 x ← Tx + c라는 사상이고 오차는 회차마다 T를 한 번씩 더 먹으므로, 초기값을 아무리 잘 잡아도 ρ ≥ 1이면 발산하고 아무리 나쁘게 잡아도 ρ < 1이면 수렴합니다. 초기값은 걸리는 회차만 바꿀 뿐 수렴 여부를 바꾸지 못합니다.

네, 하지만 그 반대는 아닙니다. 대각우세(|aᵢᵢ| > 나머지 절댓값의 합)는 수렴을 보장하는 충분조건일 뿐이라, 대각우세가 아니어도 수렴하는 행렬이 얼마든지 있습니다. 「대각우세는 아닌데 수렴」 예제로 확인할 수 있습니다. 판정은 대각우세가 아니라 ρ(T)로 해야 정확합니다.

식의 순서는 수학적으로 아무 뜻이 없지만 반복법에는 뜻이 있습니다. 반복법이 푸는 것은 행렬 자체가 아니라 「행렬을 대각 부분과 나머지로 쪼갠 방식」이기 때문입니다. 순서가 바뀌면 무엇이 대각선에 오는지가 바뀌고, 그러면 반복행렬 T가 통째로 달라집니다. 발산하던 문제가 행 하나를 옮기는 것만으로 수렴하게 되는 일이 흔합니다.

1보다 조금 크게 두고 회차가 줄어드는지 보며 맞춥니다. 이 계산기에서 ω를 조금씩 올려 보면 ρ가 내려갔다가 다시 올라가는 골짜기가 보이는데, 그 바닥이 최적입니다. 특별한 구조(2-순환 일관 순서 행렬)에서는 최적 ω를 야코비의 ρ로부터 계산하는 공식이 있지만 일반 행렬에는 쓸 수 없습니다. ω가 2 이상이면 어떤 행렬에서도 발산합니다(카한 정리).

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

알아두면 좋은 점

  • 반복법이 낸 값은 부분 피벗팅 소거법으로 구한 정확해와 대조해 검증했습니다. 2×2부터 6×6까지 대각우세 행렬을 무작위로 만들어 세 방법이 모두 같은 답에 닿는지 확인했습니다.
  • 스펙트럼 반지름은 2×2에서 해석적으로 아는 값과 맞췄습니다. 야코비는 √|bc/(ad)|, 가우스–자이델은 그 제곱이 됩니다. 대각행렬·상삼각행렬·회전행렬처럼 답을 아는 경우도 함께 확인했습니다.
  • 반복행렬 T는 식으로 조립하지 않고 실제 반복 코드로 재어 뽑습니다. 우변을 0으로 두고 단위벡터를 한 회차 돌린 결과가 T의 한 열이 되는 성질을 씁니다. 이렇게 하면 T가 실제로 도는 계산과 어긋날 수 없습니다.
  • ρ는 겔판트 공식 lim‖Tᵏ‖^(1/k)로 구합니다. 반복행렬은 대칭이 아니라 고윳값이 복소수일 수 있어 거듭제곱법으로는 잡히지 않기 때문입니다. 회전행렬처럼 고윳값이 켤레쌍인 경우로 확인했습니다.
  • 「가우스–자이델이 야코비보다 회차가 적거나 같다」는 것도 무작위 대각우세 행렬 40벌로 확인했습니다. 다만 이것은 대각우세 같은 좋은 조건에서 그렇다는 것이며, 야코비는 수렴하는데 가우스–자이델은 발산하는 행렬도 존재합니다.
  • 수렴 판정 기준은 회차 사이의 변화량이 10⁻¹⁰보다 작아지는 것입니다. 잔차가 아니라 변화량으로 보므로, 아주 천천히 수렴하는 문제에서는 답에 닿기 전에 멈출 수 있습니다.
  • 6×6까지, 200회차까지 다룹니다. 화면에서 회차별 표를 그대로 보이려고 잡은 한계입니다.

함께 보면 좋은 도구

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