비타Cpp

행렬식(Determinant) 본문

DirectX12/게임 수학

행렬식(Determinant)

멍C 2021. 8. 5. 17:11

행렬식은 정방 행렬을 입력받아서 실숫값을 출력하는 특별한 함수다. 정방 행렬 A의 행렬식을 det A로 표기한다. 기하학적으로 행렬식이 3차원 입체의 부피와 관련이 있다는 점과 행렬식이 선형 변환 하에서 그 부피가 변하는 방식에 대한 정보를 제공한다는 점을 증명하는 것이 가능하다. 또한 행렬식은 크라메르의 법칙(Cramer's rule)을 이용해서 1차 연립방정식을 푸는 데에도 쓰인다. 또한 행렬식은 역행렬의 가능 여부를 손쉽게 판단할 수 있다는 것도 중요하다.


일단. 행렬식을 알아보기전에 소행렬 개념을 알아야한다.

n x n 행렬 A가 주어졌을 때, 그 소행렬(Minor Matrix)  Aij는 i번째 행과 j번째 열을 삭제해서 나온 (n-1) x (n-1) 행렬이다.

 

예: 다음 행렬의 소행렬 A11, A22, A13을 구해보자.  

 

$$A=\begin{bmatrix} A_{11} &  A_{12} &  A_{13} \\ A_{21} &  A_{22} &  A_{23}\\  A_{31} &  A_{32} &  A_{33} \end{bmatrix}$$

 

$$\bar{A}_{11}=\begin{bmatrix} A_{22} &  A_{23}\\   A_{32} &  A_{33} \end{bmatrix}$$

 

$$\bar{A}_{22}=\begin{bmatrix} A_{11} &  A_{13}\\   A_{31} &  A_{33} \end{bmatrix}$$

 

$$\bar{A}_{13}=\begin{bmatrix} A_{21} &  A_{22}\\   A_{31} &  A_{32} \end{bmatrix}$$

 


행렬의 행렬식은 재귀적으로 정의가 된다. 예를 들어 4x4행렬의 행렬식은 3x3행렬의 행렬식들로 정의되고, 3x3행렬의 행렬식은 2x2 행렬식들로 정의된다. 그리고 마지막 1x1의 행렬식은 det[A11] = A11로 정의된다.

 

A가 n x n 행렬이고 n > 1 이라고 할 때, A의 행렬식은 다음과 같이 정의된다.

 

$$det\ A = \sum_{j=1}^nA_{1j}(-1)^{1+j}det\ \bar{A}_{1j}$$

 

 

'DirectX12 > 게임 수학' 카테고리의 다른 글

원점을 기준으로 회전하는 카메라  (0) 2021.10.17
비례(Scaling) 행렬  (0) 2021.08.02
외적 (Outer Product / Cross Product)  (0) 2021.08.01
직교화(Orthogonalization)  (0) 2021.07.28
내적과 직교 투영  (0) 2021.07.28
Comments