8강 / 20강
행렬식 — 넓이가 몇 배가 되는가
0 이 되는 순간 무슨 일이 일어날까
2×2 행렬의 행렬식은 이렇게 계산합니다.
det [ [a, b], [c, d] ] = ad − bc공식은 시시하지만 뜻은 큽니다. 행렬식은 이 변환이 넓이를 몇 배로 만드는가를 말해 줍니다.
단위정사각형(가로 1, 세로 1)을 A 로 변환하면 평행사변형이 됩니다.
그 평행사변형의 넓이가 바로 |det A| 예요.
det A = 3 이면 모든 도형의 넓이가 3배가 되고, det A = 0.5 면 절반이 됩니다.
부호도 뜻이 있습니다. 음수면 뒤집혔다는 뜻이에요 — 거울에 비친 것처럼 좌우가 바뀐 겁니다.
회전은 넓이를 안 바꿉니다(det=1). 반사는 뒤집습니다(det=−1).
Python
브라우저에서 실행
🎮 평행사변형이 납작해지는 순간
A 의 두 열이 만드는 평행사변형이 칠해집니다. 숫자를 바꾸면서 언제 넓이가 0이 되는지 보세요. 두 열이 같은 직선 위에 오면 평행사변형이 선분으로 찌부러집니다.
3×3 이상은 어떻게 하나
3×3 행렬식은 부피를 재고, n×n 은 n차원의 부피를 잽니다. 계산은 여인수 전개로 합니다 — 한 행을 골라, 각 칸에 그 행과 열을 지운 작은 행렬식을 곱해서 부호를 번갈아 더해요.
det = a₁₁·M₁₁ − a₁₂·M₁₂ + a₁₃·M₁₃
다만 실제 계산에서 이 방법은 쓰지 않습니다. n이 커지면 곱셈 횟수가 n! 로 폭발하거든요 (20×20 이면 우주의 나이보다 오래 걸립니다). 실전에서는 11강 가우스 소거법으로 계단 꼴을 만든 뒤 대각선을 곱합니다. 그러면 n³ 번이면 끝나요.
여인수 전개는 뜻을 보기엔 좋지만 느립니다 — 실전은 소거법으로.
Python
브라우저에서 실행
행렬식은 언제 쓰이나
솔직히 말하면, 실제 계산에서는 생각보다 덜 씁니다. "역행렬이 있나?"를 확인하려고 행렬식을 구하는 건 큰 행렬에서는 비효율적이고, 컴퓨터는 대개 소거법을 돌려 보고 판단합니다.
그래도 행렬식이 중요한 이유는 이론의 접착제이기 때문이에요.
- 고윳값 —
det(A − λI) = 0이 고윳값을 찾는 식입니다 (18강) - 부피와 적분 — 다변수 미적분의 변수변환에서 야코비 행렬식으로 등장합니다
- 기하 — 세 점이 한 직선 위에 있는지, 네 점이 한 평면 위에 있는지 판정
- 컴퓨터 그래픽스 — 삼각형의 방향(앞면/뒷면) 판정에 부호를 씁니다
행렬식 하나로 일직선 판정과 넓이 계산이 동시에 됩니다.
Python
브라우저에서 실행
🤔 확인 문제
det [ [3, 1], [2, 4] ] 는?해설 ad − bc = 3×4 − 1×2 = 12 − 2 = 10 입니다. 이 변환은 모든 도형의 넓이를 10배로 만들어요.
🤔 확인 문제
det A = 0 일 때 확실히 말할 수 있는 것은?해설 det = 0 은 변환이 공간을 납작하게 눌렀다는 뜻입니다. 정보가 사라졌으니 되돌릴 수 없어요 — 역행렬이 없습니다. 칸이 전부 0일 필요는 전혀 없습니다.
🤔 확인 문제
det A = 2, det B = 5 일 때 det(AB) 는?해설
det(AB) = det(A)·det(B) = 2 × 5 = 10 입니다. 넓이를 2배 하고 다시 5배 하면 10배가 되니 당연한 이야기예요.