🧮
🧮 수학·통계

LU 분해 계산기 (부분 피벗팅을 이용한 P·A = L·U)

입력하면 바로 계산됩니다.

입력값

LU 분해 계산기 쉽게 이해하기 — 개념과 원리

이 계산기는 부분 피벗팅을 써서 정사각행렬을 P·A = L·U로 분해합니다. L은 대각 성분이 1인 하삼각행렬, U는 상삼각행렬이고, P는 행 교환을 기록합니다. 행 교환 횟수와 행렬식도 알려 줍니다. 수치 선형대수, 같은 행렬로 여러 연립방정식을 풀 때, 가우스 소거 손계산을 확인할 때 쓸 수 있습니다.

LU 분해P · A = L · UP010100001L1001/210−1/211U4−60041001피벗을 가장 큰 4로 하려고 1, 2행 교환det A = (−1)¹ × 4 × 4 × 1 = −16
L은 소거에 쓴 배수, U는 남은 상삼각 행렬, P는 행 교환 기록입니다.

계산 방법

  1. 각 열 k에서 절댓값이 가장 큰 성분이 피벗이 되도록 행을 바꾸고(부분 피벗팅), 그 교환을 P에 기록합니다.
  2. 피벗 아래 성분을 소거하며, 각 승수 l_ik = u_ik ÷ u_kk를 L에 저장합니다.
  3. 남는 것이 상삼각행렬 U입니다.

det(A) = (−1)^(행 교환 횟수) × (U의 대각 성분의 곱)

원리

가우스 소거는 행의 배수를 빼서 A를 상삼각행렬로 만듭니다. 그 배수들을 L에 기록해 두면 소거를 되돌릴 수 있어서 L·U가 (P의 순서로 바뀐 행의) A를 다시 만듭니다. L과 U를 알면 A x = b를 빠른 삼각 대입 두 번으로 풀 수 있으므로, 비싼 소거는 한 번만 하고 여러 우변에 다시 쓸 수 있습니다. 가장 큰 성분을 피벗으로 쓰면 모든 승수의 크기가 1 이하가 되어 반올림 오차가 줄어듭니다.

예제 풀이

기본값: A = [2 1 1; 4 −6 0; −2 7 2], 부분 피벗팅.

  1. 1열에서 가장 큰 성분은 4(2행)이므로 1행과 2행을 바꿉니다: P = [0 1 0; 1 0 0; 0 0 1], 행 교환 1번입니다.
  2. 승수는 2행이 2/4 = 1/2, 3행이 −2/4 = −1/2이며, 소거 뒤 두 번째 피벗은 4입니다.
  3. 2열의 승수는 4/4 = 1이고, 마지막 피벗은 1입니다.
  4. L = [1 0 0; 1/2 1 0; −1/2 1 1], U = [4 −6 0; 0 4 1; 0 0 1]입니다.
  5. det(A) = (−1)¹ × 4 × 4 × 1 = −16입니다.

결과 해석

U의 대각 성분이 피벗이며, 피벗이 0이면 특이행렬입니다. L·U를 곱하면 P가 정한 순서로 행이 바뀐 A가 나와야 합니다. 행 교환 횟수는 행렬식의 부호에만 영향을 줍니다. 연립방정식의 우변이 여러 개라면 L과 U를 한 번 구해 두고 대입만 반복하면 되므로 계산이 크게 줄어듭니다.

흔한 실수

주의: 결과는 표시를 위해 반올림됩니다. 크거나 조건이 나쁜 행렬은 수치 라이브러리를 쓰고 잔차를 확인하십시오.

자주 묻는 질문

LU 분해는 어디에 쓰이나요?

연립방정식을 효율적으로 풀고, 행렬식과 역행렬을 구하는 데 쓰입니다.

왜 부분 피벗팅을 하나요?

0이나 아주 작은 피벗으로 나누는 것을 피해 반올림 오차를 줄이기 위해서입니다.

LU로 행렬식은 어떻게 구하나요?

U의 대각 성분을 곱하고, 행을 바꾼 횟수만큼 부호를 바꿉니다.

출처: J. Demmel, UC Berkeley Math 221 lecture notes, Lecture 5 (2020), Gaussian elimination with partial pivoting

2026년 11월 8일 확인. J. Demmel, UC Berkeley Math 221 강의 노트 Lecture 5 (2020년 가을): A = P·L·U (P는 치환행렬, L은 단위 하삼각행렬 L(i,i) = 1, U는 상삼각행렬); 부분 피벗팅 가우스 소거는 피벗이 그 열에서 절댓값이 가장 큰 성분이 되도록 행을 바꾸며, 그 결과 |L(i,j)| ≤ 1.

🧮 수학·통계 계산기 전체 →🏠 홍라이프 계산기 홈 →