Ch.5 Overview — Determinants (행렬식)

가역성, 부피, 고윳값을 하나의 숫자로 압축하는 스칼라 — 세 가지 공식과 열 가지 성질

정사각 행렬이 담고 있는 정보를 단 하나의 숫자로 요약하는 행렬식을 소개한다. 세 가지 정의 성질 (항등, 부호 반전, 선형성)에서 시작하여 열 가지 파생 성질을 유도하고, 세 가지 계산 공식(피벗 곱, big formula, 여인수 전개)과 세 가지 기하·대수적 응용(Cramer 공식, \(n\) 차원 부피, 고윳값 방정식)의 전체 로드맵을 직관 중심으로 정리한다.

Math
Linear Algebra
저자

Kwangmin Kim

공개

2026년 04월 10일

1 챕터 5 전체 로드맵

Ch.4까지의 여정을 되돌아보면 다음과 같다.

  • Ch.1: 개별 벡터 — 덧셈, 내적, 길이
  • Ch.2: 연립방정식\(\mathbf{A}\mathbf{x} = \mathbf{b}\) 를 소거법과 LU 분해로 풀기
  • Ch.3: 부분공간 — 해의 집합을 공간 전체로 이해
  • Ch.4: 직교성 — 부분공간 사이의 90도 관계와 투영·최소제곱
  • Ch.5: 행렬식 — 정사각 행렬의 “한 줄 요약서”

Ch.3까지는 행렬을 “여러 방정식의 계수”로 봤고, Ch.4는 “기하학적 연산자”로 봤다. Ch.5는 관점을 다시 바꾼다 — 행렬을 단 하나의 스칼라로 압축한다.

그 스칼라가 담는 정보:

  1. 행렬이 가역인가? (det = 0 ⟺ 특이)
  2. 이 행렬이 만드는 평행육면체의 부피는?
  3. 고윳값은 무엇인가? (\(\det(\mathbf{A} - \lambda\mathbf{I}) = 0\))

Ch.5는 세 개의 짧은 절로 구성된다.

제목 핵심 질문
§5.1 The Properties of Determinants 행렬식은 어떤 규칙으로 정의되는가?
§5.2 Permutations and Cofactors 행렬식의 실제 공식은 무엇인가?
§5.3 Cramer’s Rule, Inverses, and Volumes 행렬식은 무엇에 쓰이는가?

2 왜 행렬식인가

2.1 질문 하나로 여는 동기

2×2 행렬 \(\mathbf{A} = \begin{bmatrix} a & b \\ c & d \end{bmatrix}\) 의 역행렬을 떠올려본다.

\[\mathbf{A}^{-1} = \frac{1}{ad - bc}\begin{bmatrix} d & -b \\ -c & a \end{bmatrix}\]

분모에 등장하는 \(ad - bc\) 가 0이면 역행렬이 존재하지 않는다. 이 숫자가 바로 2×2 행렬의 행렬식이다.

\(ad - bc\) 는 단순한 계산 결과가 아니라 행렬의 가역성을 압축한 정보다.”

\(n \times n\) 행렬에도 같은 역할을 하는 숫자가 있다. 그것이 \(\det \mathbf{A}\) 다.

2.2 하나의 숫자가 담는 세 가지 정보

\(\det \mathbf{A}\) 는 세 가지 질문에 동시에 답한다.

1. 가역성: \(\det \mathbf{A} \neq 0 \iff \mathbf{A}\) 가역. 가장 빠른 “존재 테스트”다.

2. 부피: \(|\det \mathbf{A}|\)\(\mathbf{A}\) 의 행(또는 열)들이 만드는 \(n\) 차원 평행육면체의 부피이다. 평면에서는 평행사변형 면적, 3차원에서는 평행육면체 부피.

3. 고윳값: \(\det(\mathbf{A} - \lambda\mathbf{I}) = 0\) 의 해 \(\lambda\)\(\mathbf{A}\) 의 고윳값이다 (Ch.6).

직관: 행렬식은 “압축 스칼라”다. 행렬 전체의 복잡한 구조를 단 하나의 숫자로 요약한다. 그 숫자가 0인지 아닌지만 봐도 가역성이 판별되고, 절대값은 부피를 주고, 특성방정식의 근은 고윳값을 준다.

