Ch.5 §5.1 — The Properties of Determinants (행렬식의 성질)

세 가지 공리에서 유도되는 열 가지 성질 — 공식 없이 행렬식을 정의하고 증명하는 법

행렬식을 \(n!\) 개 항의 복잡한 공식으로 먼저 정의하는 대신, Strang의 접근을 따라 세 가지 단순한 공리(det I=1, 행 교환 부호 반전, 행별 선형성)에서 시작한다. 이 세 성질이 행렬식을 유일하게 결정하며, 나머지 일곱 가지 성질(두 같은 행=0, 소거 불변, 삼각 대각 곱, 특이⟺0, 곱셈 규칙, 전치 동일성)이 모두 순수 추론으로 유도됨을 증명과 직관으로 상세히 정리한다.

Math
Linear Algebra
저자

Kwangmin Kim

공개

2026년 04월 10일

1 이 절의 위치

Ch.5 는 “정사각 행렬 = 하나의 스칼라”로 압축한다. §5.1은 그 스칼라가 어떤 규칙으로 정의되는가를 다룬다.

§5.1 행렬식의 성질  ← 지금 여기
  ↓  "그러면 이 성질을 만족하는 구체적 공식은 무엇인가"
§5.2 순열과 여인수 (빅 공식, 여인수 전개)
  ↓  "행렬식은 무엇에 쓰이는가"
§5.3 Cramer 공식, 역행렬, 부피

§5.1의 핵심 메시지는 다음 하나다.

세 개의 단순한 공리만으로 \(n \times n\) 행렬식이 유일하게 결정된다.

공식을 먼저 외우고 성질을 증명하는 대신, 성질을 공리로 삼고 공식을 유도하는 방식이다. 이것이 “역사적 순서”와는 반대지만, 증명이 훨씬 깨끗해진다.


2 왜 공리부터 시작하는가

2.1 공식부터 시작했을 때의 문제

고등학교에서 배우는 2×2 행렬식:

\[\det\begin{bmatrix} a & b \\ c & d \end{bmatrix} = ad - bc\]

이 공식 자체는 간단하다. 그런데 3×3에서는:

\[\det = a_{11}a_{22}a_{33} + a_{12}a_{23}a_{31} + a_{13}a_{21}a_{32} - a_{13}a_{22}a_{31} - a_{11}a_{23}a_{32} - a_{12}a_{21}a_{33}\]

\(n \times n\) 에서는 \(n!\) 개 항의 합. \(n = 5\) 만 되어도 120개 항. 이 거대한 공식에서 “행 교환하면 부호가 바뀐다”같은 성질을 직접 증명하려면 엄청난 계산이 필요하다.

2.2 공리부터 시작하면 어떻게 되는가

“이 공식이 어떤 성질을 반드시 만족해야 한다”는 관점을 뒤집는다. “만약 어떤 함수가 이 세 성질을 만족한다면, 그것은 무엇이어야 하는가?”

Strang의 세 공리가 바로 그 답이다. 세 공리는 충분히 강해서 유일한 함수를 결정한다. 그 유일한 함수가 우리가 아는 행렬식 공식이다. 이 접근의 장점:

  1. 단순성: 세 줄짜리 정의만 외우면 된다
  2. 증명 용이: 나머지 성질들을 추상적으로 유도 가능 (공식 대입 불필요)
  3. 일반화 가능: 추상 대수학, 외대수(exterior algebra)로 바로 확장

3 세 가지 정의 공리

행렬식의 정의 (Strang, 2009, §5.1)

\(n \times n\) 정사각 행렬 \(\mathbf{A}\) 의 행렬식 \(\det \mathbf{A}\) 는 다음 세 공리를 만족하는 유일한 실수값 함수이다.

공리 1 (항등): \(\det \mathbf{I} = 1\)

공리 2 (부호 반전): 두 행을 교환하면 부호가 바뀐다.

공리 3 (행별 선형성): 행렬식은 각 행에 대해 선형이다. 나머지 행들이 고정되어 있을 때:

\[\det \begin{bmatrix} \vdots \\ t\mathbf{a}_i + s\mathbf{a}_i' \\ \vdots \end{bmatrix} = t \det \begin{bmatrix} \vdots \\ \mathbf{a}_i \\ \vdots \end{bmatrix} + s \det \begin{bmatrix} \vdots \\ \mathbf{a}_i' \\ \vdots \end{bmatrix}\]

3.1 공리 1: \(\det \mathbf{I} = 1\)

직관: “기준점 설정”. 단위 행렬은 “아무 변환도 하지 않는” 행렬이고, 단위 정육면체의 부피는 1이다. 행렬식을 “부피”로 해석할 때 가장 자연스러운 기준이다.

왜 이 값이 1이어야 하는가: 만약 \(\det \mathbf{I} = 0\) 이라면 공리 3과 결합할 때 모든 행렬의 행렬식이 0이 되어 정보가 사라진다. \(\det \mathbf{I} = 2\) 로 하면 정규화 문제가 생긴다. “가역 행렬의 행렬식은 0이 아니다”라는 성질을 유지하려면 \(\det \mathbf{I} = 1\)가장 자연스러운 선택이다.

