Linear Algebra

Principal Angles Between Planes

Compare two planes through the origin and see why their principal angles ignore the signs of their normals.

By Riano · Published · Updated · Report a correction

Principal Angles Between Planes

Concept Overview

The principal angles between two subspaces generalize the concept of an angle between two vectors. For two 2D subspaces (planes) in ℝ3, there are two principal angles. If the planes are defined as the orthogonal complements of nonzero normal vectors u and v, the principal angles describe their geometric relationship.

Two distinct planes in ℝ3 always intersect in at least a 1D subspace (a line). Since this line belongs to both planes, the first principal angle is always 0°. The second principal angle captures the maximum "separation" between the planes and is equal to the angle between their normal vectors. Since subspaces are unoriented, the sign of the normal vectors does not affect the planes themselves, meaning the principal angle must ignore the sign and is determined by acos(|u·v| / (||u|| ||v||)).

Worked Example

Let's find the principal angles between two planes defined by their normal vectors u = (1, 2, 2) and v = (2, 1, 2).

  1. Calculate the norms:
    ||u||2 = 12 + 22 + 22 = 1 + 4 + 4 = 9. Thus, ||u|| = 3.
    ||v||2 = 22 + 12 + 22 = 4 + 1 + 4 = 9. Thus, ||v|| = 3.
  2. Calculate the dot product:
    u · v = (1)(2) + (2)(1) + (2)(2) = 2 + 2 + 4 = 8.
  3. Find the intersection dimension and first angle:
    Since the normal vectors are not parallel (their cross product is (2, 2, -3)), the planes intersect in a line (dimension 1). Because they share this line, the first principal angle is 0°.
  4. Calculate the nontrivial cosine and second angle:
    The nontrivial cosine is |u · v| / (||u|| ||v||) = |8| / (3 * 3) = 8/9 ≈ 0.888888888889.
    The second principal angle is acos(8/9), which is approximately 27.266044450733°. Notice how changing the sign of u or v would not change the planes, hence the absolute value on the dot product.

Interactive Experiment

Open the interactive module to visualize the planes and their normal vectors.

  1. Adjust the sliders for Normal u1, Normal u2, and Normal u3 to define the normal vector of the first plane.
  2. Adjust the sliders for Normal v1, Normal v2, and Normal v3 to define the normal vector of the second plane.
  3. Observe the calculated Principal Angles, Intersection Dim, and Nontrivial Cosine in the Results panel.

Limitations

This interactive module focuses on 2D subspaces (planes) within ℝ3. The concept of principal angles extends to general finite-dimensional subspaces (e.g., via Singular Value Decomposition), but this implementation is limited to the intuitive 3D geometric case. Furthermore, zero normal vectors are explicitly unsupported because they do not define a valid plane.

References

The mathematical formulation implemented here relies on standard subspace concepts.

Experience it interactively

Adjust parameters, observe in real time, and build deep intuition with Riano’s interactive Principal Angles Between Planes module.

Try Principal Angles Between Planes on Riano →

More in Linear Algebra