# Determinants

## Geometric Interpretation

In his video on determinants, 3blue1brown provides a nice geometric interpretation for the determinant of a matrix, A.

Generally, the determinant represents the factor by which a matrix scales the area/volume/etc after a linear transformation.

This is a better approach than rote memorization of the formula for calculating a determinant and just rolling with it (like I did for years).

from IPython.display import Image

Image('images/determinant_formula_2d.PNG')

### 2D Intuition

To see why this is the case, let’s consider a couple simple shapes/transformations.

As mentioned in our Linear Transformation notebook, we consider the matrix A as the effect on our basis unit vectors i and j. The area of a 1x1 rectangle is obviously 1, so looking at a simple matrix below that stretches our area in a straight line about the X and Y axes, we can see that the form expands to area a * d, which is the same as the growth of scale when dividing by 1.

Image('images/determinant_rectangle.PNG')

Making the transformation a bit spicier, we’ll make our transformation on j one in two dimensions, keeping i in one.

The area of a parallelogram is just the height multiplied by the width, which is still easy enough to see in this form.

Image('images/determinant_parallelogram.PNG')

Finally, making the transformation on both i and j be across two dimensions, 3b1b provided a really elegant geometric representation for the formula that you might have memorized to show that this still holds.

Image('images/determinant_math.PNG')

## Extensions

### 3D

There is, of course, a general form for calculating the determinant, but that’s easily obviated away with numpy

Image('images/determinant_formula.PNG')

Remembering the intuition behind the determinant is far more valueable, imo.

### Transformation Non Unit Vector Shapes

As remarked in the notebook on Linear Transformations, the consequence of applying a linear transformation using a matrix A is that parallel and evenly-spaced points remain so after a transformation. And so the scaling of our area follows the same effect for any shape. e.g.

Image('images/det_linearity_before.PNG')

transforming to

Image('images/det_linearity_after.PNG')