3.2 공리 2: 부호 반전

형식적 표현: 행렬 \(\mathbf{A}\) 에서 \(i\) 행과 \(j\) 행을 교환한 행렬을 \(\mathbf{A}'\) 이라 하면:

\[\det \mathbf{A}' = -\det \mathbf{A}\]

직관 1 (방향성): 두 행을 바꾸면 “좌표계 손잡이 방향”이 뒤집힌다. 오른손 좌표계 ↔︎ 왼손 좌표계. 기하학적으로 반사(reflection)와 같은 효과이다. 부피의 크기는 같지만 방향이 있는 부피(signed volume) 는 부호가 반대가 된다.

직관 2 (2×2 검증):

\[\det\begin{bmatrix} c & d \\ a & b \end{bmatrix} = cb - da = -(ad - bc) = -\det\begin{bmatrix} a & b \\ c & d \end{bmatrix}\]

고등학교 공식 \(ad - bc\) 가 정확히 이 성질을 만족한다.

왜 이것이 공리가 되는가: 부호 반전은 “행렬식을 0 으로 만드는 강력한 제약”이다. 곧 보게 될 공리 4 (“두 같은 행”), 공리 5 (“소거 불변”) 모두 이것 하나에서 파생된다.

3.3 공리 3: 행별 선형성

공리 3은 두 부분으로 나뉜다.

3a (스칼라 배): 한 행에 \(t\) 를 곱하면 행렬식이 \(t\) 배.

\[\det \begin{bmatrix} \vdots \\ t\mathbf{a}_i \\ \vdots \end{bmatrix} = t \cdot \det \begin{bmatrix} \vdots \\ \mathbf{a}_i \\ \vdots \end{bmatrix}\]

3b (덧셈): 한 행이 두 벡터의 합이면 행렬식도 분해된다.

\[\det \begin{bmatrix} \vdots \\ \mathbf{a}_i + \mathbf{a}_i' \\ \vdots \end{bmatrix} = \det \begin{bmatrix} \vdots \\ \mathbf{a}_i \\ \vdots \end{bmatrix} + \det \begin{bmatrix} \vdots \\ \mathbf{a}_i' \\ \vdots \end{bmatrix}\]

결정적 주의: “다른 행들은 그대로 유지”되어야 한다. 한 번에 한 행만 건드려야 한다.

3.4 공리 3의 흔한 오해 — “전체 선형성”은 거짓

\[\det(\mathbf{A} + \mathbf{B}) \neq \det \mathbf{A} + \det \mathbf{B}\]

반례: \(\mathbf{A} = \mathbf{B} = \mathbf{I}\) 이면: - \(\det(\mathbf{A} + \mathbf{B}) = \det(2\mathbf{I}) = 2^n\) - \(\det \mathbf{A} + \det \mathbf{B} = 1 + 1 = 2\)

\(n \geq 2\) 에서 이 둘이 다르다. 즉 행렬식은 전체 덧셈에 대해 선형이 아니다.

\[\det(c\mathbf{A}) = c^n \det \mathbf{A}\]

모든 \(n\) 개 행에서 \(c\) 가 튀어나오므로 \(c^n\) 이 된다.

직관 — 부피 관점: 상자의 한 변을 \(t\) 배 늘리면 부피는 \(t\) 배 (공리 3). 모든 \(n\) 개 변을 각각 \(c\) 배로 늘리면 부피는 \(c^n\) 배. 이것이 공리 3이 “한 행씩만 선형”이어야 하는 자연스러운 이유다.

3.5 공리 3의 두 번째 흔한 오해 — 덧셈의 방향

3b는 한 행에만 적용된다. 두 행을 동시에 분해하면 안 된다.

올바른 분해: \[\det\begin{bmatrix} \mathbf{a}_1 + \mathbf{a}_1' \\ \mathbf{a}_2 \end{bmatrix} = \det\begin{bmatrix} \mathbf{a}_1 \\ \mathbf{a}_2 \end{bmatrix} + \det\begin{bmatrix} \mathbf{a}_1' \\ \mathbf{a}_2 \end{bmatrix}\]

잘못된 분해: \[\det\begin{bmatrix} \mathbf{a}_1 + \mathbf{a}_1' \\ \mathbf{a}_2 + \mathbf{a}_2' \end{bmatrix} \neq \det\begin{bmatrix} \mathbf{a}_1 \\ \mathbf{a}_2 \end{bmatrix} + \det\begin{bmatrix} \mathbf{a}_1' \\ \mathbf{a}_2' \end{bmatrix}\]

두 행을 동시에 분해하려면 공리 3을 순차적으로 두 번 적용해야 하고, 그러면 \(2^2 = 4\) 개의 항이 나온다 (일반적으로는 \(2^n\) 개).


4 파생 성질 일곱 가지 — 공리에서 모두 유도

여기부터가 §5.1의 핵심이다. 세 공리만으로 나머지 일곱 성질을 유도한다. 각 증명에서 “공식”은 절대 사용하지 않는다 — 오직 공리 1, 2, 3과 이미 증명한 성질만 쓴다.

4.1 성질 4: 두 행이 같으면 \(\det = 0\)

명제: \(\mathbf{A}\)\(i\) 행과 \(j\) 행이 같으면 \(\det \mathbf{A} = 0\).

증명: - \(i\) 행과 \(j\) 행을 교환한다. 두 행이 같으므로 행렬은 변하지 않는다. 즉 \(\mathbf{A}' = \mathbf{A}\). - 공리 2에 의해 \(\det \mathbf{A}' = -\det \mathbf{A}\). - 그런데 \(\mathbf{A}' = \mathbf{A}\) 이므로 \(\det \mathbf{A}' = \det \mathbf{A}\). - 따라서 \(\det \mathbf{A} = -\det \mathbf{A}\), 즉 \(2\det \mathbf{A} = 0\), 따라서 \(\det \mathbf{A} = 0\). \(\square\)

주의 (Strang의 각주): 이 증명은 “\(-x = x \Rightarrow x = 0\)” 을 사용한다. 이것은 실수(또는 복소수, 유리수)에서는 성립하지만, 특성 2의 체(예: 불리언 대수, \(\mathbb{Z}/2\mathbb{Z}\))에서는 성립하지 않는다. \(-1 = 1\) 인 체에서는 공리 2가 아무 정보도 주지 않아서, 공리 4를 별도로 추가해야 한다. 실무에서는 실수체만 다루므로 문제 없다.

직관: 두 행이 같다 = 그 두 변이 같은 방향을 가리킨다 = 평행사변형이 선분으로 짜부라짐 = 면적 0.

4.2 성질 5: 소거 불변

명제: \(i\) 행에 \(j\) 행의 \(\ell\) 배를 더하거나 빼도 행렬식은 변하지 않는다.

\[\det \begin{bmatrix} \vdots \\ \mathbf{a}_i - \ell\mathbf{a}_j \\ \vdots \\ \mathbf{a}_j \\ \vdots \end{bmatrix} = \det \mathbf{A}\]

증명: 공리 3 (선형성)으로 \(i\) 행을 분해한다.

\[\det \begin{bmatrix} \vdots \\ \mathbf{a}_i - \ell\mathbf{a}_j \\ \vdots \\ \mathbf{a}_j \\ \vdots \end{bmatrix} = \det \begin{bmatrix} \vdots \\ \mathbf{a}_i \\ \vdots \\ \mathbf{a}_j \\ \vdots \end{bmatrix} - \ell \det \begin{bmatrix} \vdots \\ \mathbf{a}_j \\ \vdots \\ \mathbf{a}_j \\ \vdots \end{bmatrix}\]

둘째 항의 행렬은 \(i\) 행과 \(j\) 행이 모두 \(\mathbf{a}_j\) 로 같다. 성질 4에 의해 \(\det = 0\). 따라서 전체 = 첫 번째 항 = \(\det \mathbf{A}\). \(\square\)

이것이 왜 결정적인가: 소거법(Gaussian elimination)이 행렬식을 보존한다는 사실을 의미한다. \(\mathbf{A}\) 를 소거로 상삼각 \(\mathbf{U}\) 로 바꿔도 \(\det \mathbf{A} = \det \mathbf{U}\) (행 교환이 없다면).

소거법의 한 단계: \(i\) 행에서 \(j\) 행의 \(\ell\) 배를 뺀다 → 행렬식 변화 없음. 이 단계를 수없이 반복해서 상삼각을 만들어도 행렬식은 그대로. 그런데 상삼각의 행렬식은 쉽다 (성질 7 예고).

4.3 성질 6: 영행이 있으면 \(\det = 0\)

명제: \(\mathbf{A}\) 에 모든 성분이 0인 행이 있으면 \(\det \mathbf{A} = 0\).

증명 1 (간단): 영행 \(\mathbf{0}\)\(0 \cdot \mathbf{0} = \mathbf{0}\) 을 곱해도 같은 영행. 공리 3a에서 \(t = 0\):

\[\det \begin{bmatrix} \vdots \\ \mathbf{0} \\ \vdots \end{bmatrix} = \det \begin{bmatrix} \vdots \\ 0 \cdot \mathbf{0} \\ \vdots \end{bmatrix} = 0 \cdot \det \begin{bmatrix} \vdots \\ \mathbf{0} \\ \vdots \end{bmatrix} = 0\]

증명 2 (성질 4, 5 활용): 영행에 다른 아무 행의 임의의 배수를 더해도 소거 불변이므로 행렬식 그대로. 그런데 이렇게 하면 두 같은 행이 생기므로 성질 4에 의해 \(\det = 0\). \(\square\)

직관: 한 변이 길이 0이면 평행육면체의 부피도 0.

4.4 성질 7: 삼각 행렬의 \(\det\) = 대각 성분의 곱

명제: \(\mathbf{A}\) 가 상삼각 또는 하삼각 행렬이면:

\[\det \mathbf{A} = a_{11} \cdot a_{22} \cdots a_{nn}\]

증명 (모든 대각 성분이 0이 아닐 때):

Step 1: 소거법으로 비대각 성분을 모두 0으로 만든다. 상삼각이면 아래쪽에서 위쪽으로, 하삼각이면 위쪽에서 아래쪽으로 빼 나간다. 성질 5에 의해 각 단계마다 행렬식 불변. 최종 결과는 대각 행렬 \(\mathbf{D}\):

\[\mathbf{D} = \begin{bmatrix} a_{11} & & & \\ & a_{22} & & \\ & & \ddots & \\ & & & a_{nn} \end{bmatrix}\]

\(\det \mathbf{A} = \det \mathbf{D}\) (성질 5).

Step 2: 공리 3a를 반복 적용해 각 대각 성분을 “밖으로” 꺼낸다.

\[\det \mathbf{D} = a_{11} \cdot \det \begin{bmatrix} 1 & & & \\ & a_{22} & & \\ & & \ddots & \\ & & & a_{nn} \end{bmatrix} = a_{11} a_{22} \cdot \det \begin{bmatrix} 1 & & & \\ & 1 & & \\ & & \ddots & \\ & & & a_{nn} \end{bmatrix}\]

\(\cdots = a_{11} a_{22} \cdots a_{nn} \cdot \det \mathbf{I}\)

Step 3: 공리 1에 의해 \(\det \mathbf{I} = 1\). 결론:

\[\det \mathbf{A} = a_{11} a_{22} \cdots a_{nn} \cdot 1 = a_{11} a_{22} \cdots a_{nn} \quad \square\]

어느 대각 성분이 0일 때: 그 행은 영행이 되거나 선형 종속이 생기고, 소거 후 영행이 나타난다. 성질 6에 의해 \(\det = 0\). 그런데 대각 곱 \(a_{11} \cdots a_{nn}\) 도 0이 든 곱이므로 0. 두 값이 여전히 일치한다.

첫 번째 계산 공식 탄생: 성질 5 (소거 불변) + 성질 7 (삼각 = 대각 곱)을 결합하면:

\[\boxed{\det \mathbf{A} = \pm (d_1 d_2 \cdots d_n)}\]

여기서 \(d_i\) 는 소거로 얻은 피벗들이고, \(\pm\) 는 소거 중 일어난 행 교환 횟수에 따라 결정된다 (짝수 → +, 홀수 → −). MATLAB, NumPy가 내부적으로 쓰는 공식이 바로 이것이다.

4.5 성질 8: 특이 ⟺ \(\det = 0\)

명제: \(\mathbf{A}\) 가 특이(singular) ⟺ \(\det \mathbf{A} = 0\).

증명 (⟹ 방향): \(\mathbf{A}\) 가 특이 ⟺ 소거법으로 변환한 \(\mathbf{U}\) 에 영행이 존재. 성질 6에 의해 \(\det \mathbf{U} = 0\). 성질 5에 의해 \(\det \mathbf{A} = \pm \det \mathbf{U} = 0\).

증명 (⟸ 방향): 대우를 증명한다. \(\mathbf{A}\) 가 가역이면 소거 후 \(\mathbf{U}\) 의 모든 대각 성분(피벗)이 0이 아니다. 성질 7에 의해 \(\det \mathbf{U} = d_1 \cdots d_n \neq 0\). 성질 5에 의해 \(\det \mathbf{A} = \pm \det \mathbf{U} \neq 0\). \(\square\)

이것이 행렬식의 가장 중요한 응용이다. “가역성 판별기”로서의 행렬식 — 단 하나의 숫자를 보고 역행렬이 존재하는지 알 수 있다.

주의: 큰 행렬에서는 실제 계산 도구로 쓰이지 않는다. 소거법 중에 피벗이 0이면 그 자리에서 바로 “특이”로 판명되므로, 굳이 곱까지 계산할 필요가 없다. 이론적 기준으로서만 의미가 있다.

4.6 성질 9: 곱셈 규칙

명제: \(\det(\mathbf{A}\mathbf{B}) = (\det \mathbf{A})(\det \mathbf{B})\).

이것이 가장 중요하고 가장 증명하기 까다로운 성질이다.

증명 (Strang의 우아한 비율 논증):

\(\det \mathbf{B} \neq 0\) 인 경우만 본다 (\(\det \mathbf{B} = 0\) 이면 \(\mathbf{A}\mathbf{B}\) 도 특이이므로 양쪽 모두 0).

함수 \(D: \mathbf{A} \mapsto \dfrac{\det(\mathbf{A}\mathbf{B})}{\det \mathbf{B}}\) 를 정의한다. \(\mathbf{B}\) 는 고정, \(\mathbf{A}\) 만 변수로 본다. 이 \(D\) 가 세 공리를 모두 만족하는지 확인하면, 정의에 의해 \(D(\mathbf{A}) = \det \mathbf{A}\), 즉 \(\det(\mathbf{A}\mathbf{B}) / \det \mathbf{B} = \det \mathbf{A}\), 이것이 곱셈 규칙이다.

공리 1 검증: \(\mathbf{A} = \mathbf{I}\) 이면 \(\mathbf{A}\mathbf{B} = \mathbf{B}\), 따라서 \(D(\mathbf{I}) = \det \mathbf{B} / \det \mathbf{B} = 1\)

공리 2 검증: \(\mathbf{A}\) 의 두 행을 교환하면 \(\mathbf{A}\mathbf{B}\) 의 같은 두 행이 교환된다 (행렬 곱에서 “왼쪽 행렬 행 \(i\) ↔︎ 결과 행렬 행 \(i\)”). 따라서 \(\det(\mathbf{A}\mathbf{B})\) 도 부호가 바뀌고, \(D(\mathbf{A})\) 도 부호가 바뀐다. ✓

공리 3 검증 (선형성): \(\mathbf{A}\) 의 1행에 \(t\) 를 곱하면 \(\mathbf{A}\mathbf{B}\) 의 1행에도 \(t\) 가 곱해진다. 따라서 \(\det(\mathbf{A}\mathbf{B})\)\(t\) 배, \(D(\mathbf{A})\)\(t\) 배. 덧셈 부분도 유사. ✓

세 공리를 모두 만족하는 함수는 유일하게 \(\det\). 따라서 \(D(\mathbf{A}) = \det \mathbf{A}\).

\[\frac{\det(\mathbf{A}\mathbf{B})}{\det \mathbf{B}} = \det \mathbf{A} \implies \det(\mathbf{A}\mathbf{B}) = \det \mathbf{A} \cdot \det \mathbf{B} \quad \square\]

우아함의 핵심: 공식 계산 없이, “세 공리를 만족하는 함수는 유일하다”는 사실 하나로 증명 끝.

4.7 성질 9의 따름정리

따름정리 1: \(\det(\mathbf{A}^{-1}) = 1 / \det \mathbf{A}\)

증명: \(\mathbf{A}\mathbf{A}^{-1} = \mathbf{I}\) 에 성질 9 적용: \(\det \mathbf{A} \cdot \det \mathbf{A}^{-1} = \det \mathbf{I} = 1\), 따라서 \(\det \mathbf{A}^{-1} = 1 / \det \mathbf{A}\).

따름정리 2: \(\det(\mathbf{A}^k) = (\det \mathbf{A})^k\)

곱셈 규칙 \(k\) 번 반복 적용.

따름정리 3: \(\det(c\mathbf{A}) = c^n \det \mathbf{A}\)

\(c\mathbf{A} = (c\mathbf{I})\mathbf{A}\). \(c\mathbf{I}\) 는 대각 성분이 모두 \(c\) 인 대각 행렬이므로 성질 7에 의해 \(\det(c\mathbf{I}) = c^n\). 성질 9 적용: \(\det(c\mathbf{A}) = c^n \det \mathbf{A}\).

주의: 이것은 “\(c\)\(n\) 번 튀어나온다”는 의미다. 한 행만 \(c\) 배하면 \(c\) 한 번, 모든 \(n\) 행이 \(c\) 배면 \(c^n\).

4.8 성질 10: \(\det \mathbf{A}^\top = \det \mathbf{A}\)

명제: 전치해도 행렬식은 같다.

증명: \(\mathbf{A}\) 가 특이하면 \(\mathbf{A}^\top\) 도 특이이므로 양쪽 모두 0. 일치.

\(\mathbf{A}\) 가 가역이면 \(\mathbf{P}\mathbf{A} = \mathbf{L}\mathbf{U}\) 로 분해. 이를 전치하면:

\[(\mathbf{P}\mathbf{A})^\top = (\mathbf{L}\mathbf{U})^\top \implies \mathbf{A}^\top \mathbf{P}^\top = \mathbf{U}^\top \mathbf{L}^\top\]

양쪽 행렬식을 성질 9로 곱으로 분해:

  • \(\det \mathbf{P} \cdot \det \mathbf{A} = \det \mathbf{L} \cdot \det \mathbf{U}\)
  • \(\det \mathbf{A}^\top \cdot \det \mathbf{P}^\top = \det \mathbf{U}^\top \cdot \det \mathbf{L}^\top\)

세 가지 관찰:

  1. \(\det \mathbf{L} = \det \mathbf{L}^\top = 1\) (둘 다 대각선이 1인 삼각 행렬, 성질 7)
  2. \(\det \mathbf{U} = \det \mathbf{U}^\top\) (전치해도 대각선이 같음, 성질 7)
  3. \(\det \mathbf{P} = \det \mathbf{P}^\top\) (치환 행렬 \(\mathbf{P}\)\(\mathbf{P}^\top \mathbf{P} = \mathbf{I}\) 이므로 성질 9에 의해 \((\det \mathbf{P})(\det \mathbf{P}^\top) = 1\). 둘 다 \(\pm 1\) 이므로 부호가 같다)

이 세 관찰을 합치면 양 등식의 좌변이 같고 우변도 같다. 따라서 \(\det \mathbf{A} = \det \mathbf{A}^\top\). \(\square\)

4.9 성질 10의 의미 — 행과 열의 대칭성

\(\det \mathbf{A}^\top = \det \mathbf{A}\) 는 단순한 등식 이상이다. 이 성질 덕분에 행에 대한 모든 성질이 열에 대해서도 자동 성립한다.

행 성질 열 성질 (자동)
두 행 교환 → 부호 반전 두 열 교환 → 부호 반전
두 같은 행 → 0 두 같은 열 → 0
영행 → 0 영열 → 0
행별 선형성 열별 선형성
소거 불변 (행 연산) 소거 불변 (열 연산)

증명은 모두 동일 방식: “\(\mathbf{A}\) 의 열 성질 = \(\mathbf{A}^\top\) 의 행 성질 = \(\mathbf{A}^\top\) 의 행렬식 성질”. 성질 10이 “\(\det \mathbf{A}^\top = \det \mathbf{A}\)” 를 보장하므로 결과가 같다.

이 덕분에 성질 2, 3, 4, 5, 6 모두가 행과 열 양쪽에 적용 가능하다.


5 공리와 성질 관계도

공리 1: det I = 1
공리 2: 행 교환 → 부호 반전
공리 3: 행별 선형성
    |
    |   공리 2: 같은 행끼리 교환해도 변화 없음
    ↓
성질 4: 두 같은 행 → det = 0
    |
    |   공리 3 + 성질 4
    ↓
성질 5: 소거 불변 (한 행에 다른 행의 배수 빼도 변화 없음)
    |
    |   공리 3 (t=0) OR 성질 4 + 5
    ↓
성질 6: 영행 → 0
    |
    |   공리 3 (스칼라 꺼내기) + 공리 1
    ↓
성질 7: 삼각 → 대각 곱
    |
    |   성질 5 (소거) + 성질 6 (영행=0) + 성질 7 (상삼각 계산)
    ↓
성질 8: 특이 ⟺ det = 0    [첫 번째 계산 공식: det A = ±(피벗 곱)]
    |
    |   비율 함수 D(A) = det(AB)/det(B) 가 세 공리 만족
    ↓
성질 9: det(AB) = det A · det B
    |
    |   PA = LU 분해 + 성질 9 적용 + L, U, P 전치 성질
    ↓
성질 10: det Aᵀ = det A    [행/열 대칭 보장]

순서의 중요성: 각 성질은 이전에 증명된 것만 사용해 증명된다. 이 “논리 체인”이 행렬식 이론의 엄밀함을 보장한다.


6 2×2 예시로 전체 과정 검증

\[\mathbf{A} = \begin{bmatrix} a & b \\ c & d \end{bmatrix}\]

6.1 공리 1, 2, 3을 이용해 공식 유도

행 1을 기저 \(\mathbf{e}_1 = (1, 0), \mathbf{e}_2 = (0, 1)\) 로 분해:

\[\mathbf{a}_1 = (a, b) = a(1, 0) + b(0, 1) = a\mathbf{e}_1 + b\mathbf{e}_2\]

공리 3 (선형성)에 의해:

\[\det \mathbf{A} = \det\begin{bmatrix} a\mathbf{e}_1 + b\mathbf{e}_2 \\ \mathbf{a}_2 \end{bmatrix} = a\det\begin{bmatrix} \mathbf{e}_1 \\ \mathbf{a}_2 \end{bmatrix} + b\det\begin{bmatrix} \mathbf{e}_2 \\ \mathbf{a}_2 \end{bmatrix}\]

\[= a\det\begin{bmatrix} 1 & 0 \\ c & d \end{bmatrix} + b\det\begin{bmatrix} 0 & 1 \\ c & d \end{bmatrix}\]

이제 각각의 2행도 분해:

첫째 항: \(\mathbf{a}_2 = (c, d) = c\mathbf{e}_1 + d\mathbf{e}_2\). 공리 3 다시 적용:

\[\det\begin{bmatrix} 1 & 0 \\ c & d \end{bmatrix} = c\det\begin{bmatrix} 1 & 0 \\ 1 & 0 \end{bmatrix} + d\det\begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix} = c \cdot 0 + d \cdot 1 = d\]

(두 같은 행 → 0, 단위 행렬 → 1)

둘째 항: 같은 방식으로 분해:

\[\det\begin{bmatrix} 0 & 1 \\ c & d \end{bmatrix} = c\det\begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix} + d\det\begin{bmatrix} 0 & 1 \\ 0 & 1 \end{bmatrix} = c \cdot (-1) + d \cdot 0 = -c\]

