촐레스키 분해 계산기 쉽게 이해하기 — 개념과 원리
이 계산기는 대칭 양의 정부호 행렬 A를 A = L·Lᵀ로 분해합니다. L은 대각 성분이 양수인 하삼각행렬입니다. L과 그 전치, 대각 성분, 행렬식, 양의 정부호 여부를 보여 줍니다. 선형대수 숙제, 최소제곱 문제 풀이, 상관된 확률변수의 모의실험에 쓸 수 있습니다.
계산 방법
열 단위로 j = 1 … n에 대해:
l_jj = √(a_jj − Σ_(k<j) l_jk²)
l_ij = (a_ij − Σ_(k<j) l_ik l_jk) ÷ l_jj (j보다 아래 행 i)
det(A) = (l₁₁ × l₂₂ × … × l_nn)²
- 제곱근 안의 값이 0이거나 음수가 되면 A는 양의 정부호가 아니며, 그 사실을 알려 줍니다.
원리
대칭행렬이 0이 아닌 모든 벡터 x에 대해 xᵀAx > 0이면 양의 정부호라고 합니다. 공분산행렬과 최소제곱의 정규방정식이 대표적인 예입니다. 이런 행렬은 양수처럼 행동해서, 양수에 제곱근이 있듯이 A = L·Lᵀ인 '제곱근' L을 가집니다. L의 대각 성분을 양수로 정하면 분해는 하나뿐입니다. 대칭성을 이용하므로 LU 분해의 약 절반 계산량으로 끝나며, 제곱근 계산이 실패한다는 것 자체가 양의 정부호가 아니라는 판정이 됩니다.
예제 풀이
기본값: A = [4 12 −16; 12 37 −43; −16 −43 98].
- l₁₁ = √4 = 2, l₂₁ = 12 ÷ 2 = 6, l₃₁ = −16 ÷ 2 = −8입니다.
- l₂₂ = √(37 − 6²) = √1 = 1, l₃₂ = (−43 − (−8)(6)) ÷ 1 = 5입니다.
- l₃₃ = √(98 − (−8)² − 5²) = √9 = 3입니다.
- L = [2 0 0; 6 1 0; −8 5 3], Lᵀ = [2 6 −8; 0 1 5; 0 0 3], 대각 성분은 2, 1, 3입니다.
- det(A) = (2 × 1 × 3)² = 36이며, 모든 피벗이 양수라 양의 정부호입니다.
결과 해석
A x = b를 풀려면 먼저 L y = b를 앞에서부터 대입해 풀고, 이어서 Lᵀ x = y를 뒤에서부터 대입해 풉니다. 공분산이 A인 상관된 정규 확률변수를 만들려면 서로 독립인 표준정규 벡터에 L을 곱하면 됩니다. 분해가 실패했다면 행렬이 양의 정부호가 아니라는 뜻이며, 반올림 오차나 서로 맞지 않는 공분산 추정치가 원인인 경우가 많습니다.
흔한 실수
- 대칭이 아닌 행렬을 넣는 경우
- 앞 항을 빼지 않고 원래 대각 성분에 바로 제곱근을 씌우는 경우
- L·Lᵀ와 Lᵀ·L을 혼동하는 경우
- 피벗이 0인 양의 준정부호 행렬에서 결과를 기대하는 경우
자주 묻는 질문
촐레스키 분해는 어디에 쓰이나요?
대칭 양의 정부호 연립방정식, 최소제곱 문제, 상관된 변수의 모의실험에 쓰입니다.
행렬이 양의 정부호인지 어떻게 아나요?
촐레스키 분해가 모든 피벗이 양수인 채로 끝나면 양의 정부호입니다.
분해는 하나뿐인가요?
L의 대각 성분을 양수로 정하면 하나뿐입니다.
출처: E. W. Weisstein, "Cholesky Decomposition", Wolfram MathWorld