Linear Algebra

Oblique Projections

Choose both a target line and a projection direction to see why an idempotent map need not be orthogonal.

By Riano · Published · Updated · Report a correction

Oblique Projections: Not All Shadows Are Straight

A projection matrix P satisfies P2 = P (idempotence). Geometrically, this means applying the transformation a second time does not change the result, because the output is already in the target subspace. However, a projection does not have to be an orthogonal projection (where the matrix is symmetric and the residual x - Px is perpendicular to the range of P).

Defining an Oblique Projection

Instead of just projecting "straight down" onto a subspace, we can project onto a target range spanned by u along a complementary direction spanned by v. For 2D vectors, as long as u and v are linearly independent, they form a basis, meaning det[u v] ≠ 0.

We can calculate the projection matrix P onto span(u) along span(v) directly: P = u * row1( [u v]-1 ). This maps the u-basis vector to itself (Pu = u) and the v-basis vector to zero (Pv = 0), matching the geometric intent of projecting along v.

Worked example: Projecting onto y = x/2

Let the target line be spanned by u = (2, 1) and project along the direction v = (1, -1). Project the vector x = (-1, 2).

  1. The matrix [u v] is [[2, 1], [1, -1]]. Its determinant is (2)(-1) - (1)(1) = -3.
  2. The inverse of [u v] is (-1/3) * [[-1, -1], [-1, 2]] = [[1/3, 1/3], [1/3, -2/3]].
  3. The first row of the inverse is [1/3, 1/3].
  4. The projection matrix P = u * row1 = [[2], [1]] * [1/3, 1/3] = [[2/3, 2/3], [1/3, 1/3]].
  5. The projected vector is Px = [[2/3, 2/3], [1/3, 1/3]] * [-1, 2] = [2/3, 1/3].
  6. The residual is x - Px = [-1, 2] - [2/3, 1/3] = [-5/3, 5/3]. Notice this residual is a scalar multiple (-5/3) of the projection direction v = (1, -1).

Explore oblique vs orthogonal projections

Open Oblique Projections. Choose the target line and direction to see how the residual and the projection matrix behave.

  1. Set Range u1 = 1, Range u2 = 0, Direction v1 = 1, Direction v2 = 1. This projects onto the x-axis along the line y = x.
  2. Set Vector x1 = 2, Vector x2 = 3. The projected vector is (-1, 0). The residual is (3, 3). Notice the residual is parallel to v, but not perpendicular to u. The "Orthogonal projection" status is false.
  3. Change Direction v1 = 1, Direction v2 = -1, and set Range u1 = 1, Range u2 = 1. Observe that u and v are perpendicular.
  4. With Vector x1 = 2, x2 = 0, the product Px is (1, 1). The "Orthogonal projection" status is true.
  5. If you set both u1 = 1, u2 = 1 and v1 = 2, v2 = 2, the status reads "Range and direction do not form a basis" because they point in the same direction.

Assumptions and Limitations

This model assumes the target subspace and direction subspace are both 1-dimensional lines in 2D space. In higher dimensions, an oblique projection involves projecting onto an m-dimensional subspace along an (n-m)-dimensional complementary subspace.

The determinant domain test uses exact bounded integers. Displayed entries use twelve significant digits from unrounded calculations. The displayed P2−P is the actual numerical difference, so floating-point roundoff can appear as a tiny residual; it is not silently replaced by zero. An oblique projection may increase norm: with u=(1,0), v=(1,1) and x=(-1,1), Px=(-2,0) has norm2 greater than √2 and is not the nearest point on the x-axis.

References

Numerical Linear Algebra (Eric Darve): Projections discusses basis-adapted projection, oblique complement, symmetry, and closest-point distinction. It verifies that oblique projection can increase norm, unlike orthogonal projection. The exact coordinate idempotence and residual-direction witnesses independently verify our calculated case.

Experience it interactively

Adjust parameters, observe in real time, and build deep intuition with Riano’s interactive Oblique Projections module.

Try Oblique Projections on Riano →

More in Linear Algebra