(행 교환 → 단위 행렬이므로 부호 반전, 두 같은 행 → 0)

종합:

\[\det \mathbf{A} = a \cdot d + b \cdot (-c) = ad - bc \quad \square\]

놀라운 점: 공식 \(ad - bc\) 를 미리 알고 시작하지 않았다. 오직 세 공리만으로 같은 공식을 유도했다. 이것이 Strang의 접근법의 미학이다.

6.2 성질 9 수치 검증

import numpy as np

np.random.seed(42)
A = np.random.randn(4, 4)
B = np.random.randn(4, 4)

det_A = np.linalg.det(A)
det_B = np.linalg.det(B)
det_AB = np.linalg.det(A @ B)
det_BA = np.linalg.det(B @ A)

print(f"det(A)      = {det_A:.6f}")
print(f"det(B)      = {det_B:.6f}")
print(f"det(A)·det(B) = {det_A * det_B:.6f}")
print(f"det(AB)     = {det_AB:.6f}")
print(f"det(BA)     = {det_BA:.6f}")
print(f"\n→ AB와 BA는 같지 않을 수 있지만, det(AB) = det(BA) = det(A)·det(B)")

# 따름정리: det(A⁻¹) = 1/det(A)
A_inv = np.linalg.inv(A)
print(f"\ndet(A⁻¹)  = {np.linalg.det(A_inv):.6f}")
print(f"1/det(A) = {1/det_A:.6f}")

