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이 되는지 보세요. 두 열이 같은 직선 위에 오면 평행사변형이 선분으로 찌부러집니다.

넓이·부호·det=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] ] 는?
🤔 확인 문제
det A = 0 일 때 확실히 말할 수 있는 것은?
🤔 확인 문제
det A = 2, det B = 5 일 때 det(AB) 는?