Singular Value Decomposition

condition number from SVD

When you solve Ax = b on a computer, the data b carries small errors and so does A. The condition number measures how badly those small input errors can blow up in the answer x. It is the amplification factor for relative error: a well-conditioned matrix passes errors through gently, an ill-conditioned one magnifies them catastrophically.

The SVD gives the cleanest definition: kappa(A) = sigma_max / sigma_min, the ratio of the largest singular value to the smallest nonzero one. The map stretches some directions by sigma_max and squeezes others down to sigma_min; inverting it does the reverse, so a tiny sigma_min becomes a huge 1/sigma_min that wildly amplifies any error component lying in that squeezed direction.

Read the extremes. kappa = 1 is perfect: orthogonal matrices have all singular values equal and condition number 1, so they never amplify error. As sigma_min approaches zero, kappa shoots to infinity and the matrix approaches singular — solutions become hopelessly sensitive. A rough rule: if kappa is about 10^k, you can lose roughly k digits of accuracy when solving the system.

Singular values also clarify what rank means in finite precision. Exact rank counts nonzero singular values, but numerically a singular value of 10^{-15} is indistinguishable from noise. The numerical rank counts singular values above a sensible threshold, and the condition number tells you how confidently you can draw that line — a huge gap between sigma's means a clean cutoff, a smooth decay means the rank is genuinely ambiguous.

kappa(A) = sigma_max / sigma_min ; kappa = 1 (orthogonal), kappa -> infinity as A -> singular

The spread of singular values sets the error amplification; equal singular values mean perfect conditioning.

This is the 2-norm condition number. Other norms give other condition numbers, but the SVD form sigma_max/sigma_min is the most common and the most geometrically transparent.

Also called
kappa(A)sigma_max / sigma_min