# det(cA) = c^n · det(A)
c = 2.5
n = A.shape[0]
print(f"\ndet({c}·A) = {np.linalg.det(c * A):.6f}")
print(f"{c}^{n} · det(A) = {c**n * det_A:.6f}")

# det(Aᵀ) = det(A)
print(f"\ndet(A)   = {det_A:.6f}")
print(f"det(Aᵀ) = {np.linalg.det(A.T):.6f}")

6.3 소거법으로 피벗 공식 확인

def manual_det_via_elimination(A):
    """소거법으로 피벗을 구해 행렬식 계산"""
    A = A.astype(float).copy()
    n = A.shape[0]
    sign = 1

    for i in range(n):
        # 부분 피보팅
        max_row = i + np.argmax(np.abs(A[i:, i]))
        if max_row != i:
            A[[i, max_row]] = A[[max_row, i]]
            sign *= -1   # 행 교환 → 부호 반전

        if abs(A[i, i]) < 1e-12:
            return 0.0   # 특이

        # 아래 행 소거
        for j in range(i + 1, n):
            factor = A[j, i] / A[i, i]
            A[j, i:] -= factor * A[i, i:]

    # 피벗 곱
    return sign * np.prod(np.diag(A))

# 수치 검증
A = np.random.randn(5, 5)
print(f"수동 계산:  {manual_det_via_elimination(A):.6f}")
print(f"NumPy:    {np.linalg.det(A):.6f}")

