[DX] 행렬식 (Determinant)

김진우·2025년 6월 24일

DirectX

목록 보기
5/32
post-thumbnail

의미

정사각형 모양의 행렬(정방행렬)에 대해 하나의 수(스칼라 값)을 대응시키는 함수이다.
행렬에 대한 수치적 요약값이며, 행렬이 가지는 기하학적 특성과 연산 가능성을 알려주는 지표이다.

예를 들어, 2×2 행렬의 행렬식의 절댓값은 두 벡터가 만드는 평행사변형의 면적이고, 3×3 행렬의 행렬식의 절댓값은 평행육면체의 부피이다.

계산 방법

1. 2×2 행렬식

  • 두 대각선의 곱을 뺀다.
    A=[abcd]A = \begin{bmatrix} a & b \\ c & d \end{bmatrix}
det(A)=adbc\det(A) = ad - bc

2. 3×3 행렬식

사루스(Sarrus) 법칙: 3x3 행렬에서만 사용 가능하다. 첫 두 열을 행렬 오른쪽에 덧붙이고, 대각선 방향의 곱을 더하고, 반대 대각선 방향의 곱을 뺀다.
또는 여인수 전개(라플라스 전개)로 계산할 수 있다.

A=[abcdefghi]A = \begin{bmatrix} a & b & c \\ d & e & f \\ g & h & i \end{bmatrix}
det(A)=aei+bfg+cdhcegbdiafh\det(A) = aei + bfg + cdh - ceg - bdi - afh

3. n×n 행렬식 (가우스 소거법을 이용한 상삼각행렬화)

아이디어

  1. 행렬을 상삼각 행렬로 변형 (아래쪽 원소를 0으로 만들기)
  2. 행 교환 횟수를 기억
  3. 마지막에 대각선 원소의 곱 × (1)교환 횟수(-1)^{\text{교환 횟수}}

예시 : 3x3 행렬

A=[211312212]A = \begin{bmatrix} 2 & 1 & -1 \\ -3 & -1 & 2 \\ -2 & 1 & 2 \end{bmatrix}

Step 1: 첫 번째 열을 기준으로 아래 두 행 소거

목표: 첫 열의 아래 두 원소(-3, -2)를 0으로 만들기

R₂ ← R₂ + (3/2) × R₁

R2[3,1,2]+(1.5)×[2,1,1]=[0,0.5,0.5]R_2 \leftarrow [-3, -1, 2] + (1.5) × [2, 1, -1] = [0, 0.5, 0.5]

R₃ ← R₃ + R₁

R3[2,1,2]+[2,1,1]=[0,2,1]R_3 \leftarrow [-2, 1, 2] + [2, 1, -1] = [0, 2, 1]

결과:

[21100.50.5021]\begin{bmatrix} 2 & 1 & -1 \\ 0 & 0.5 & 0.5 \\ 0 & 2 & 1 \end{bmatrix}

Step 2: 두 번째 열을 기준으로 아래 한 행 소거

목표: 두 번째 열의 R₃를 0으로 만들기

R₃ ← R₃ − (2/0.5) × R₂ = R₃ − 4 × R₂

R3[0,2,1]4×[0,0.5,0.5]=[0,0,1]R_3 \leftarrow [0, 2, 1] − 4 × [0, 0.5, 0.5] = [0, 0, -1]

결과:

[21100.50.5001]\begin{bmatrix} 2 & 1 & -1 \\ 0 & 0.5 & 0.5 \\ 0 & 0 & -1 \end{bmatrix}

Step 3: 대각선 원소 곱

det(A)=20.5(1)=1\det(A) = 2 \cdot 0.5 \cdot (-1) = -1

※ 행 교환이 없었기 때문에 부호 반전도 없다.


행 교환이 발생할 경우

만약 중간에 피벗 원소가 0이라서 행 교환이 필요했다면

  • 교환 횟수 = k
  • 행렬식 = (1)k×(-1)^k × (대각선 곱)

예를 들어, 한 번 교환 → 부호 반전
두 번 교환 → 원래 부호 유지

0개의 댓글