행렬의 크기(2×2~4×4)를 고르고 칸에 성분을 입력하세요. 행렬식은 정사각행렬(행의 수 = 열의 수)에서만 정의되는 값입니다.
이 페이지에서 할 수 있는 것
- 2×2·3×3·4×4 정사각행렬의 행렬식 \(\det(A)\)를 바로 계산할 수 있습니다
- 2×2는 ‘\(ad - bc\)’, 3×3은 사루스 법칙, 4×4는 여인수 전개로, 교재와 같은 풀이 방법의 풀이 과정을 보여 줍니다
- \(\det(A) \neq 0\)이면 역행렬이 존재한다(가역)는 판정도 함께 보여 줍니다
- 공식의 쉬운 해설과 Excel·Google 스프레드시트(MDETERM)·Python에 복사해 쓸 수 있는 수식도 이 페이지에 모아 두었습니다
이 계산은 어디에 쓰일까요?
미지수의 개수와 식의 개수가 같은 연립일차방정식은 계수를 늘어놓은 정사각행렬의 행렬식이 0이 아니면 해를 단 한 쌍 가집니다. 행렬식이 0이면 해가 없거나 무수히 많습니다.
크래머 공식을 쓰면 해 자체도 행렬식의 비만으로 나타낼 수 있습니다. 구조 해석이나 회로 해석처럼 방정식을 대량으로 푸는 공학 계산을 받치는 이론의 하나입니다.
평면 도형을 2×2 행렬로 변환(회전, 확대·축소, 기울이기)하면 넓이가 정확히 \(|\det(A)|\)배가 됩니다. 입체와 3×3 행렬이라면 부피가 \(|\det(A)|\)배입니다.
‘확대율’로서의 행렬식의 이런 역할은 대학의 미적분에서도 적분의 변수 변환의 보정 계수(야코비안)로 나타나며, 이공계 곳곳에서 쓰입니다.
3D 그래픽 소프트웨어나 게임 엔진은 행렬로 모델을 변환합니다. 변환 행렬의 행렬식이 음수이면 그 변환은 모델을 거울에 비친 것처럼 뒤집어, 각 면의 앞과 뒤(법선의 방향)가 바뀝니다.
그래서 그래픽 소프트웨어는 행렬식의 부호를 확인해 뒤집힘을 알아내고, 그림이 깨지지 않도록 바로잡습니다.
삼각형의 꼭짓점의 좌표를 알면, 그 좌표로 만든 행렬식의 절댓값의 절반이 넓이가 됩니다. 이것을 다각형으로 넓힌 것이 신발끈 공식으로, 측량이나 지도(GIS) 소프트웨어에서 토지의 넓이를 계산하는 기본 방법입니다.
‘좌표를 넣으면 넓이가 나오는’ 원리의 정체가 바로 행렬식입니다.
건물이나 기계가 어떻게 흔들리기 쉬운지 조사하는 진동 해석과, 많은 데이터에서 주요한 경향을 꺼내는 주성분 분석은 모두 행렬의 고윳값이라는 값을 씁니다.
고윳값은 ‘\(\det(A - \lambda I) = 0\)이 되는 \(\lambda\)를 구하라’는 방정식(특성방정식)으로 구합니다. 행렬식은 이런 더 높은 수준의 도구로 들어가는 입구이기도 합니다.
공식
용어·기호 해설
기호
| \(A\) | 에이 | 행렬에 붙이는 이름. 행렬은 알파벳 대문자로 나타내는 것이 관례입니다. |
| \(\det(A),\ |A|\) | 데터미넌트 에이(A의 행렬식) | 행렬 \(A\)의 행렬식. \(|A|\)처럼 세로 막대로 쓰는 방법도 자주 씁니다(수의 절댓값과 같은 기호지만 행렬에 붙이면 행렬식이라는 뜻입니다). |
| \(a_{ij}\) | 에이 아이 제이 | 행렬 \(A\)의 (\(i\), \(j\)) 성분(위에서 \(i\)번째 행, 왼쪽에서 \(j\)번째 열에 있는 수). 오른쪽 아래의 작은 문자(첨자)가 ‘위치’를 나타냅니다. |
| \(M_{ij}\) | 엠 아이 제이 | 소행렬식. 행렬 \(A\)에서 \(i\)행과 \(j\)열을 지우고 남은 한 단계 작은 행렬의 행렬식입니다. |
| \((-1)^{i+j}\) | 마이너스 일의 (아이 플러스 제이)제곱 | 여인수 전개에서 붙이는 부호. \(i+j\)가 짝수이면 \(+1\), 홀수이면 \(-1\)이며, 왼쪽 위를 ‘+’로 해서 체스판처럼 +와 −가 번갈아 놓입니다. |
| \(\sum\) | 시그마 | ‘모두 더한다’는 것을 나타내는 기호. \(\sum_{j=1}^{n}\)은 ‘\(j\)를 1부터 \(n\)까지 바꾸어 가며 모두 더한다’는 뜻입니다. |
용어
| 행렬식 | 정사각행렬로 정해지는 하나의 수. 행렬이 어떤 성질을 가지는지(역행렬이 있는지, 변환으로 넓이·부피가 몇 배가 되는지 등)를 하나의 수로 압축한 ‘행렬의 지표’입니다. |
| 정사각행렬 | 행의 수와 열의 수가 같은(정사각형 모양의) 행렬. 행렬식이나 역행렬은 정사각행렬에서만 생각합니다. |
| 사루스 법칙 | 3×3의 행렬식을 대각선 6개를 따라 곱한 값의 덧셈·뺄셈으로 구하는 방법. 사루스의 규칙이라고도 합니다. 프랑스의 수학자 사뤼스(Sarrus)의 이름을 딴 것으로, 3×3에서만 쓸 수 있습니다. |
| 여인수 전개 | 행렬식을 ‘성분 × 소행렬식 × 부호’(= 성분 × 여인수)의 합으로 나누어 한 단계 작은 행렬식의 계산으로 바꾸는 방법. 라플라스 전개라고도 하며, 4×4 이상의 행렬식도 이것으로 계산할 수 있습니다. |
| 소행렬식 | 행렬에서 특정한 행과 열을 지우고 남은 작은 행렬의 행렬식. 여인수 전개의 부품이 됩니다. |
| 여인수 | 소행렬식 \(M_{ij}\)에 부호 \((-1)^{i+j}\)을 곱한 것. ‘여인수 전개’라는 이름은 이 여인수의 합으로 전개하는 데서 왔습니다. |
| 가역행렬 | 행렬식이 0이 아닌 정사각행렬(정칙행렬이라고도 합니다). 가역행렬에는 역행렬이 존재합니다. 행렬식이 0인 행렬은 특이행렬이라 하며 역행렬이 없습니다. |
| 역행렬 | 곱하면 단위행렬(대각선이 1이고 나머지가 0인 행렬)이 되는 짝 행렬. 수의 ‘역수’의 행렬판으로, \(A^{-1}\)로 씁니다. 행렬식이 0이 아닐 때만 존재합니다. |
| 선형대수 | 행렬이나 벡터를 다루는 수학의 분야. 대학 1~2학년의 필수 과목으로 배우는 경우가 많고, 컴퓨터 그래픽·통계·AI 등 응용의 바탕이 됩니다. |
먼저 알아 두면 좋은 내용
이 페이지의 계산을 ‘의미를 알고’ 쓸 수 있도록, 먼저 알아 두면 좋은 내용을 정리했습니다.
| 정수와 유리수의 사칙계산(중학교 1학년, 12~13세) |
|
| 문자와 식, 첨자(중학교 1학년~고등학교, 12~18세) |
|
| 거듭제곱과 부호(중학교 1학년, 12~13세) |
|
| 행렬의 기초(고등학교 1학년 공통수학1, 15~16세·대학 선형대수) |
|
Excel로 계산하는 방법
| 행렬 A의 1행 | 4 | 7 |
| 행렬 A의 2행 | 2 | 6 |
| 행렬식 det(A) | =MDETERM(B1:C2) |
| 행렬 A의 1행 | 1 | 0 | 2 |
| 행렬 A의 2행 | -1 | 3 | 1 |
| 행렬 A의 3행 | 1 | 1 | 1 |
| 행렬식 det(A) | =MDETERM(B1:D3) |
| 행렬 A의 1행 | 1 | 2 | 0 | 1 |
| 행렬 A의 2행 | 0 | 1 | 3 | 2 |
| 행렬 A의 3행 | 2 | 0 | 1 | 1 |
| 행렬 A의 4행 | 1 | 1 | 0 | 2 |
| 행렬식 det(A) | =MDETERM(B1:E4) |
첫 번째 표는 10, 두 번째 표는 -6, 세 번째 표는 18이 됩니다.
MDETERM의 결과가 0이면 그 행렬에는 역행렬이 없습니다(역행렬을 구하는 MINVERSE 함수가 오류가 됩니다).
Google 스프레드시트로 계산하는 방법
| 행렬 A의 1행 | 4 | 7 |
| 행렬 A의 2행 | 2 | 6 |
| 행렬식 det(A) | =MDETERM(B1:C2) |
| 행렬 A의 1행 | 1 | 0 | 2 |
| 행렬 A의 2행 | -1 | 3 | 1 |
| 행렬 A의 3행 | 1 | 1 | 1 |
| 행렬식 det(A) | =MDETERM(B1:D3) |
첫 번째 표는 10, 두 번째 표는 -6이 됩니다.
Python으로 계산하는 방법
A = [[1, 0, 2], [-1, 3, 1], [1, 1, 1]]
def determinant(matrix): # 여인수 전개 (1행을 따라 재귀적으로 계산)
n = len(matrix)
if n == 1:
return matrix[0][0]
total = 0
for j in range(n):
minor = [row[:j] + row[j + 1:] for row in matrix[1:]] # 1행과 j열을 지운 작은 행렬
total += (-1) ** j * matrix[0][j] * determinant(minor)
return total
print("det(A) =", determinant(A))
LaTeX 등 수식 언어로 쓰는 법(복사 가능)
|A| = ad − bc
\det(A) = \begin{vmatrix} a & b \\ c & d \end{vmatrix} = ad - bc
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>det</mi><mo>⁡</mo><mrow><mo>(</mo><mi>A</mi><mo>)</mo></mrow>
<mo>=</mo>
<mi>a</mi><mi>d</mi>
<mo>-</mo>
<mi>b</mi><mi>c</mi>
</mrow>
</math>
det(A) = |(a, b), (c, d)| = ad - bc
Det[{{a, b}, {c, d}}]
LinearAlgebra:-Determinant(Matrix([[a, b], [c, d]]));
d = det(A);
det(A) = ad − bc
|A| = aei + bfg + cdh − ceg − afh − bdi
\det(A) = aei + bfg + cdh - ceg - afh - bdi
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>det</mi><mo>⁡</mo><mrow><mo>(</mo><mi>A</mi><mo>)</mo></mrow>
<mo>=</mo>
<mi>a</mi><mi>e</mi><mi>i</mi>
<mo>+</mo>
<mi>b</mi><mi>f</mi><mi>g</mi>
<mo>+</mo>
<mi>c</mi><mi>d</mi><mi>h</mi>
<mo>-</mo>
<mi>c</mi><mi>e</mi><mi>g</mi>
<mo>-</mo>
<mi>a</mi><mi>f</mi><mi>h</mi>
<mo>-</mo>
<mi>b</mi><mi>d</mi><mi>i</mi>
</mrow>
</math>
det(A) = aei + bfg + cdh - ceg - afh - bdi
Det[{{a, b, c}, {d, e, f}, {g, h, i}}]
LinearAlgebra:-Determinant(Matrix([[a, b, c], [d, e, f], [g, h, i]]));
d = det(A);
det(A) = aei + bfg + cdh − ceg − afh − bdi
det(A) = Σ (−1)¹⁺ʲ a₁ⱼ M₁ⱼ (j = 1 to n)
\det(A) = \sum_{j=1}^{n} (-1)^{1+j} a_{1j} M_{1j}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>det</mi><mo>⁡</mo><mrow><mo>(</mo><mi>A</mi><mo>)</mo></mrow>
<mo>=</mo>
<munderover>
<mo>∑</mo>
<mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow>
<mi>n</mi>
</munderover>
<msup>
<mrow><mo>(</mo><mo>-</mo><mn>1</mn><mo>)</mo></mrow>
<mrow><mn>1</mn><mo>+</mo><mi>j</mi></mrow>
</msup>
<msub><mi>a</mi><mrow><mn>1</mn><mi>j</mi></mrow></msub>
<msub><mi>M</mi><mrow><mn>1</mn><mi>j</mi></mrow></msub>
</mrow>
</math>
det(A) = sum_(j=1)^(n) (-1)^(1+j) a_(1j) M_(1j)
Det[A]
LinearAlgebra:-Determinant(A);
d = det(A);
det(A) = ∑_(j=1)^n (−1)^(1+j) a_1j M_1j
ChatGPT 에게 물어서 계산하는 방법
당신은 행렬 계산 도우미입니다. 다음 계산을 Python 코드를 실제로 실행해서 하고, 실행 결과의 수치만을 근거로 답해 주세요(암산이나 추측으로 답하지 마세요). 다음 두 정사각행렬의 행렬식(det)을 각각 구해 주세요. 1. A = [[1, 0, 2], [-1, 3, 1], [1, 1, 1]] 2. B = [[1, 2], [2, 4]] 각각 행렬식의 값과, 그 행렬이 가역인지(행렬식이 0이 아닌지, 즉 역행렬이 존재하는지)를 보여 주세요.
사용법
-
1숫자 입력계산하고 싶은 숫자를 입력란에 입력합니다
-
2계산‘계산’ 버튼을 누릅니다
-
3결과 확인계산 결과가 바로 표시됩니다. 계산의 원리와 공식 해설도 같은 페이지에서 확인할 수 있습니다
DataChef의 특징
전문 지식 없이도 직관적이고 간단하게 사용
개인정보를 등록하지 않고도 이용할 수 있습니다
"다운로드"를 누르면 파일이 자동으로 삭제됩니다
출처 표기 불필요
상업적 이용 허가 연락도 필요 없습니다