# 특이 행렬 테스트
S = np.array([[1, 2, 3],
              [2, 4, 6],
              [7, 8, 9]], dtype=float)  # 첫 두 행이 종속
print(f"\n특이 행렬:")
print(f"수동:  {manual_det_via_elimination(S):.6e}")
print(f"NumPy: {np.linalg.det(S):.6e}")

7 Strang 교재의 두 워크드 예시

7.1 예시 A: 체커보드 부호 패턴

\[\mathbf{M}_1 = \begin{bmatrix} a_{11} & -a_{12} & a_{13} \\ -a_{21} & a_{22} & -a_{23} \\ a_{31} & -a_{32} & a_{33} \end{bmatrix}\]

질문: \(\det \mathbf{M}_1\)\(\det \mathbf{A}\) 로 표현하면?

풀이: \(\mathbf{M}_1\)\(\mathbf{A}\) 에서 모든 원소 \(a_{ij}\)\((-1)^{i+j}\) 를 곱한 것.

두 가지 방식으로 볼 수 있다: - 행 관점: 2행 전체에 \(-1\) 곱 (공리 3a: \(-1\) 배) - 열 관점: 2열 전체에 \(-1\) 곱 (성질 10에 의해 열에도 3a 적용)

결과적으로 2행과 2열 모두에 \(-1\) 이 곱해졌다. 즉:

