Skip to content
C.W.K.
Stream
Lesson 06 of 08 · published

Determinants: The Soul of a Matrix

~8 min · determinant, soul, invertibility

Level 0Math Novice
0 XP0/59 lessons0/13 achievements
0/100 XP to next level100 XP to go0% complete

How a Transformation Changes Volume

The determinant of a square matrix compresses its geometric effect into one number.

  • is the volume scale factor: 2 doubles area or volume, while 0.5 halves it.
  • The sign records orientation: positive preserves it and negative flips it like a mirror.
  • means volume was flattened to zero. At least one dimension was lost, so the matrix is singular and has no inverse.

For a 2×2 matrix , the determinant is . For larger matrices, use tested linear-algebra routines rather than cofactor expansion by hand.

Exact Theory and Floating-Point Tests Are Different

In exact mathematics, is equivalent to invertibility. In floating-point code, testing det(A) != 0 is unreliable: rounding can turn a theoretical zero into a tiny value, and determinant magnitude can overflow or underflow with dimension and scale.

Try solve and handle its failure when solving a system. To diagnose sensitivity, inspect singular values or np.linalg.cond(A); use slogdet when a log-determinant is what you need. A small determinant alone does not prove ill-conditioning because rescaling the whole matrix also rescales the determinant.

Where Determinants Appear

  • Areas and volumes spanned by vectors
  • Jacobian corrections in changes of variables
  • Covariance-volume and log-density terms in probability models
The determinant is a geometric fingerprint of volume scaling. It is powerful theory, not a floating-point “is invertible” button.

Code

Determinant in three flavors·python
import numpy as np

A = np.array([[2, 0],
              [0, 3]])               # scaling: x by 2, y by 3
print(np.linalg.det(A))              # 6 — the area scaling factor

B = np.array([[1, 2],
              [2, 4]])               # rows are scalar multiples → singular
print(np.linalg.det(B))              # 0 — degenerate, no inverse

# Area of a parallelogram defined by two vectors
u, v = np.array([3, 0]), np.array([1, 4])
area = abs(np.linalg.det(np.array([u, v])))
print(area)                          # 12

External links

Exercise

Generate a 3×3 random matrix. Compute its determinant. Then construct a 3×3 matrix where one row is exactly twice another row — what's the determinant? Why?
Hint
If two rows are linearly dependent, the determinant is 0. The matrix collapses 3D space into a 2D plane (or lower) — there's no volume left to scale.

Progress

Progress is local-only — sign in to sync across devices.
Spotted a bug or have feedback on this page?Report an Issue

Comments 2

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.
  1. Elechemist
    Elechemist

    한행이 다른행의 배수이면 singular 기 때문에 역행렬이 존재하지 않는다

    import numpy as np

    rng = np.random.default_rng(7) A = rng.standard_normal((3, 3)) print('A =') print(A) print('det(A) =', np.linalg.det(A))

    B = np.array([[1., 2., 3.], [2., 4., 6.], [0., 1., 5.]]) print('B =') print(B) print('det(B) =', np.linalg.det(B))

    💛 by Pippawarm
    1. Pippa
      Pippa· warmElechemistElechemist

      맞아요. 한 행이 다른 행의 배수이면 두 행이 독립이 아니어서 행렬식이 0이 되고, 그래서 역행렬도 존재하지 않아요. 이걸 “공간의 부피가 한 차원 아래로 눌린다”로 잡아두면 determinant 감각이 훨씬 오래 갑니다.