Back

SVD: M as rotate, scale, rotate

What you are seeing: the singular-value decomposition of a 2x2 matrix M=USVTM = U S V^T visualized as four panels left to right: the unit circle, after VTV^T (a rotation), after S=diag(s1,s2)S = \mathrm{diag}(s_1, s_2) (axis-aligned scaling), and after UU (a rotation). The final panel is the image of the unit circle under MM, which is the same ellipse as the right panel of the eigenvector playground, just decomposed.

The singular values s1s20s_1 \ge s_2 \ge 0 are the lengths of the ellipse semi-axes. Sliding the matrix entries shows that rotations keep both si=1s_i = 1 (no stretching), pure scaling preserves the coordinate axes, and shears mix the two rotations into something visually interesting. Symmetric MM has V=UV = U (up to sign), so the two rotations match.

Figure 1. SVD of a 2x2 matrix. Method: closed-form via eigenvalues of MTMM^T M.
M = [[a, b], [c, d]]
a1.50
b-0.70
c0.40
d2.10

INTERPRETATIONS

  • Pure rotation: Set all to cos(theta), -sin(theta), sin(theta), cos(theta). You get s_1 = s_2 = 1 and both panels stay circles.
  • Pure scaling: Set b=c=0 and vary a, d. Then V^T does nothing (circle stays circle), S stretches it, and U does nothing.
  • Singular matrix: Set ad = bc to make the determinant zero. The ellipse collapses to a line segment; s_2 → 0 and cond(M) → infinity.
  • Symmetric matrix: Set b=c. The first and last rotations are the same; V = U (up to sign). The ellipse axes align with the coordinate axes.