2.3 왜 실무에서는 거의 계산하지 않는가 — 주의

역설적이게도, 큰 행렬에서는 \(\det \mathbf{A}\) 를 직접 계산하는 일이 거의 없다. 이유:

  1. 가역성 판별: 소거법으로 피벗을 보는 것이 훨씬 빠르다
  2. 방정식 풀기: 소거법 / QR / SVD가 Cramer 공식보다 수십 배 빠르다
  3. 부피 계산: 직접 공식이 있다면 대부분 \(|\det|\) 을 구하는 것이 목적이므로 동어반복

그럼에도 행렬식을 배우는 이유는: - 이론적 도구: 증명·유도에 필수 (Cramer, 고윳값, 야코비안, 행렬 미분) - 개념적 통합: 가역성·부피·고윳값을 하나로 묶는 언어 - 작은 문제: 2×2, 3×3 에서는 여전히 손으로 쓴다


3 행렬식의 세 가지 정의 성질

Strang의 접근은 “공식부터 외우지 말고, 성질부터 시작하자”이다. 세 가지 성질만으로도 \(n \times n\) 행렬식이 유일하게 결정된다.

행렬식을 정의하는 세 성질 (Strang)

성질 1: 단위 행렬의 행렬식은 1이다. \[\det \mathbf{I} = 1\]

성질 2: 두 행을 교환하면 부호가 바뀐다. \[\det(\text{row 교환}) = -\det \mathbf{A}\]

성질 3: 행렬식은 각 행에 대해 선형적이다 (다른 행들은 고정). \[\det \begin{bmatrix} t\mathbf{a}_1 + s\mathbf{a}_1' \\ \mathbf{a}_2 \\ \vdots \\ \mathbf{a}_n \end{bmatrix} = t \det \begin{bmatrix} \mathbf{a}_1 \\ \mathbf{a}_2 \\ \vdots \\ \mathbf{a}_n \end{bmatrix} + s \det \begin{bmatrix} \mathbf{a}_1' \\ \mathbf{a}_2 \\ \vdots \\ \mathbf{a}_n \end{bmatrix}\]

3.1 각 성질의 직관

성질 1 (항등): “아무 변환도 하지 않는 행렬”의 행렬식은 1. 단위 정육면체의 부피가 1인 것과 같은 기준점이다.

성질 2 (부호 반전): 두 행을 교환하면 부호가 뒤집힌다. 왜? 기하학적으로 “손잡이 방향(handedness)”이 바뀌기 때문이다. 오른손 좌표계를 왼손 좌표계로 뒤집는 조작과 대응된다. 부피는 같지만 “방향이 있는 부피”는 부호가 반대가 된다.

성질 3 (행별 선형성): 한 행만 놓고 보면 선형. 핵심은 “한 행씩만”이다. \(\det(\mathbf{A} + \mathbf{B}) = \det \mathbf{A} + \det \mathbf{B}\)틀렸다. 예: \(\det(\mathbf{I} + \mathbf{I}) = \det(2\mathbf{I}) = 2^n\), 반면 \(\det \mathbf{I} + \det \mathbf{I} = 2\).

왜 행별 선형성이 자연스러운가: 부피 관점에서, 한 변을 \(t\) 배 늘리면 부피도 \(t\) 배 늘어난다. 두 변을 각각 \(t, s\) 로 늘리면 부피는 \(ts\) 배가 된다. 여기서 “각 변(행) 하나씩만 건드릴 때” 선형이 된다.

3.2 왜 이 세 성질이면 충분한가

이 세 성질이 서로 독립적이면서도 제한이 충분히 강하다. 어떤 \(n \times n\) 행렬도 이 성질들만으로 행렬식이 유일하게 결정된다. Strang의 접근법은 이 세 성질을 “공리”로 삼고, 나머지는 모두 정리로 유도한다.


4 파생 성질 일곱 가지

세 가지 정의 성질에서 일곱 가지가 즉시 따라 나온다. 이것이 Strang §5.1의 본론이다.

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

