LU 분해를 사용한 역행렬 계산은 선형 대수에서 매우 중요한 응용 중 하나이다. 역행렬을 직접 계산하기보다는, LU 분해를 이용하여 효율적으로 계산할 수 있다. 이 과정에서는 주어진 행렬을 LU 분해한 후, 각각의 삼각 행렬의 역행렬을 계산하고 이를 조합하여 전체 행렬의 역행렬을 구하게 된다.
LU 분해를 통한 역행렬 계산의 개요
주어진 \mathbf{A}를 다음과 같이 LU 분해한다고 가정하자.
\mathbf{A} = \mathbf{L} \mathbf{U}
여기서 \mathbf{L}은 하삼각행렬(lower triangular matrix), \mathbf{U}는 상삼각행렬(upper triangular matrix)이다.
행렬 \mathbf{A}의 역행렬 \mathbf{A}^{-1}을 구하기 위해서는 다음과 같은 과정을 거친다.
\mathbf{A}^{-1} = (\mathbf{L} \mathbf{U})^{-1}
위 식에서, 두 행렬의 곱의 역행렬은 각 행렬의 역행렬의 곱의 순서를 반대로 한 것과 같다는 특성을 이용하여 다음과 같이 표현할 수 있다.
\mathbf{A}^{-1} = \mathbf{U}^{-1} \mathbf{L}^{-1}
이제, \mathbf{L}^{-1}과 \mathbf{U}^{-1}을 각각 구하여 이를 곱하면 \mathbf{A}^{-1}을 계산할 수 있다.
하삼각행렬의 역행렬 계산
먼저, \mathbf{L}이 하삼각행렬이므로, 이 행렬의 역행렬 \mathbf{L}^{-1}은 다음의 과정을 통해 구할 수 있다.
하삼각행렬의 역행렬을 구하기 위해서는 순차적으로 다음과 같은 식을 풀어야 한다.
\mathbf{L} \mathbf{L}^{-1} = \mathbf{I}
여기서 \mathbf{I}는 단위행렬(identity matrix)이다. 이 식은 다음과 같이 전개할 수 있다.
\begin{pmatrix}
l_{11} & 0 & 0 & \cdots & 0 \\
l_{21} & l_{22} & 0 & \cdots & 0 \\
l_{31} & l_{32} & l_{33} & \cdots & 0 \\
\vdots & \vdots & \vdots & \ddots & \vdots \\
l_{n1} & l_{n2} & l_{n3} & \cdots & l_{nn} \\
\end{pmatrix}
\begin{pmatrix}
m_{11} & 0 & 0 & \cdots & 0 \\
m_{21} & m_{22} & 0 & \cdots & 0 \\
m_{31} & m_{32} & m_{33} & \cdots & 0 \\
\vdots & \vdots & \vdots & \ddots & \vdots \\
m_{n1} & m_{n2} & m_{n3} & \cdots & m_{nn} \\
\end{pmatrix}
=
\begin{pmatrix}
1 & 0 & 0 & \cdots & 0 \\
0 & 1 & 0 & \cdots & 0 \\
0 & 0 & 1 & \cdots & 0 \\
\vdots & \vdots & \vdots & \ddots & \vdots \\
0 & 0 & 0 & \cdots & 1 \\
\end{pmatrix}
이로부터 \mathbf{L}^{-1}의 원소 m_{ij}들을 다음과 같은 방정식으로 구할 수 있다.
m_{ii} = \frac{1}{l_{ii}}
m_{ij} = -\frac{1}{l_{ii}} \sum_{k=i+1}^{j} l_{ik} m_{kj}, \quad \text{for } j > i
상삼각행렬의 역행렬 계산
\mathbf{U}의 경우, 상삼각행렬이므로 이 행렬의 역행렬 \mathbf{U}^{-1}은 유사한 방식으로 구할 수 있다.
\mathbf{U} \mathbf{U}^{-1} = \mathbf{I}
이 식을 전개하면 다음과 같이 표현된다.
\begin{pmatrix}
u_{11} & u_{12} & u_{13} & \cdots & u_{1n} \\
0 & u_{22} & u_{23} & \cdots & u_{2n} \\
0 & 0 & u_{33} & \cdots & u_{3n} \\
\vdots & \vdots & \vdots & \ddots & \vdots \\
0 & 0 & 0 & \cdots & u_{nn} \\
\end{pmatrix}
\begin{pmatrix}
n_{11} & n_{12} & n_{13} & \cdots & n_{1n} \\
0 & n_{22} & n_{23} & \cdots & n_{2n} \\
0 & 0 & n_{33} & \cdots & n_{3n} \\
\vdots & \vdots & \vdots & \ddots & \vdots \\
0 & 0 & 0 & \cdots & n_{nn} \\
\end{pmatrix}
=
\begin{pmatrix}
1 & 0 & 0 & \cdots & 0 \\
0 & 1 & 0 & \cdots & 0 \\
0 & 0 & 1 & \cdots & 0 \\
\vdots & \vdots & \vdots & \ddots & \vdots \\
0 & 0 & 0 & \cdots & 1 \\
\end{pmatrix}
상삼각행렬의 경우 \mathbf{U}^{-1}의 원소 n_{ij}는 다음과 같은 식으로 계산할 수 있다.
n_{ii} = \frac{1}{u_{ii}}
n_{ij} = -\frac{1}{u_{jj}} \sum_{k=i}^{j-1} u_{ik} n_{kj}, \quad \text{for } i < j
역행렬 계산의 결합
이제 \mathbf{L}^{-1}과 \mathbf{U}^{-1}을 구했으므로, 이들을 결합하여 전체 행렬 \mathbf{A}의 역행렬을 계산할 수 있다.
\mathbf{A}^{-1} = \mathbf{U}^{-1} \mathbf{L}^{-1}
이 과정은 일반적으로 다음의 두 단계로 나뉜다.
-
중간 행렬 계산: 먼저 \mathbf{L}^{-1}를 구하고, 이를 사용하여 중간 행렬 \mathbf{M} = \mathbf{U}^{-1} \mathbf{L}^{-1}을 계산한다.
-
최종 역행렬 계산: \mathbf{M}이 최종적으로 \mathbf{A}^{-1}가 된다.
예제: LU 분해를 이용한 역행렬 계산
실제로 \mathbf{A}가 주어졌을 때, LU 분해를 이용하여 역행렬을 계산하는 과정을 예제로 살펴보겠다.
행렬 \mathbf{A}의 LU 분해
행렬 \mathbf{A}를 다음과 같이 가정해봅시다.
\mathbf{A} =
\begin{pmatrix}
2 & 3 & 1 \\
4 & 7 & 2 \\
6 & 18 & 3
\end{pmatrix}
이 행렬을 LU 분해하면 다음과 같이 나온다.
\mathbf{L} =
\begin{pmatrix}
1 & 0 & 0 \\
2 & 1 & 0 \\
3 & 6 & 1
\end{pmatrix},
\quad
\mathbf{U} =
\begin{pmatrix}
2 & 3 & 1 \\
0 & 1 & 0 \\
0 & 0 & -3
\end{pmatrix}
\mathbf{L}^{-1}의 계산
하삼각행렬 \mathbf{L}의 역행렬 \mathbf{L}^{-1}을 계산해봅시다.
\mathbf{L}^{-1} =
\begin{pmatrix}
1 & 0 & 0 \\
-2 & 1 & 0 \\
-3 & 6 & 1
\end{pmatrix}
\mathbf{U}^{-1}의 계산
다음으로 상삼각행렬 \mathbf{U}의 역행렬 \mathbf{U}^{-1}을 계산한다.
\mathbf{U}^{-1} =
\begin{pmatrix}
\frac{1}{2} & -\frac{3}{2} & \frac{1}{6} \\
0 & 1 & 0 \\
0 & 0 & -\frac{1}{3}
\end{pmatrix}
역행렬 \mathbf{A}^{-1}의 계산
마지막으로, \mathbf{U}^{-1}과 \mathbf{L}^{-1}을 곱하여 \mathbf{A}^{-1}을 계산한다.
\mathbf{A}^{-1} = \mathbf{U}^{-1} \mathbf{L}^{-1} =
\begin{pmatrix}
\frac{1}{2} & -\frac{3}{2} & \frac{1}{6} \\
0 & 1 & 0 \\
0 & 0 & -\frac{1}{3}
\end{pmatrix}
\begin{pmatrix}
1 & 0 & 0 \\
-2 & 1 & 0 \\
-3 & 6 & 1
\end{pmatrix}
=
\begin{pmatrix}
5 & -3 & 1 \\
-2 & 1 & 0 \\
-1 & 2 & -\frac{1}{3}
\end{pmatrix}
따라서 \mathbf{A}의 역행렬 \mathbf{A}^{-1}은 다음과 같이 구해진다.
\mathbf{A}^{-1} =
\begin{pmatrix}
5 & -3 & 1 \\
-2 & 1 & 0 \\
-1 & 2 & -\frac{1}{3}
\end{pmatrix}
이로써 LU 분해를 이용한 역행렬 계산의 과정을 마칠 수 있다.
LU 분해를 이용한 역행렬 계산의 효율성
LU 분해를 통한 역행렬 계산은 특히 대규모 행렬에 대해 매우 효율적이다. LU 분해를 한 번 수행하면, 이 분해 결과를 이용해 여러 가지 문제를 효율적으로 해결할 수 있기 때문이다. 예를 들어, 동일한 행렬에 대해 여러 번 역행렬을 계산하거나, 다수의 선형 시스템을 해결해야 하는 경우, LU 분해를 이용하면 계산 비용을 크게 줄일 수 있다.
수치적 안정성과 조건수
역행렬을 계산할 때 수치적 안정성 역시 중요한 고려 사항이다. LU 분해를 이용한 방법이 수치적으로 얼마나 안정적인지 평가하기 위해서는 행렬의 조건수(condition number)를 분석할 필요가 있다. 조건수가 크면 행렬이 잘못된 결과를 초래할 가능성이 커지므로, 특히 역행렬 계산 시 주의가 필요하다.