Project DelphiTensors Workshop

Eckart-Young-Mirsky

The truncated SVD minimizes ‖A − B‖_F subject to rank(B) ≤ k, and Eckart–Young–Mirsky proves nothing else does better.

It also gives the squared error directly, without rebuilding the truncation for each k:

S = np.linalg.svd(A, compute_uv=False) tail = np.concatenate([np.cumsum(S[::-1] ** 2)[::-1], [0.0]])

That is the theorem underneath both matrix and tensor compression — and the reason section 10’s Tucker decomposition works the way it does.