QR 분해는 행렬 분해 방법 중 하나로, 주로 직교 행렬과 상삼각 행렬로 행렬을 분해하는 방법을 말한다. 이 절에서는 QR 분해와 유사하거나 대체 가능한 기타 행렬 분해 방법들을 비교하고, 각각의 분해법이 어떤 상황에서 더 유리한지, 또는 QR 분해와 어떻게 차별화되는지를 다루겠다.
LU 분해
정의 및 개념:
LU 분해는 어떤 행렬 \mathbf{A}를 하삼각 행렬 \mathbf{L}과 상삼각 행렬 \mathbf{U}로 분해하는 방법이다. 즉,
여기서 \mathbf{L}은 대각 성분이 1인 하삼각 행렬(lower triangular matrix)이고, \mathbf{U}는 상삼각 행렬(upper triangular matrix)이다.
LU 분해와 QR 분해의 비교:
-
분해 형태: LU 분해는 \mathbf{A}를 \mathbf{L}과 \mathbf{U}로 분해하는 반면, QR 분해는 \mathbf{A}를 직교 행렬 \mathbf{Q}와 상삼각 행렬 \mathbf{R}로 분해한다. QR 분해는 \mathbf{Q}가 직교 행렬이기 때문에 행렬의 노름이 보존되는 특징이 있다.
-
수치적 안정성: QR 분해는 수치적으로 더 안정적이다. LU 분해는 특정 행렬의 경우(예: 특이 행렬)에서 분해가 불가능할 수 있으며, 피벗팅(pivoting)이 필요한 경우가 많다. 반면, QR 분해는 거의 모든 경우에 안정적으로 수행된다.
-
계산 복잡도: LU 분해는 일반적으로 O(n^3)의 계산 복잡도를 가지며, QR 분해도 유사하게 O(n^3)의 계산 복잡도를 갖는다. 그러나 QR 분해는 더 많은 계산이 필요하여 일반적으로 더 느리다.
-
적용 사례: LU 분해는 주로 선형 시스템 해법(예: \mathbf{A} \mathbf{x} = \mathbf{b})에서 사용되며, QR 분해는 최소 제곱 문제와 같은 과적정(overdetermined) 시스템에서 주로 사용된다.
SVD (Singular Value Decomposition)
정의 및 개념:
특이값 분해(SVD)는 행렬 \mathbf{A}를 세 개의 행렬 \mathbf{U}, \mathbf{\Sigma}, \mathbf{V}^T로 분해하는 방법이다. 즉,
여기서 \mathbf{U}와 \mathbf{V}는 각각 좌우 직교 행렬이고, \mathbf{\Sigma}는 대각 행렬로 특이값(singular values)이 포함되어 있다.
SVD와 QR 분해의 비교:
-
분해 형태: QR 분해는 직교 행렬과 상삼각 행렬로 분해하는 반면, SVD는 좌우 직교 행렬과 대각 행렬로 분해한다. SVD는 모든 행렬에 대해 존재하지만, QR 분해는 정사각 행렬 또는 m \times n 행렬(m \geq n)에서만 일반적으로 정의된다.
-
수치적 안정성: SVD는 QR 분해보다 수치적으로 더 안정적이다. 특히, 매우 작은 특이값을 가진 행렬에서도 안정적으로 동작한다. SVD는 행렬의 계수를 계산하거나 임의의 행렬의 순위를 계산할 때 필수적인 도구이다.
-
계산 복잡도: SVD는 일반적으로 QR 분해보다 계산 비용이 더 높다. SVD의 계산 복잡도는 O(mn^2)이다. 이는 SVD가 대형 행렬에 대해 매우 느리다는 것을 의미한다.
-
적용 사례: SVD는 데이터 분석(예: 주성분 분석, PCA), 임베딩, 노이즈 제거 등 다양한 응용에서 사용된다. QR 분해는 SVD보다 상대적으로 더 단순한 선형 대수 문제에 사용된다.
Cholesky 분해
정의 및 개념:
Cholesky 분해는 양의 정부호(positive definite) 행렬 \mathbf{A}를 하삼각 행렬 \mathbf{L}과 그 전치 행렬 \mathbf{L}^T로 분해하는 방법이다. 즉,
여기서 \mathbf{L}은 대각 성분이 모두 양수인 하삼각 행렬이다.
Cholesky 분해와 QR 분해의 비교:
-
분해 형태: Cholesky 분해는 행렬을 두 개의 하삼각 행렬로 분해하는 반면, QR 분해는 직교 행렬과 상삼각 행렬로 분해한다. Cholesky 분해는 대칭 행렬이면서 양의 정부호 행렬에 대해서만 적용 가능하다는 제한이 있다.
-
수치적 안정성: Cholesky 분해는 양의 정부호 행렬에 대해서 매우 안정적이다. QR 분해는 일반적으로 더 넓은 범위의 행렬에 대해 적용 가능하며, 특히 비정방행렬이나 비대칭 행렬에서도 사용할 수 있다.
-
계산 복잡도: Cholesky 분해의 계산 복잡도는 O(n^3)으로, QR 분해와 유사한 복잡도를 가지지만, 행렬이 대칭이고 양의 정부호라는 제약 조건 때문에 실제 계산에서는 Cholesky 분해가 더 효율적일 수 있다.
-
적용 사례: Cholesky 분해는 주로 행렬이 대칭이고 양의 정부호인 경우에 선형 시스템을 해결하는 데 사용된다. 예를 들어, 정규 방정식(normal equations)을 풀 때 매우 유용하다. QR 분해는 보다 일반적인 형태의 행렬에 대해 적용 가능하며, 주로 최소 제곱 문제나 행렬의 계수를 계산하는 데 사용된다.
Schur 분해
정의 및 개념:
Schur 분해는 임의의 복소수 행렬 \mathbf{A}를 하나의 상삼각 행렬 \mathbf{T}와 하나의 유니터리 행렬 \mathbf{U}로 분해하는 방법이다. 즉,
여기서 \mathbf{U}는 유니터리 행렬(unitary matrix)이고, \mathbf{T}는 상삼각 행렬(triangular matrix)이다. \mathbf{U}^H는 \mathbf{U}의 에르미트 전치(Hermitian transpose)를 의미한다.
Schur 분해와 QR 분해의 비교:
-
분해 형태: Schur 분해는 복소수 행렬에 대해 정의되며, 유니터리 행렬과 상삼각 행렬로 행렬을 분해한다. QR 분해는 실수 행렬에 대해 주로 사용되며, 직교 행렬과 상삼각 행렬로 분해한다. Schur 분해는 복소수 행렬의 경우에 더욱 일반적인 분해 방법이다.
-
수치적 안정성: Schur 분해는 QR 분해와 유사하게 수치적으로 안정적이다. 특히, Schur 분해는 고유값 계산과 같은 응용에서 중요한 역할을 한다.
-
계산 복잡도: Schur 분해의 계산 복잡도는 QR 분해와 유사하게 O(n^3)이다. 그러나 Schur 분해는 일반적으로 복소수 행렬의 경우에 더 복잡한 계산을 필요로 한다.
-
적용 사례: Schur 분해는 주로 복소수 행렬의 고유값 문제를 해결하는 데 사용된다. QR 분해는 일반적으로 실수 행렬에서 최소 제곱 문제나 선형 시스템 해법 등에 더 자주 사용된다.
Eigen 분해
정의 및 개념:
Eigen 분해(고유값 분해)는 정사각 행렬 \mathbf{A}를 고유벡터 행렬 \mathbf{V}와 대각 행렬 \mathbf{\Lambda}로 분해하는 방법이다. 즉,
여기서 \mathbf{V}는 고유벡터들로 이루어진 행렬이고, \mathbf{\Lambda}는 \mathbf{A}의 고유값들이 주대각선에 위치한 대각 행렬이다.
Eigen 분해와 QR 분해의 비교:
-
분해 형태: Eigen 분해는 정사각 행렬에 대해 고유벡터와 고유값으로 분해를 한다. 반면, QR 분해는 직교 행렬과 상삼각 행렬로 분해한다. Eigen 분해는 주로 행렬의 고유값과 고유벡터를 구하는 데 사용된다.
-
수치적 안정성: Eigen 분해는 모든 행렬에 대해 안정적으로 계산할 수 있는 것은 아니다. 특히, 고유값이 근접하거나 중복되는 경우 계산이 어려울 수 있다. 반면, QR 분해는 이러한 경우에도 수치적으로 더 안정적이다.
-
계산 복잡도: Eigen 분해의 계산 복잡도는 일반적으로 QR 분해보다 더 높다. 고유값 계산 자체가 매우 복잡한 작업이기 때문에, 대형 행렬의 경우 매우 비효율적일 수 있다.
-
적용 사례: Eigen 분해는 주로 시스템 안정성 분석, 고유 모드 분석, 동적 시스템의 진동 모드 해석 등에 사용된다. QR 분해는 다양한 선형 대수 문제에 사용되며, 특히 최소 제곱 문제에서 자주 사용된다.