DirectX

DirectX3D) 7. 행렬식

minkg3532 2026. 5. 10. 16:50

행렬식(determinant)은 정방행렬( $n \times n$인 형식의 행렬 )을 받아서 실수 값을 산출하는 특별한 함수이다.

정방행렬 $A$의 행렬식은 흔히 $det \ A$로 표기한다. 

 행렬식이 선형변환 하에서 그 부피가 변하는 방식에 대한 정보를 제공함을 증명하는 것이 가능하다.

이전 행렬관련 글에서 봤듯이 행렬식은 행렬의 역을 구할 때 행렬식이 쓰이기도 한다.

정방행렬 $A$는 오직 $det \ A \neq \ 0$일 때에만 가역(역행렬이 존재함)이다라는 것을 전 글에서 우리는 알아봤다. 이 명제를 이용해서 주어진 행렬이 역행렬을 구할 수 있는지 손쉽게 알 수 있다.

먼저 행렬식의 정의를 알아보기 전에 소행렬(matrix minor, 부분행렬)에 대해 알아보자

 

소행렬

$n \times n$행렬 $A$가 주어졌을 때, 그 소행렬 $\bar{A}_{ij}$는 $A$의 $i$번째 행과 $j$번째 열을 삭제한 결과로 생긴 $(n-1) \times (n-1)$ 행렬이다.

 

다음 예시를 보면서 소행렬에 대해 알아보자.

 

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

 

해당 행렬 A를 가지고 소행렬 $\mathbf{\bar{A}}_{11}, \mathbf{\bar{A}}_{22}$ 및 $\mathbf{\bar{A}}_{13}$를 한번 구해보자. 각각 소행렬은 아래와 같다.

 

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

 

행렬식의 정의

 

한 행렬의 행렬식은 재귀적으로 정의된다. 예를들어 $4 \times 4$ 행렬의 행렬식은 $3 \ times 3$ 행렬의 행렬식을 항으로 하여 정의되고, 여기서 $3 \times 3$ 행렬의 행렬식은 $2 \times 2$ 행렬의 행렬식으로, 해당 행렬은 또, $1 \times 1$ 행렬의 행렬식으로 정의된다. 여기서 $1 \ times 1$ 행렬 $A \ = \ [A_{11}]$의 행렬식은 간단하게 정의되는데, 바로 $det[A_{11}] = A_{11}$이 된다.

 

$A$가 $n \times n$ 행렬이라고 할 때, $n \ > \ 1$에 대해 $A$의 행렬식은 아래와 같다.

 

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

 

$2 \times 2$ 행렬의 소행렬 $\bar{A}_{ij}$의 정의를 적용해 보면, $2 \times 2$ 행렬의 행렬식의 정의는 결국 다음과 같다.

 

$$\det \begin{bmatrix} A_{11} & A_{12} \\ A_{21} & A_{22} \end{bmatrix} = A_{11} \det [A_{22}] - A_{12} \det [A_{21}] = A_{11}A_{22} - A_{12}A_{21}$$

 

비슷한 방식으로 $3 \times 3$ 행렬의 행렬식 공식을 구해 보면 아래와 같다.

 

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

 

$4 \times 4$ 행렬도 위와 비슷하게 표현된다.

 

$$\det \begin{bmatrix} A_{11} & A_{12} & A_{13} & A_{14} \\ A_{21} & A_{22} & A_{23} & A_{24} \\ A_{31} & A_{32} & A_{33} & A_{34} \\ A_{41} & A_{42} & A_{43} & A_{44} \end{bmatrix}$$

$$= A_{11} \det \begin{bmatrix} A_{22} & A_{23} & A_{24} \\ A_{32} & A_{33} & A_{34} \\ A_{42} & A_{43} & A_{44} \end{bmatrix} - A_{12} \det \begin{bmatrix} A_{21} & A_{23} & A_{24} \\ A_{31} & A_{33} & A_{34} \\ A_{41} & A_{43} & A_{44} \end{bmatrix}$$
$$+ A_{13} \det \begin{bmatrix} A_{21} & A_{22} & A_{24} \\ A_{31} & A_{32} & A_{34} \\ A_{41} & A_{42} & A_{44} \end{bmatrix} - A_{14} \det \begin{bmatrix} A_{21} & A_{22} & A_{23} \\ A_{31} & A_{32} & A_{33} \\ A_{41} & A_{42} & A_{43} \end{bmatrix}$$

 

