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의 세 공리가 바로 그 답이다. 세 공리는 충분히 강해서 유일한 함수를 결정한다. 그 유일한 함수가 우리가 아는 행렬식 공식이다. 이 접근의 장점:
- 단순성: 세 줄짜리 정의만 외우면 된다
- 증명 용이: 나머지 성질들을 추상적으로 유도 가능 (공식 대입 불필요)
- 일반화 가능: 추상 대수학, 외대수(exterior algebra)로 바로 확장
3 세 가지 정의 공리
\(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\)
세 가지 관찰:
- \(\det \mathbf{L} = \det \mathbf{L}^\top = 1\) (둘 다 대각선이 1인 삼각 행렬, 성질 7)
- \(\det \mathbf{U} = \det \mathbf{U}^\top\) (전치해도 대각선이 같음, 성질 7)
- \(\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}") # ≈ 08 흔한 오해와 함정
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 관련 주제
선행 지식
- Ch.5 Overview — Determinants 개요 — 챕터 전체 로드맵
- Ch.2 §2.6 — A = LU 분해 — 피벗 공식의 기초
챕터 내 후속
- Ch.5 §5.2 — Permutations and Cofactors — 빅 공식과 여인수 전개
- Ch.5 §5.3 — Cramer’s Rule, Inverses, and Volumes — 응용
후속 주제
- 야코비안 (다변수 적분) — 성질 9의 응용
- Normalizing Flow (생성 모델) — \(\log|\det|\) 의 효율적 계산