증명: 두 같은 행을 교환해도 행렬이 그대로다. 그런데 성질 2에 의해 부호는 바뀌어야 한다. 따라서 \(\det \mathbf{A} = -\det \mathbf{A}\), 즉 \(\det \mathbf{A} = 0\).

직관: 두 행이 같다는 것은 그 행들이 같은 방향을 가리킨다는 뜻이다. 평행한 두 변이 만드는 “평행사변형”은 실제로는 선분 — 면적 0.

4.2 성질 5: 한 행에서 다른 행의 배수를 빼도 행렬식 불변

증명: 성질 3 (선형성)으로 분해하면 “원래 행렬” + “두 같은 행 가진 행렬”의 합이 된다. 후자는 성질 4에 의해 0. 따라서 전체는 원래 행렬식과 같다.

\[\det \begin{bmatrix} \mathbf{a}_1 \\ \mathbf{a}_2 - \ell\mathbf{a}_1 \\ \vdots \end{bmatrix} = \det \begin{bmatrix} \mathbf{a}_1 \\ \mathbf{a}_2 \\ \vdots \end{bmatrix} - \ell\det \begin{bmatrix} \mathbf{a}_1 \\ \mathbf{a}_1 \\ \vdots \end{bmatrix} = \det \mathbf{A} - 0 = \det \mathbf{A}\]

의미: 이것이 소거법(Gaussian elimination)이 행렬식을 보존한다는 말의 정확한 의미다. 소거법으로 \(\mathbf{A} \to \mathbf{U}\) 로 변환해도 \(\det \mathbf{A} = \det \mathbf{U}\).

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

증명: 영행에 아무 다른 행이나 더해도 행렬식 불변 (성질 5). 그러면 두 같은 행이 생기므로 성질 4.

직관: 한 변이 길이 0이면 부피도 0.

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

유도: 상/하삼각 행렬을 성질 5로 대각 행렬로 만들고, 성질 3 (선형성)으로 각 대각 성분을 차례로 꺼낸다. 마지막에 성질 1 (\(\det \mathbf{I} = 1\))을 사용.

\[\det \begin{bmatrix} d_1 & * & \cdots \\ 0 & d_2 & \cdots \\ \vdots & & \ddots \end{bmatrix} = d_1 d_2 \cdots d_n\]

의미: 삼각 행렬의 행렬식이 “가장 계산하기 쉽다”. 여기서 첫 번째 공식이 나온다:

공식 1: \(\det \mathbf{A} = \pm (d_1 d_2 \cdots d_n)\) — 피벗들의 곱 (부호는 행 교환 횟수에 따라)

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

증명: \(\mathbf{A}\) 가 특이 ⟺ 소거 후 영행이 생김 ⟺ \(\det = 0\).

이것이 행렬식의 가장 중요한 응용이다. “행렬식이 0인지 아닌지로 가역성을 판별할 수 있다.”

4.6 성질 9: 곱셈 규칙 \(\det(\mathbf{A}\mathbf{B}) = \det \mathbf{A} \cdot \det \mathbf{B}\)

: \(\det(\mathbf{A}^{-1}) = 1 / \det \mathbf{A}\) (\(\mathbf{A}\mathbf{A}^{-1} = \mathbf{I}\) 에 적용)

직관 — 부피 배율: 행렬을 선형변환으로 보면, \(\det \mathbf{A}\) 는 “부피 배율”이다. 변환 \(\mathbf{A}\)\(\mathbf{B}\) 를 적용하면 부피는 먼저 \(|\det \mathbf{A}|\) 배, 그 다음 \(|\det \mathbf{B}|\) 배 늘어난다. 전체 배율은 곱. 이것이 \(\det(\mathbf{A}\mathbf{B}) = \det \mathbf{A} \cdot \det \mathbf{B}\) 의 기하학적 의미다.

주의: \(\det(\mathbf{A} + \mathbf{B}) \neq \det \mathbf{A} + \det \mathbf{B}\). 곱셈은 성립, 덧셈은 실패. 그리고 \(\det(c\mathbf{A}) = c^n \det \mathbf{A}\) — 스칼라는 \(n\) 제곱으로 나온다 (\(n\) 개 행 각각에서 \(c\) 가 튀어나옴).

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