\[\det \mathbf{M}_1 = (-1) \cdot (-1) \cdot \det \mathbf{A} = \det \mathbf{A}\]

또는 직접 계산: 홀수 열 1, 3과 홀수 행 1, 3 은 부호 유지, 짝수 행/열은 \(-1\). 대각 성분은 \(+\) 유지. 결과적으로 체커보드 패턴으로 \(-1\) 을 곱해도 행렬식은 변하지 않는다. 이것이 여인수 전개에서 \((-1)^{i+j}\) 부호가 나오는 이유와 연결된다.

7.2 예시 B: 특이성 판별

\[\mathbf{M}_2 = \begin{bmatrix} \mathbf{a}_1 - \mathbf{a}_3 \\ \mathbf{a}_2 - \mathbf{a}_1 \\ \mathbf{a}_3 - \mathbf{a}_2 \end{bmatrix}\]

질문: \(\det \mathbf{M}_2\) 는?

풀이: 세 행을 모두 더하면: \((\mathbf{a}_1 - \mathbf{a}_3) + (\mathbf{a}_2 - \mathbf{a}_1) + (\mathbf{a}_3 - \mathbf{a}_2) = \mathbf{0}\)

세 행이 합해서 영이므로 선형 종속. 따라서 \(\mathbf{M}_2\) 는 특이. 성질 8에 의해 \(\det \mathbf{M}_2 = 0\).

