singular values vs eigenvalues
These two are constantly confused, and for good reason — they coincide in the friendliest case. But they answer different questions. Eigenvalues ask: along which directions does A act as pure scaling, A v = lambda v? Singular values ask: how much does A stretch space in its most-stretched directions, regardless of any rotation? One is about invariant directions, the other about magnitudes of stretch.
When do they line up? For a symmetric positive-semidefinite matrix, the singular values exactly equal the eigenvalues. For any symmetric (or, over C, Hermitian) matrix, the singular values are the absolute values of the eigenvalues: sigma_i = |lambda_i|. So a symmetric matrix with eigenvalues 4 and -3 has singular values 4 and 3 — the sign is the only difference.
Away from symmetry they can diverge sharply, and the disagreement is the point. Eigenvalues can be negative or complex; singular values are always real and nonnegative. A nonzero matrix can have all eigenvalues zero (a nilpotent shift like [0, 1; 0, 0]) yet still have a nonzero singular value, because it genuinely stretches space even though no direction is merely scaled.
One inequality always holds and is worth memorizing: every eigenvalue is bounded in magnitude by the largest singular value, |lambda| <= sigma_max (this is the spectral radius being at most the operator 2-norm). For normal matrices (those commuting with their transpose/adjoint) the two notions tighten back together, sigma_i = |lambda_i|, which is why symmetric, orthogonal, and unitary matrices are so well behaved.
A nilpotent shift: every eigenvalue is zero, yet it stretches one direction, so sigma_1 = 1.
Eigenvalues need a square matrix; singular values work for any shape. Eigenvalues can vanish on a stretching matrix, but a matrix has a zero singular value if and only if it is rank-deficient.