3. The cross product: areas, volumes, and orientation
§9.1's dot product multiplies two vectors down to a single number. This lesson's cross product does something stranger and, for three-dimensional work, more powerful: it multiplies two vectors together and produces a third vector — one perpendicular to both inputs, whose length measures an area. It exists only in three dimensions (a genuine restriction, unlike the dot product, which works in any dimension), which is exactly why it waited for this module.
Definition
\vec u\times\vec v=\langle u_2v_3-u_3v_2,\ u_3v_1-u_1v_3,\ u_1v_2-u_2v_1\rangle
A cleaner way to remember this: it's the determinant of a 3\times3 matrix with \vec i,\vec j,\vec k in the first row:
\vec u\times\vec v=\begin{vmatrix}\vec i&\vec j&\vec k\\u_1&u_2&u_3\\v_1&v_2&v_3\end{vmatrix}
Geometric meaning
Direction: \vec u\times\vec v is perpendicular to both \vec u and \vec v — check this directly: \vec u\cdot(\vec u\times\vec v)=0 and \vec v\cdot(\vec u\times\vec v)=0 always (expand the dot product with the formula above and every term cancels). Its specific direction, out of the two perpendicular choices, is given by the right-hand rule: point the fingers of your right hand along \vec u, curl them toward \vec v, and your thumb points along \vec u\times\vec v.
Magnitude:
|\vec u\times\vec v|=|\vec u||\vec v|\sin\theta
— this is exactly the area of the parallelogram with sides \vec u and \vec v (base |\vec u|, height |\vec v|\sin\theta, the same base-times-height area formula behind every rectangle-approximation argument since §4.1, here applied to a tilted parallelogram instead of an axis-aligned rectangle).
Anti-commutativity: the key difference from the dot product
\vec u\times\vec v=-(\vec v\times\vec u)
Swapping the order flips the sign — the opposite of the dot product's commutativity (§9.1). This is a direct consequence of the right-hand rule: curling fingers from \vec v toward \vec u instead of \vec u toward \vec v reverses which way the thumb points. A quick, memorable check: \vec i\times\vec j=\vec k, but \vec j\times\vec i=-\vec k.
A parallel pair has zero cross product, the mirror image of §9.1's orthogonality test: \vec u\times\vec v=\vec0\iff\vec u and \vec v are parallel (including the degenerate case where one is the zero vector) — since \sin\theta=0 exactly when \theta=0 or \pi.
The scalar triple product: volume
\vec u\cdot(\vec v\times\vec w)
computes the (signed) volume of the parallelepiped — a slanted box — with edges \vec u,\vec v,\vec w. This follows directly from combining the two products' geometric meanings: \vec v\times\vec w's magnitude is the area of the base parallelogram, and dotting with \vec u projects \vec u onto the direction perpendicular to that base (§9.1's projection idea again) — exactly "base area times height," the same principle that gives a cylinder or prism its volume in ordinary geometry.
A zero triple product means the three vectors are coplanar — they lie flat, with no third dimension of extent, collapsing the parallelepiped to zero volume. This test resurfaces directly in §9.3, checking whether a point lies in a given plane.
Doing it in Python
The cross product, and confirming it's perpendicular to both inputs:
import sympy as sp
u = sp.Matrix([1, 2, 3])
v = sp.Matrix([4, 5, 6])
cross = u.cross(v)
print(f"u x v = {cross.T}")
print(f"u . (u x v) = {u.dot(cross)} (should be 0)")
print(f"v . (u x v) = {v.dot(cross)} (should be 0)")
The area of a parallelogram, computed via the cross product's magnitude:
import sympy as sp
u = sp.Matrix([1, 2, 3])
v = sp.Matrix([4, 5, 6])
area = sp.sqrt(u.cross(v).dot(u.cross(v)))
print(f"area of the parallelogram spanned by u and v = {area} = {float(area):.4f}")
Anti-commutativity, confirmed directly, plus the volume of a parallelepiped via the scalar triple product:
import sympy as sp
u = sp.Matrix([1, 2, 3])
v = sp.Matrix([4, 5, 6])
print(f"u x v = {u.cross(v).T}")
print(f"v x u = {v.cross(u).T}")
print(f"negatives of each other: {u.cross(v) == -v.cross(u)}")
a = sp.Matrix([1, 1, 0])
b = sp.Matrix([0, 1, 1])
c = sp.Matrix([1, 0, 1])
volume = a.dot(b.cross(c))
print(f"\nvolume of the parallelepiped spanned by a, b, c = {volume}")
Worked example
Find \vec u\times\vec v for \vec u=\langle1,2,3\rangle, \vec v=\langle4,5,6\rangle, and use it to find the area of the parallelogram they span.
\vec u\times\vec v=\langle(2)(6)-(3)(5),\,(3)(4)-(1)(6),\,(1)(5)-(2)(4)\rangle=\langle12-15,\,12-6,\,5-8\rangle
\boxed{\vec u\times\vec v=\langle-3,6,-3\rangle}
\text{Area}=|\vec u\times\vec v|=\sqrt{(-3)^2+6^2+(-3)^2}=\sqrt{9+36+9}=\sqrt{54}=\boxed{3\sqrt6}
Sanity check. Verify perpendicularity directly: \vec u\cdot(-3,6,-3)=(1)(-3)+(2)(6)+(3)(-3)=-3+12-9=0 ✓, and \vec v\cdot(-3,6,-3)=(4)(-3)+(5)(6)+(6)(-3)=-12+30-18=0 ✓ — both check out exactly. Also, \vec u and \vec v point in noticeably similar directions (their components are proportional-ish, both increasing steadily), so a relatively modest area — rather than something enormous — is a reasonable outcome for a fairly "thin" parallelogram; 3\sqrt6\approx7.35 is on the small side, consistent. ✓
Your turn
1. Compute \vec i\times\vec j, \vec j\times\vec k, and \vec k\times\vec i directly from the definition, and note the cyclic pattern.
2. Find the area of the triangle (not parallelogram — half of it) with vertices A=(0,0,0), B=(2,0,0), C=(0,3,0), using the cross product of \overrightarrow{AB} and \overrightarrow{AC}.
3. True or false: if \vec u\times\vec v=\vec0 for nonzero vectors \vec u,\vec v, then \vec u and \vec v must be orthogonal.
Solutions
1. \vec i\times\vec j=\langle(0)(0)-(0)(1),(0)(0)-(1)(0),(1)(1)-(0)(0)\rangle=\langle0,0,1\rangle=\vec k. Similarly \vec j\times\vec k=\vec i and \vec k\times\vec i=\vec j — a cyclic pattern, \vec i\to\vec j\to\vec k\to\vec i, each product of consecutive basis vectors giving the next one in the cycle.
2. \overrightarrow{AB}=\langle2,0,0\rangle, \overrightarrow{AC}=\langle0,3,0\rangle.
\overrightarrow{AB}\times\overrightarrow{AC}=\langle(0)(0)-(0)(3),\,(0)(0)-(2)(0),\,(2)(3)-(0)(0)\rangle=\langle0,0,6\rangle
Parallelogram area =|\langle0,0,6\rangle|=6; triangle area is half: \boxed{3} — matching the ordinary \frac12\text{base}\times\text{height}=\frac12(2)(3)=3 formula for a right triangle with legs 2 and 3, exactly as it should.
3. False. \vec u\times\vec v=\vec0 means \sin\theta=0, i.e. \theta=0 or \theta=\pi — parallel, not perpendicular. This is precisely the opposite conclusion from the dot product being zero (§9.1), and mixing the two up is the most common error when first learning both products: dot-product-zero means perpendicular, cross-product-zero means parallel.
Check yourself in code
Compute \vec u\times\vec v for \vec u=\langle1,2,3\rangle, \vec v=\langle4,5,6\rangle, and the area of the parallelogram they span.
Print exactly this:
u x v = [-3, 6, -3]
area = 3*sqrt(6)
import sympy as sp
u = sp.Matrix([1, 2, 3])
v = sp.Matrix([4, 5, 6])
cross = u.cross(v)
print("u x v = ...")
area = sp.sqrt(cross.dot(cross))
print("area = ...")
import sympy as sp
u = sp.Matrix([1, 2, 3])
v = sp.Matrix([4, 5, 6])
cross = u.cross(v)
print(f"u x v = {list(cross)}")
area = sp.sqrt(cross.dot(cross))
print(f"area = {area}")
The cross product \vec u\times\vec v produces a vector perpendicular to both inputs, with magnitude |\vec u||\vec v|\sin\theta equal to the area of the parallelogram they span — the exact opposite behavior of the dot product, which is anti-commutative rather than commutative and detects parallel (not perpendicular) vectors when it vanishes. The scalar triple product \vec u\cdot(\vec v\times\vec w) chains both products together to measure a parallelepiped's volume, and its vanishing signals three vectors collapsing into a single plane — the exact test §9.3 needs next.
Next: using both products together to describe lines, planes, and curved surfaces in three-dimensional space.