유도: \(\mathbf{P}\mathbf{A} = \mathbf{L}\mathbf{U}\) 분해에서 \(\det \mathbf{L} = \det \mathbf{L}^\top = 1\), \(\det \mathbf{U} = \det \mathbf{U}^\top\) (같은 대각선), \(\det \mathbf{P} = \det \mathbf{P}^\top = \pm 1\). 곱셈 규칙 적용.

결정적 따름정리: 행에 대한 모든 성질은 열에 대해서도 동일하게 성립한다. 이 덕분에 두 같은 열, 영열, 열별 선형성, 열 교환 부호 반전 등 모든 성질이 자동으로 열에도 적용된다.

4.8 요약 표

성질 내용 기하적 의미
1 \(\det \mathbf{I} = 1\) 단위 입방체 부피 1
2 행 교환 → 부호 반전 방향(handedness) 반전
3 행별 선형성 변 하나만 늘리면 부피 비례
4 두 같은 행 → 0 평행한 두 변 = 면적 0
5 소거법 → \(\det\) 불변 평행 이동으로 부피 유지
6 영행 → 0 길이 0인 변
7 삼각 → 대각 곱 상자의 축별 곱
8 특이 ⟺ \(\det = 0\) 차원 축소 = 부피 0
9 \(\det(\mathbf{A}\mathbf{B}) = \det \mathbf{A} \cdot \det \mathbf{B}\) 부피 배율의 곱
10 \(\det \mathbf{A}^\top = \det \mathbf{A}\) 행 = 열의 역할 대칭

5 행렬식을 계산하는 세 가지 방법

\(n \times n\) 행렬의 행렬식을 계산하는 고전적 방법은 정확히 세 가지다.

세 가지 공식
  1. 피벗 공식(Pivot Formula): \(\det \mathbf{A} = \pm (d_1 d_2 \cdots d_n)\)\(n\) 개 피벗의 곱 (\(\pm\) 는 행 교환 수)
  2. 빅 공식(Big Formula): \(\det \mathbf{A} = \sum_{\sigma} (\text{sign}\,\sigma) \cdot a_{1\sigma(1)} a_{2\sigma(2)} \cdots a_{n\sigma(n)}\)\(n!\) 개 항의 합
  3. 여인수 공식(Cofactor Formula): \(\det \mathbf{A} = \sum_{j=1}^n a_{1j} C_{1j}\)\(n\) 개 작은 행렬식의 조합

5.1 공식 1: 피벗 공식

아이디어: 소거법으로 \(\mathbf{A} \to \mathbf{U}\) (상삼각). 성질 5로 \(\det\) 불변, 성질 7로 삼각 행렬식 = 피벗 곱.

연산량: \(\mathcal{O}(n^3)\) — 소거법과 동일.

장점: 실무에서 가장 빠르다. MATLAB, NumPy의 det() 는 내부적으로 LU 분해를 한 뒤 피벗을 곱한다.

단점: 소거 과정이 수치적으로 필요하므로 “공식”이라기보다 “알고리즘”에 가깝다.

5.2 공식 2: 빅 공식 (Leibniz 공식)

아이디어: 행렬식을 \(n!\) 개의 항의 합으로 표현. 각 항은 서로 다른 행·열에서 정확히 하나씩 뽑은 성분들의 곱.

\[\det \mathbf{A} = \sum_{\sigma \in S_n} \text{sign}(\sigma) \prod_{i=1}^n a_{i, \sigma(i)}\]

여기서 \(\sigma\)\(\{1, \ldots, n\}\) 의 순열이고, \(\text{sign}(\sigma) = \pm 1\) 은 홀/짝 순열 부호.

2×2: \(\det = a_{11} a_{22} - a_{12} a_{21}\) (2! = 2개 항)

3×3: 3! = 6개 항. Sarrus 법칙으로 기억되는 유명한 공식.

연산량: \(\mathcal{O}(n \cdot n!)\) — 천문학적으로 비싸다. \(n = 20\) 이면 \(20! \approx 2.4 \times 10^{18}\).

장점: 이론 증명용. 행렬식의 “모든 가능성”이 다 보이고, 성질들이 명확히 드러난다.

