일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- rust 스터디
- 재배치
- eigenvalue
- c++
- matrix
- 대상파일
- 링커
- linear algebra
- 스레드전용리소스
- 심벌 해석
- CS정리
- 정적링크
- 알고리즘
- unity
- 동적링크
- vector
- 선형대수학
- 코드포스
- 다익스트라
- 백준
- 스레드전용저장소
- 행렬
- 컴파일러
- 구문트리
- Rust
- 적재도구loader
- 컴퓨터밑바닥의비밀
- column space
- 벡터
- 다이나믹 프로그래밍
- Today
- Total
개발_기록용
[선형대수학 정리] 8. 대각행렬과 직교행렬 본문
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. 정리

대각행렬
대각성분 이외의 성분이 모두 0이면
이런 행렬은 대각행렬 (Diagonal matrix)라고 한다.
이때, 대각성분 이외의 성분은 off-diagonal 하다고 하며
앞에서 다룬 항등행렬 I도 대각행렬에 포함된다.

예를 들어, 위와 같은 행렬 들이 있다고 하자.
왼쪽 두개의 행렬은 각각 2x2, 3x3 정방행렬 (square matrix)이고,
오른쪽 3x4행렬은 정방행렬과 구분하고자 rectagular matrix라 한다.
그러면 세 개의 행렬 모두 off-diagonal element들이 0이므로
모두 대각행렬 (diagonal matrix)이며,
뒤에꺼는 구별한 방식을 따라 rectagular diagonal matrix라고 한다.
**참고로,D=diag(a) 와 같은 표현이 있을 때 a가
[123]
과 같은 행렬이라면 D는
[100020003]
으로 나타낼 수 있고,
diag(D)와 같은 표현이 있을 때
D가
[123456789]
과 같은 행렬이라면
diag(D)는
[159]
와 같다.
같은 diag여도 다른 결과가 도출되므로 이 표현은 논문 등에서 사용할 때
별도로 어떤 표시인지 명시해줘야 한다.

직교행렬 (Orthogonal matrix)
행렬의 모든 vector들이 서로 직교하면
직교행렬 (Orthogonal matrix)이라고 한다.
이는 곧, Column들이 orthonormal한 vector이다.
🔔 Orthonormal vector : 서로 수직하면서 크기가 1인 Vector (normalized)
그러므로 항등행렬 I는 각 column들이 서로 수직하고
크기가 1인 orthonormal vector들이므로
직교행렬 (orthogonal matrix) 이다.

직교행렬의 역행렬
그렇다면, 어떤 직교행렬 Q에 대해 역행렬을 구할 수 있을까?
정의대로라면 Q와 역행렬을 곱하면 항등행렬이 되면 될 것이다.
Q가 3x3 행렬일때를 생각해보자.

행렬 Q와 어떤 행렬 A를 곱한다고 하자. (A는 Q의 역행렬이다.)
행렬의 곱셈을 첫번째 관점인 내적으로 해석하면,
A와 Q를 곱했을 때 3x3 짜리 항등행렬 I가 나온다고 했을 때
I의 1행은 [1 0 0]이고,
A의 1행과 Q의 1열의 내적이 1.
A의 1행과 Q의 2열의 내적이 0.
A의 1행과 Q의 3열의 내적이 0.
을 의미한다.
즉, A의 1행은 Q의 1열을 제외하면 모두 수직하다.
이를 A의 2행, 3행에서도 동일하게 적용하면
A의 2행은 Q의 2열을 제외하면 모두 수직, A의 3행은 Q의 3열을 제외하면 모두 수직하다.

그럼 A가 Q의 열을 행으로 가지면 딱 맞는다!
- Q는 orthonormal vector로 이루어져 있으니 제곱해도 크기가 1이다.
따라서, A는 Q의 전치행렬이고, 직교 행렬 Q의 역행렬은 Q의 Transpose 이다.
QTQ=I,Q−1=QT
'선형대수학' 카테고리의 다른 글
[선형대수학 정리] 10. Null space (0) | 2024.07.19 |
---|---|
[선형대수학 정리] 9. 행렬의 rank (0) | 2024.07.19 |
[선형대수학 정리] 7. 항등행렬과 역행렬 (0) | 2024.07.18 |
[선형대수학 정리] 6. Column space와 span (3) | 2024.07.16 |
[선형대수학 정리] 5. 행렬의 곱셈과 Column Space (1) | 2024.07.16 |