일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- eigenvalue
- CS정리
- 백준
- unity
- 재배치
- 다익스트라
- 동적링크
- 다이나믹 프로그래밍
- 구문트리
- 선형대수학
- vector
- 스레드전용저장소
- 스레드전용리소스
- 행렬
- 적재도구loader
- column space
- rust 스터디
- matrix
- 벡터
- 심벌 해석
- 링커
- Rust
- 컴파일러
- 코드포스
- 알고리즘
- 정적링크
- 대상파일
- c++
- linear algebra
- 컴퓨터밑바닥의비밀
- Today
- Total
개발_기록용
[선형대수학 정리] 22. LU 분해, PLU 분해, LDU 분해 본문
1. 배경
그래픽스 공부에 들어가기 전, 근본 중에서도 근본인 선형대수학을 먼저 파야겠다고 생각했다!
Chris Ohk 님의 Game Developer Roadmap 2022를 보고 내가 부족한 부분을 채워나가기로 결심했기 때문이다.
https://github.com/utilForever/game-developer-roadmap
GitHub - utilForever/game-developer-roadmap: Roadmap to becoming a game developer in 2022
Roadmap to becoming a game developer in 2022. Contribute to utilForever/game-developer-roadmap development by creating an account on GitHub.
github.com
.
2. 정리
LU분해 (LU decomposition)
행렬 A를 Lower triangular matrix L과
Upper triangular matrix U의 곱으로 나타내는 것을 의미한다.
A=LU 와 같이 변환하면 계산이 쉬워 이와 같은 분해를 진행한다.
LU 분해의 예시
위와 같이 변수가 세 개인 연립일차방정식을 풀 때
계수부분을 담은 행렬 A를 U 모양으로 만들기 위해 소거를 하게 된다.
이때 소거하는 과정을 어떤 행렬이 곱해지는 과정으로 볼 수 있다.
곱해지는 행렬의 모양이 L 모양이고, 첫번째로 구한 이 L 행렬은 L1이라 한다.
위와 같이 A 행렬을 U 모양으로 바꾸다보면
L2, L3와 같은 행렬들을 찾게 되고 그 결과
L3 L2 L1 A = U
와 같은 형태로 구할 수 있으니, 이들의 역행렬을 곱해 계산한다.
- Lower triangular matrix는 determinant가 대각성분의 곱이므로 0이 아니다.
- Upper triangular matrix도 동일한 성질을 가진다.
- 그러므로 L, U 모양의 행렬 모두 역행렬을 가진다.
L1, L2, L3의 역행렬을 곱한 결과도 L 모양이므로
역행렬을 곱해 좌변에 A만 남기면, A = LU로의 LU 분해가 완성된다.
LU분해의 응용과 LDU 분해
LU 분해를 하게 되면 Ax = b를 Ax = LUx = b로 바꿀 수 있고,
Ux = y로 치환하여 총 두번 간단한 행렬식을 풀게 된다.
그리고 U의 대각성분만 뽑아 행렬 D를 만들면
U의 대각성분이 모두 1이 되어 계산하기 깔끔해지고
이 경우 A = LDU가 되므로 이를 LDU 분해 (LDU decomposition) 라 한다.
PLU 분해
근데 A = LU 모양으로 분해가 안되는 경우
행들을 서로 바꿔 LU 모양으로 바꿀 수 있도록 하려 한다.
이때 행들을 서로 바꿔주는 역할을 행렬 P가 한다고 하고
PA = LU와 같이 분해할 경우 A = P^{-1}LU가 된다.
근데 구해본 결과 P는 orthogonal matrix이므로 역행렬이 곧 전치행렬이다.
그리고 구한 전치행렬이 곧 자기 자신과 동일해 A = PLU가 된다.
이를 PLU 분해 (PLU decomposition) 라 한다.
'선형대수학' 카테고리의 다른 글
[선형대수학 정리] 23. 유사행렬 (Similar matrix) (0) | 2024.07.29 |
---|---|
[선형대수학 정리] 21. 의사역행렬 (pseudo inverse) 짤막 정리 (0) | 2024.07.29 |
[선형대수학 정리] 20. 특이값 분해 (SVD, Singular value Decomposition) (0) | 2024.07.29 |
[선형대수학 정리] 19. 주성분 분석 (PCA : Pricipal Component Analysis) (7) | 2024.07.24 |
[선형대수학 정리] 18. 고윳값 분해 (eigen decomposition) (7) | 2024.07.24 |