단점: 실제 계산 불가능. \(n = 5\) 만 되어도 120개 항.

5.3 공식 3: 여인수 전개 (Laplace 공식)

아이디어: 첫 번째 행 (또는 아무 행/열)에 대해 “작은 행렬식”들의 조합으로 분해.

\[\det \mathbf{A} = \sum_{j=1}^n a_{1j} \cdot C_{1j}, \quad C_{1j} = (-1)^{1+j} \det(\mathbf{A}_{1j})\]

여기서 \(\mathbf{A}_{1j}\)\(\mathbf{A}\) 에서 1행과 \(j\) 열을 제거한 \((n-1) \times (n-1)\) 부분 행렬.

재귀적 구조: \(n\) 차 행렬식을 \((n-1)\) 차 행렬식 \(n\) 개로 환원. 계속 반복하면 결국 \(2 \times 2\)\(1 \times 1\) 까지 내려간다.

연산량: \(\mathcal{O}(n!)\) — 빅 공식과 같은 수준. 비효율.

장점: 손 계산에 유용. 특히 영 성분이 많은 행렬에서 특정 행/열을 택하면 항이 많이 사라져 빠르게 풀린다.

단점: 수치 계산에는 부적합. 개념 이해·이론 유도가 주 용도.

5.4 세 공식의 사용 기준

공식 언제 쓰는가
피벗 공식 컴퓨터 계산 (항상)
빅 공식 이론 증명 (행렬식 성질 유도)
여인수 공식 손 계산 (희소 행렬), 재귀 증명

6 세 가지 응용

행렬식을 배우는 진짜 이유는 응용에 있다. §5.3에서 상세히 다루는 세 가지.

6.1 응용 1: Cramer 공식 — 역행렬과 \(\mathbf{A}^{-1}\mathbf{b}\)

\(\mathbf{A}\mathbf{x} = \mathbf{b}\) 의 해를 행렬식의 비율로 표현한다.

\[x_i = \frac{\det \mathbf{B}_i}{\det \mathbf{A}}\]

여기서 \(\mathbf{B}_i\)\(\mathbf{A}\)\(i\) 열을 \(\mathbf{b}\) 로 교체한 행렬.

역행렬도 행렬식으로 공식화 가능:

\[\mathbf{A}^{-1} = \frac{1}{\det \mathbf{A}} \mathbf{C}^\top\]

여기서 \(\mathbf{C}\) 는 여인수 행렬.

실무적 의미: Cramer 공식은 \(\mathcal{O}(n \cdot n!)\) 이라 큰 문제에서는 쓰이지 않는다. 그러나 3×3 이하의 손 계산이나 기호 계산(symbolic)에서는 여전히 유용하다. 더 중요한 것은 이론적 가치 — 해가 계수들의 다항식 함수임을 명시적으로 보여준다.

6.2 응용 2: 부피 — \(n\) 차원 평행육면체

\(\mathbf{A}\) 의 행(또는 열)을 변으로 하는 \(n\) 차원 평행육면체의 부피는 \(|\det \mathbf{A}|\) 이다.

  • 2D (평행사변형): \(\begin{bmatrix} a & b \\ c & d \end{bmatrix}\) 의 두 행 벡터가 만드는 평행사변형 면적 = \(|ad - bc|\)
  • 3D (평행육면체): 3×3 행렬식이 3차원 부피
  • n차원: 일반화된 “하이퍼큐브”의 부피

가역성과 부피의 연결: \(\det \mathbf{A} = 0\) ⟺ 행들이 선형 종속 ⟺ 부피 0 ⟺ 평행육면체가 저차원으로 “짜부라짐”. 이것이 “특이 행렬”이라는 용어의 기하학적 의미다.

방향(부호)의 의미: \(\det > 0\) 이면 오른손 좌표계 유지, \(\det < 0\) 이면 왼손 좌표계로 뒤집힘. “부호 있는 부피(signed volume)” 개념이 미적분의 변수 치환 (야코비안)에서 결정적이다.

6.3 응용 3: 고윳값 — \(\det(\mathbf{A} - \lambda\mathbf{I}) = 0\)

Ch.6에서 본격적으로 다룰 내용의 예고편.

