개발자를 위한 실전 선형대수학(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를 생성할 수 있음)
그러나 행렬
'Datascience > Linear Algebra' 카테고리의 다른 글
[개발자를 위한 실전 선형대수학] 10장 일반 선형 모델 및 최소제곱법 (0) | 2024.02.06 |
---|---|
[개발자를 위한 실전 선형대수학] 직교 행렬과 QR 분해 (0) | 2024.01.27 |
[개발자를 위한 실전 선형대수학] 역행렬 (0) | 2024.01.27 |
[개발자를 위한 실전 선형대수학] 행렬 응용: 데이터 분석에서의 행렬 (0) | 2024.01.25 |
[개발자를 위한 선형대수학] 행렬의 확장 개념(2) (0) | 2024.01.24 |