Hello Computer Vision

LU분해란 무엇인가 본문

선형대수

LU분해란 무엇인가

지웅쓰 2022. 12. 27. 00:34

우선 LU분해에 들어가기 전에 행렬의 재미난 성질(?)을 한번 살펴보겠습니다.

(여기서 L은 하삼각행렬 U는 상삼각행렬을 나타내는 기호입니다. LU분해에 이용되는 행렬 A는 정사각행렬)

 \begin{bmatrix}1 & 2 \\3 & 4 \end{bmatrix} 이러한 행렬에 대해 1행과 2행의 순서를 바꾸고 싶다면 어떻게 할까요?

 

$\begin{bmatrix}0 & 1 \\1 & 0 \end{bmatrix}$  $\begin{bmatrix}1 & 2 \\3 & 4 \end{bmatrix}$

이러한 행렬을 앞에다 곱해주면 됩니다.

곱해주는 행렬을 P라고 한다면 P * A 로 표시할 수 있습니다.

조금 응용해가지고 1행에다 2행을 더한 값으로 표시하고 싶다면

 \begin{bmatrix}1 & 1 \\0 & 1 \end{bmatrix}  이러한 행렬을 앞에다 곱해주면 됩니다. 나름 재밌죠?

 

다른 재밌는 성질을 한개 더 소개해보려고 합니다

바로 하삼각행렬을 L, 일반 행렬을 A라 하였을 때 L * A = REF 라고 말할 수 있습니다.

(물론 일반 행렬 A에서의 행간 순서를 바꿔줄 필요가 있을 때 곱해지는 행렬은 L이라 하지 않습니다)

예시를 한번 들어보겠습니다

\begin{bmatrix}2 & 3 & 1 \\1 & 0 & 2\end{bmatrix}

이러한 행렬 A가 있고 이를 REF꼴로 만들려고 합니다. 먼저 2행과 1행의 위치를 바꿉시다.

\begin{bmatrix}0 & 1 \\1 & 0 \end{bmatrix}

이러한 행렬 P를 앞에다 곱해줍니다. 

그렇다면 결과는  \begin{bmatrix}1 & 0 & 2 \\2 & 3 & 1\end{bmatrix} 이 됩니다.

2행에 있는 2를 0으로 만들 필요가 있기 때문에 또 다른 행렬을 A에 곱해줍니다.

1행은 그대로 있고 2행 1열에 있는 성분을 1행 1열 원소에 -2배만큼 더해야하니

\begin{bmatrix}1 & 0 \\-2 & 1 \end{bmatrix} 이러한 행렬을 A에다 곱해줍니다.그렇다면 결과는

\begin{bmatrix}1 & 0 & 2 \\0 & 3 & -3\end{bmatrix}

이렇게 되고 마지막으로 2행 2열에 있는 원소를 1로 만들기 위해 1/3을 곱해줍니다.

\begin{bmatrix}1 & 0 \\0 & 1/3 \end{bmatrix}

이러한 결과 마지막 행렬 A는  \begin{bmatrix}1 & 0 & 2 \\0 & 1 & -1\end{bmatrix}

이렇게 REF 형태를 가지게 됩니다. 잘 보시면 지금까지 곱해진 행렬들은 다 하삼각행렬임을 알 수 있습니다.

(물론 맨 처음 순서를 바꾸기 위한 행렬인 P제외)

이것을 기호로 나타낸다면 LA = REF

 

또 한가지! REF는 가우스 소거법을 수행한 결과라고 할 수 있습니다. 가우스 조던 소거법을 사용한다면 RREF가 나오겠죠? 

REF상태에서 조던 소거법을 추가로 수행한다면 어떤 모양이 될까요? 한번 살펴보겠습니다.

\begin{bmatrix}1 & 2 & 3 \\ 0 & 1 & 5 \\ 0 & 0 & 1 \end{bmatrix} 이러한 행렬A에서(REF행렬)

$\begin{bmatrix}1 & 0 & -3 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix}$ $\begin{bmatrix}1 & 0 & 0 \\ 0 & 1 & -5 \\ 0 & 0 & 1 \end{bmatrix}$ $\begin{bmatrix}1 & -2 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix}$

이러한 3개의 행렬을 위에서부터 차례차례 행렬 A에 곱하게 되면 결과는 단위행렬이 나오게됩니다.

조금 전에 곱해진 상삼각행렬을 U라고 하므로 ULA = I

그리고 이러한 U와 L의 역행렬들을 앞에서부터 곱해준다면 $A = L^{-1}U^{-1}$이러한 모습을 띄게되고

이것을 LU분해라고 합니다.(바로 위에 쓴 것은 모든 LU 행렬들은 역행렬이 존재하기 때문에 입니다.)

--> 어떠한 정사각행렬 A는 하삼각행렬의 역행렬과 상삼각형의 역행렬의 곱으로 표현될 수 있다.

 

그리고 추가로 REF, RREF를 만드는 과정에 대하여 한번 생각해보았는데

REF를 만들기 위해 1행을 작업할 때는 2행~n행까지의 1열 원소 연산이 필요하고 
2행을 작업할 때는 3행~n행까지의 2열 원소 연산이 필요합니다.(여기서 1행 연산을 안하는 이유는 하면 행렬의 형태가 가우스 소거법 형태를 벗어납니다) 그렇기 때문에 REF를 만들 때는 하삼각행렬들의 연산이 필요하고 RREF를 만들 때는(단위행렬) 상삼각행렬이 필요한 것입니다.