\(\mathbf{A}\mathbf{v} = \lambda\mathbf{v}\) 를 만족하는 비자명한 \(\mathbf{v}\) 가 존재하려면 \((\mathbf{A} - \lambda\mathbf{I})\mathbf{v} = \mathbf{0}\) 의 비자명 해가 필요하다. 이는 \(\mathbf{A} - \lambda\mathbf{I}\) 가 특이해야 한다는 뜻이고, 곧 \(\det(\mathbf{A} - \lambda\mathbf{I}) = 0\).

이 방정식을 특성방정식(characteristic equation)이라 부른다. \(\lambda\) 에 대한 \(n\) 차 다항식이고, 그 근들이 고윳값이다.

왜 이것이 중요한가: 고윳값은 행렬의 “본질”을 담는다 — 안정성, 진동수, 증가율, PCA의 주성분 등. 행렬식이 없으면 고윳값 개념을 정의조차 할 수 없다.


7 2×2와 3×3 예시

7.1 2×2 예시

\[\mathbf{A} = \begin{bmatrix} 3 & 1 \\ 2 & 4 \end{bmatrix}\]

  • 피벗 공식: 소거법 \(R_2 - \frac{2}{3}R_1\): \(\begin{bmatrix} 3 & 1 \\ 0 & 4 - 2/3 \end{bmatrix} = \begin{bmatrix} 3 & 1 \\ 0 & 10/3 \end{bmatrix}\). \(\det = 3 \cdot 10/3 = 10\).
  • 빅 공식: \(\det = 3 \cdot 4 - 1 \cdot 2 = 12 - 2 = 10\).
  • 여인수 공식: \(\det = 3 \cdot \det[4] - 1 \cdot \det[2] = 3 \cdot 4 - 1 \cdot 2 = 10\).
  • 부피: \(|10|\) = 평행사변형 면적 10.
  • 가역: \(\det \neq 0\) 이므로 가역.

7.2 3×3 예시

\[\mathbf{B} = \begin{bmatrix} 1 & 2 & 0 \\ 0 & 3 & 1 \\ 2 & 0 & 4 \end{bmatrix}\]

여인수 전개 (첫 행 기준):

\[\det \mathbf{B} = 1 \cdot \det\begin{bmatrix} 3 & 1 \\ 0 & 4 \end{bmatrix} - 2 \cdot \det\begin{bmatrix} 0 & 1 \\ 2 & 4 \end{bmatrix} + 0 \cdot \det\begin{bmatrix} 0 & 3 \\ 2 & 0 \end{bmatrix}\]

\[= 1 \cdot (12 - 0) - 2 \cdot (0 - 2) + 0 = 12 + 4 = 16\]

import numpy as np

# 2x2 예시
A = np.array([[3, 1],
              [2, 4]], dtype=float)
print(f"A =\n{A}")
print(f"det(A) = {np.linalg.det(A):.4f}")
print(f"A 가역? {np.linalg.det(A) != 0}")

# 역행렬로 확인
if abs(np.linalg.det(A)) > 1e-10:
    print(f"A⁻¹ =\n{np.linalg.inv(A)}")

# 3x3 예시
B = np.array([[1, 2, 0],
              [0, 3, 1],
              [2, 0, 4]], dtype=float)
print(f"\nB =\n{B}")
print(f"det(B) = {np.linalg.det(B):.4f}")  # 16

# 성질 확인: det(AB) = det(A) det(B)
C = np.array([[1, 0, 2],
              [3, 1, 0],
              [0, 4, 1]], dtype=float)
print(f"\ndet(B) * det(C) = {np.linalg.det(B) * np.linalg.det(C):.4f}")
print(f"det(BC)         = {np.linalg.det(B @ C):.4f}")

# det(A^T) = det(A)
print(f"\ndet(B)   = {np.linalg.det(B):.4f}")
print(f"det(Bᵀ) = {np.linalg.det(B.T):.4f}")

# det(2B) = 2³ det(B)
print(f"\ndet(2B)  = {np.linalg.det(2 * B):.4f}")
print(f"2³ det(B) = {8 * np.linalg.det(B):.4f}")

