도구스학업·수학

LU 분해(행렬 분해) 계산기

정사각행렬을 아래삼각 L과 위삼각 U로 쪼개고 행 교환을 담은 치환행렬 P까지 함께 보여 줍니다. PA = LU를 실제로 곱해 검산하며, 같은 분해로 우변만 바꿔 가며 연립방정식을 풀 수 있습니다.

줄마다 한 행씩. 8×8까지 다루며 모자란 자리는 0으로 채웁니다. 지금 3×3입니다.

행렬식 det(A)

-16

U의 대각선을 모두 곱하고 행 교환 1번만큼 부호를 뒤집은 값입니다. PA − LU의 최대 오차는 0.00e+0입니다.

크기3 × 3
행 교환 횟수1회
행렬식 (LU)-16
행렬식 (여인수 전개로 검산)-16
PA − LU 최대 오차0.000e+0
특이행렬 여부아님

L (아래삼각, 대각선 1)

100
0.510
-0.511

U (위삼각)

4-60
041
001

P (치환행렬)

010
100
001

원래 행렬 A

211
4-60
-272

행 순서: 2 → 1 → 3번째 행이 위에서부터 놓였습니다.

같은 분해로 우변만 바꿔 가며 풀 수 있습니다. 이것이 LU 분해를 쓰는 이유입니다.

해 x1, 1, 2
검산 Ax5, -2, 9
넣은 b5, -2, 9
같은 행렬을 여러 번 풀 때 쓰는 것입니다. 분해에 드는 계산은 n³/3쯤이지만 전진·후진 대입은 n²쯤입니다. 우변이 100개면 소거를 100번 하는 대신 분해 한 번에 대입 200번이면 됩니다. 구조해석·회로해석처럼 같은 계에 하중만 바꿔 푸는 곳에서 이 차이가 큽니다. 위에서 우변만 바꿔 보세요 — 분해는 그대로입니다.
행을 바꾸지 않으면 오차가 폭발합니다. 「피벗이 아주 작은 예」를 넣고 행 교환을 꺼 보세요. 왼쪽 위가 1e-12인 행렬에서 오차가 천만 배로 커집니다(1e-12 → 2e-5). 작은 값으로 나누면 곱해지는 수가 커져 원래 있던 값이 반올림에 묻히기 때문입니다. 그래서 실제로는 A가 아니라 행을 바꾼 PA를 분해합니다.
행렬식은 U의 대각선 곱입니다. 삼각행렬의 행렬식이 대각선 곱이고 L의 대각선이 모두 1이므로, 행 교환 횟수만큼 부호만 뒤집으면 됩니다. 여인수 전개로 세면 n!번이 드는 계산이 n³/3으로 줄어듭니다 — 위에 두 방법의 값을 나란히 놓았습니다.
PA = LU를 실제로 곱해 검산합니다. 위의 「PA − LU 최대 오차」가 그 결과이며, 0에 가깝지 않다면 분해가 잘못된 것입니다. 계산 결과를 그대로 믿는 대신 스스로 확인하게 해 두었습니다.

계산 방법

  1. 1행렬을 줄마다 한 행씩 넣습니다.
  2. 2L·U·P를 확인하고 PA − LU 잔차가 0에 가까운지 봅니다.
  3. 3우변 b를 넣어 Ax = b의 해를 구합니다.
  4. 4우변만 바꿔 가며 같은 분해로 여러 번 풀어 봅니다.
  5. 5피벗을 끄고 켜 가며 행 교환이 정확도에 얼마나 영향을 주는지 견줍니다.

자주 묻는 질문

정사각행렬을 아래삼각행렬 L과 위삼각행렬 U의 곱으로 쪼개는 것입니다. 실제로는 행을 바꿔 가며 하므로 A가 아니라 PA = LU 꼴이 되며, P는 어느 행을 어디로 보냈는지 적어 둔 치환행렬입니다.

가우스 소거법은 한 번 푸는 것이고, LU 분해의 존재 이유는 같은 행렬에 우변만 바꿔 가며 여러 번 풀 때 분해를 재사용하는 것입니다. 분해에 드는 계산은 n³/3쯤이지만 전진·후진 대입은 n²쯤이라, 우변이 100개면 소거를 100번 하는 대신 분해 한 번에 대입 200번이면 됩니다. 구조해석이나 회로해석처럼 같은 계에 하중만 바꿔 푸는 곳에서 차이가 큽니다.

피벗이 0이면 나눌 수 없고, 0이 아니어도 아주 작으면 오차가 폭발하기 때문입니다. 이 도구에서 피벗을 꺼 보면 확인할 수 있습니다. 왼쪽 위가 1e-12인 2×2 행렬에서 행을 바꾸지 않고 풀면 오차가 천만 배로 커지고, 1e-17까지 작아지면 아예 특이행렬처럼 보입니다.

U의 대각선을 모두 곱하고 행 교환 횟수만큼 부호를 뒤집으면 됩니다. 삼각행렬의 행렬식이 대각선 곱이고 L의 대각선이 모두 1이기 때문입니다. 여인수 전개로 세면 n!번이 드는 계산이 n³/3으로 줄어듭니다.

특이행렬(행렬식이 0)이면 소거 중에 피벗이 0이 되어 분해가 끝나지 않습니다. 이 도구는 그 경우를 알려 주고 연립방정식도 풀지 않습니다. 해가 없거나 무수히 많은 경우이기 때문입니다.

분해한 뒤 PA와 LU를 실제로 곱해 견준 잔차를 함께 보여 줍니다. 이 값이 0에 가깝지 않다면 분해가 잘못된 것입니다. 행렬식도 여인수 전개로 구한 값과 대조해 테스트로 고정했습니다.

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

알아두면 좋은 점

  • PA = LU를 계산 안에서 직접 검산합니다. P와 A를 곱한 것과 L과 U를 곱한 것의 차이 중 가장 큰 값을 잔차로 보여 주며, 무작위 행렬 100개에서 이 값이 1e-9보다 작은 것을 테스트로 고정했습니다.
  • 행렬식은 여인수 전개(n!번이 드는 다른 방법)로 구한 값과 무작위 행렬 60개에서 대조했습니다.
  • 연립방정식의 해는 원래 행렬에 다시 넣어 우변이 나오는지 확인합니다.
  • 피벗을 끄는 문을 남겨 둔 것은 왜 행을 바꿔야 하는지 화면에서 견주기 위해서입니다. 실제 계산에는 켜 두어야 합니다.
  • 0인지 보는 잣대는 행렬에서 가장 큰 값에 맞춥니다. 절대값 하나로 두면 성분이 모두 아주 작은 멀쩡한 행렬을 특이행렬로 잘못 보게 됩니다.
  • 행렬은 8×8까지 다룹니다.

함께 보면 좋은 도구

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