Datascience/Linear Algebra

[개발자를 위한 실전 선형대수학] 9장 행 축소와 LU 분해

hchanryu 2024. 1. 28. 16:40

 

개발자를 위한 실전 선형대수학(Practical Linear Algebra for Data Science)

9장 행 축소와 LU 분해: 선형대수학의 핵심 분해법 2

 

 

 

 


 

연립방정식

LU 분해와 그 응용을 위해서는 행 축소와 가우스 소거법을 이해해야함.

우선 

 

행축소(row reduction)

- 행렬로 나타낸 연립방정식 풀이법

- 행 축소의 목표는 밀집 행렬을 상삼각 행렬로 변환하는 것

 

가우스 소거법

- 역행렬을 ㅜ구하지 않고 행렬 방정식을 풀 수 있는 방법 -> 행연산을 이용하는 가우스 소거법

 

LU 분해(LU Decomposition)

LU는 하삼각, 상삼각에서와 같이 아래(Lower), 위(Upper) 방향을 의미함

▶ 즉 행렬을 두 개의 삼각 행렬의 곱으로 분해

 

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

 

#python에서의 LU 분해

import scipy.linalg

A = np.array([[2,2,4],[1,0,3],[2,1,2]])

_,L,U =scipy.linalg.lu(A)

 

행축소를 $L^{-1}A=U$와 같이 표현할 수 있음

여기서 $L^{-1}$은 밀집 행렬 A를 상삼각 행렬U로 변환하는 행 변환 집합임

사다리꼴 형태가 고유하지 않으므로, LU 분해도 고유하지 않음

(무한한 조합의 하삼각 행렬과 상삼각 행렬을 곱하여 행렬 A를 생성할 수 있음)

 

그러나 행렬