7.3 부피 시각화 (2D 평행사변형)

import matplotlib.pyplot as plt
from matplotlib.patches import Polygon

# 2x2 행렬의 행이 만드는 평행사변형
A = np.array([[3, 1],
              [2, 4]], dtype=float)

# 네 꼭짓점
origin = np.array([0, 0])
v1 = A[0]       # [3, 1]
v2 = A[1]       # [2, 4]
corner = v1 + v2

fig, ax = plt.subplots(figsize=(7, 6))
polygon = Polygon([origin, v1, corner, v2],
                  closed=True, alpha=0.3, color='steelblue',
                  edgecolor='steelblue', linewidth=2)
ax.add_patch(polygon)

# 벡터 화살표
ax.quiver(0, 0, v1[0], v1[1], angles='xy', scale_units='xy', scale=1,
          color='red', width=0.008, label=f'행 1 = {tuple(v1)}')
ax.quiver(0, 0, v2[0], v2[1], angles='xy', scale_units='xy', scale=1,
          color='green', width=0.008, label=f'행 2 = {tuple(v2)}')

det_val = np.linalg.det(A)
ax.set_title(f'평행사변형의 면적 = |det(A)| = {abs(det_val):.0f}')
ax.set_xlim(-1, 7)
ax.set_ylim(-1, 7)
ax.set_aspect('equal')
ax.grid(True, alpha=0.3)
ax.axhline(0, color='k', linewidth=0.3)
ax.axvline(0, color='k', linewidth=0.3)
ax.legend()
plt.tight_layout()
plt.savefig('det_parallelogram.png', dpi=100, bbox_inches='tight')
plt.show()

8 응용 분야

분야 행렬식의 역할
수치해석 가역성 판별 (이론)
미적분 (변수 치환) 야코비안(Jacobian) — 다변수 적분의 부피 왜곡
선형대수 (고윳값) 특성방정식 \(\det(\mathbf{A} - \lambda\mathbf{I}) = 0\)
기하학 \(n\) 차원 부피, 외적 (cross product)
물리학 보존량 계산 (Wronskian — 미분방정식 해의 독립성)
확률 (다변량 가우시안) \(\sqrt{\det \mathbf{\Sigma}}\) 가 공분산 행렬의 “부피”
머신러닝 (정규화 흐름) Change-of-variables로 확률밀도 변환
통계 (카이제곱 통계량) 이차 형식의 정규화

특히 주목: 머신러닝의 Normalizing Flow 모델은 각 층에서 \(\log|\det \mathbf{J}|\) 를 계산해야 하므로, “효율적으로 계산 가능한 행렬식 구조”를 설계하는 것이 핵심 연구 주제이다 (예: Real NVP, Glow).


9 핵심 요약

행렬식이란?
  - 정사각 행렬의 "한 줄 요약 스칼라"
  - 세 가지 정보를 동시에 압축: 가역성, 부피, 고윳값

세 가지 정의 성질 (Strang):
  1. det I = 1
  2. 행 교환 → 부호 반전
  3. 행별 선형성

파생 성질 일곱 가지:
  4. 두 같은 행 → 0        5. 소거법 불변
  6. 영행 → 0              7. 삼각 → 대각 곱
  8. 특이 ⟺ det = 0       9. det(AB) = det A · det B
  10. det Aᵀ = det A

세 가지 계산 공식:
  1. 피벗 공식 — 실무 표준 (O(n³))
  2. 빅 공식 (Leibniz) — 이론용 (O(n!))
  3. 여인수 공식 (Laplace) — 손 계산 (O(n!))

세 가지 응용:
  1. Cramer 공식 — 역행렬, Ax=b 해
  2. 부피 — n차원 평행육면체
  3. 고윳값 — det(A - λI) = 0

배우는 이유:
  - 이론적 도구 (증명, 유도)
  - 개념 통합 (가역성·부피·고윳값의 언어)
  - 작은 문제의 손 계산

10 관련 주제

선행 지식

챕터 내 후속

후속 주제

  • 야코비안 (Math 미적분) — 다변수 적분의 부피 왜곡
  • SVD (예정) — \(|\det \mathbf{A}|\) = 특이값의 곱

Subscribe

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