의미: “모든 행의 합이 영벡터” 같은 패턴이 있으면 행렬식이 0임을 계산 없이 판별할 수 있다.

# Strang 예시 A와 B 수치 검증
A = np.array([[1, 2, 3],
              [4, 5, 6],
              [7, 8, 10]], dtype=float)

# 체커보드 부호
signs = np.array([[1, -1, 1],
                  [-1, 1, -1],
                  [1, -1, 1]])
M1 = A * signs

print("예시 A: 체커보드 부호")
print(f"det(A)  = {np.linalg.det(A):.4f}")
print(f"det(M1) = {np.linalg.det(M1):.4f}")
print(f"같은가? {np.isclose(np.linalg.det(A), np.linalg.det(M1))}")

# 예시 B: 행 차이
M2 = np.array([A[0] - A[2],
               A[1] - A[0],
               A[2] - A[1]])

print("\n예시 B: 행 차이 (합 = 0)")
print(f"행의 합: {M2.sum(axis=0)}")
print(f"det(M2) = {np.linalg.det(M2):.6e}")  # ≈ 0

8 흔한 오해와 함정

8.1 오해 1: “행렬식도 덧셈에 대해 선형”

\(\det(\mathbf{A} + \mathbf{B}) = \det \mathbf{A} + \det \mathbf{B}\) 는 거짓이다.