3차원 그래픽에서는 우리가 SRT행렬 변환에서 알아봤듯이 $4 \times 4$ 행렬을 주로 다루므로, 여기서 $n$이 4를 넘어가는 경우에 대한 공식은 더 나열할 필요가 없을 듯 하다.

 

딸림행렬

 

$A$가 $n \times n$ 행렬이라고 할 때, 곱 $C_{ij} = (-1)^{i + j} det\bar{A}_{ij}$를 $A_{ij}$ 의 여인수(cofactor)라고 부른다. $A$의 각 성분의 여인수 $C_{ij}$를 해당 $ij$번째 위치에 넣어서 만든 행렬 $C_A$를 행렬 $A$의 여인수행렬(cofactor matrix)이라고 부른다.

 

$\mathbf{C}_{\mathbf{A}} = \begin{bmatrix} C_{11} & C_{12} & \cdots & C_{1n} \\ C_{21} & C_{22} & \cdots & C_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ C_{n1} & C_{n2} & \cdots & C_{nn} \end{bmatrix}$

 

그리고 이 여인수행렬 $C_A$의 전치행렬을 A의 딸림행렬(adjoint matrix, 수반행렬)이라고 부르고 다음과 같이 표기한다.

 

$$\mathbf{A}^* = \mathbf{C}_{\mathbf{A}}^T$$

 

이 딸림행렬을 이용해서 행렬의 역을 구하는 명시적인 공식을 구해볼 수 있다.

 

행렬의 역

 

이전 글에서 다뤘던 역행렬에 대한 내용을 행렬식과 연관지어서 식과 함께 알아보도록 하자.

일단 역행렬의 성질과 정보들에 대해서 알아보도록 하자.

  1. 오직 정방행렬만이 역행렬을 가지며, 역행렬에 대해서 논한다면, 이는 해당 행렬이 정방행렬이라는 가정이 깔려있는 것이다.
  2. $n \times n$ 행렬 $M$의 역은 역시 $n \times n$ 행렬이며, $M^-1$로 표기한다.
  3. 모든 정방행렬에 역행렬이 존재하지는 않는다. 역행렬이 있는 행렬을 가역행렬(invertible), 역행렬이 없는 행렬을 특이행렬(singular)이라고 한다.
  4. 역행렬이 존재하는 경우 그 역행렬은 고유(Unique $\rightarrow$ 역행렬의 조건을 만족하는 행렬은 단 하나뿐)하다.
  5. 행렬과 그 역행렬을 곱하면 단위행렬이 나온다. ( $MM^-1 = M^-1M = I$, 행렬에 역행렬을 곱할 때에는 교환법칙이 성립함을 알아두자 )

다음은 딸림행렬과 행렬식을 이용해서 역행렬을 구하는 공식이다. 

 

$A^-1 = \frac{A^*}{det \ A}$

 

작은 행렬($ 4 \times 4$ 행렬 및 그 이하)의 경우 딸림행렬을 이용한 계산법이 효율적이다.

그 이상의 행렬인 경우에는 가우스 소거법같은 방법이 쓰이는데, 3차원 그래픽스에서 주로 다루는 행렬들은 그 역행렬 공식을 미리 알 수 있는 특별한 형태( 예) SRT(Scale, Rotation, Translation) 행렬 시스템 )이기 때문에 일반적으로 행렬의 역행렬을 구하는 공식을 사용하는 경우는 별로 없다. (위의 딸림행렬을 이용한 식을 실제로 적용하는 경우는 많지 않음)

 

 

'DirectX' 카테고리의 다른 글

DirectX3D) 9. 아핀변환  (0) 2026.05.10
DirectX3D) 8. 선형변환  (0) 2026.05.10
DirectX3D) 6. 행렬의 활용(SRT)  (0) 2026.05.09
DirectX3D) 5. 행렬  (0) 2026.05.05
DirectX3D) 4. Point  (0) 2026.04.30