반례: \(\mathbf{A} = \mathbf{I}\), \(\mathbf{B} = -\mathbf{I}\) (\(2 \times 2\)). - \(\mathbf{A} + \mathbf{B} = \mathbf{0}\), \(\det = 0\) - \(\det \mathbf{A} + \det \mathbf{B} = 1 + 1 = 2\)

행렬식은 오직 한 행씩 선형이다.

8.2 오해 2: “대각 성분이 모두 0이 아니면 가역”

상삼각/하삼각이 아니면 이 명제는 성립하지 않는다.

반례: \[\mathbf{A} = \begin{bmatrix} 1 & 2 \\ 2 & 4 \end{bmatrix}\]

대각 성분 \(1, 4\) 모두 0이 아니지만 두 행이 비례(\((1,2)\)\(2 \cdot (1,2)\))하므로 특이. \(\det = 0\).

“대각 성분 곱” 공식은 오직 삼각 행렬에서만 성립한다 (성질 7의 전제 조건).

8.3 오해 3: “\(\det(\mathbf{A}^{-1}) = -\det \mathbf{A}\)

\(-1\) 이 아니라 \(1/\det \mathbf{A}\) 이다. 부호 반전(공리 2)은 행 교환에서 나오는 것이지 역행렬과는 무관하다.

8.4 오해 4: “행렬식은 항상 양수”

행렬식은 부호 있는 스칼라다. 음수일 수도 있다.

예: \[\det\begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix} = -1\]

“부피”로 해석할 때는 절대값 \(|\det|\) 을 쓴다. 부호는 방향성을 나타낸다.


9 핵심 요약

Strang의 접근: 공식이 아니라 공리로 정의

세 가지 공리
  1. det I = 1
  2. 행 교환 → 부호 반전
  3. 행별 선형성 (한 행만!)

일곱 가지 파생 성질 (공리에서 유도)
  4. 두 같은 행 → 0        (공리 2 자기 적용)
  5. 소거 불변             (공리 3 + 성질 4)
  6. 영행 → 0              (공리 3 t=0)
  7. 삼각 → 대각 곱        (성질 5 + 공리 3 + 공리 1)
  8. 특이 ⟺ det = 0       (성질 6, 7 조합)
  9. det(AB) = det A·det B (비율 함수 공리 검증)
  10. det Aᵀ = det A       (LU 분해 + 성질 9)

계산 공식 (성질에서 파생)
  det A = ±(피벗 d₁d₂···dₙ)   ← 이것이 실무 공식

행 성질 = 열 성질 (성질 10 덕분)

주의 — 거짓 명제
  det(A+B) ≠ det A + det B
  det(cA) = cⁿ det A (한 스칼라는 n번 튀어나옴)

10 관련 주제

선행 지식

챕터 내 후속

후속 주제

  • 야코비안 (다변수 적분) — 성질 9의 응용
  • Normalizing Flow (생성 모델) — \(\log|\det|\) 의 효율적 계산

Subscribe

Enjoy this blog? Get notified of new posts by email: