13.10  Low-Rank Approximation

The compact singular value decomposition writes a matrix as a sum of rank-one pieces arranged in decreasing order of size. A sum can be cut short. This section shows that cutting it short after k terms produces the best approximation to A by a matrix of rank k, measured in the Frobenius norm, and that the error it leaves is a quantity we can write down before doing any work. One theorem answers three questions at once: how to compress a matrix, which k-dimensional subspace best fits a cloud of data, and how far a given matrix is from being singular.

Throughout, F=R or F=C, A∈Mm×n(F), p=min(m,n), r=rankA, and σ1≥σ2≥⋯≥σp≥0 are the singular values of A (Definition 13.8.1), so that σi>0 exactly for i≤r. We fix a singular value decomposition A=UΣV∗ (Theorem 13.8.1) and write u1,…,um for the columns of U and v1,…,vn for the columns of V.

13.10.1. Cutting the sum short

Multiplying out UΣV∗ column by column gives the rank-one expansion A=∑i=1pσiuivi∗=∑i=1rσiuivi∗, the second equality because the terms with i>r have σi=0; this is the compact form Theorem 13.8.3. Each summand is a matrix of rank one, and the coefficients decrease. The natural thing to do with such a sum is to keep the large terms and discard the small ones.

Keep the first k rank-one pieces and throw the rest away.

Definition 13.10.1 (Truncated singular value decomposition)

For 0≤k≤p, the rank-k truncation of A relative to the chosen singular value decomposition A=UΣV∗ (Theorem 13.8.1) is Ak:=∑i=1kσiuivi∗, with A0=0; for k≥p we set Ak=A.

Two clauses need comment. The subscript counts terms kept, not rows and columns: Ak is the same size as A, not a submatrix of it. (Section 1 used Ak for the top-left k×k corner; that meaning is gone for the rest of this section.) And the definition says “relative to the chosen decomposition”, because Theorem 13.8.2 leaves the unitary factors some freedom, and different choices can give different truncations. Everything proved below holds for every choice; the warning at the end of the section shows that the dependence is real.

The rank of Ak is exactly min(k,r): the vectors u1,…,uk are orthonormal, hence independent, so the columns of Ak span span(u1,…,umin(k,r)) once the vanishing terms are dropped.

Example (Truncating a diagonal matrix)

Let A=diag(5,3,1)∈M3(R). Write down A1 and A2.

Solution. A diagonal matrix with positive decreasing entries is already in the form UΣV∗ with U=V=I3, so σi=5,3,1 and ui=vi=ei. Hence A1=5e1e1∗=diag(5,0,0),A2=diag(5,3,0). Truncation of a diagonal matrix is just deleting its smallest diagonal entries. Everything in this section is this statement, conjugated by two unitary matrices.

The first thing to compute is how much was thrown away.

Lemma 13.10.1 (The Frobenius norm counts singular values)

Let A∈Mm×n(F) have singular values σ1≥⋯≥σp. Then (the first identity is the one Section 8 already obtained, recorded here with a label because the proof of the main theorem uses it repeatedly) ‖A‖F2=∑i=1pσi2,‖A−Ak‖F2=∑i>kσi2 for every 0≤k≤p.

Proof. The Frobenius norm does not see unitary factors (Lemma 11.7.5), so from A=UΣV∗, ‖A‖F=‖ΣV∗‖F=‖Σ‖F. The only non-zero entries of Σ are σ1,…,σp on the diagonal, so ‖Σ‖F2=∑iσi2.

For the second identity, subtract the first k terms of the rank-one expansion: A−Ak=∑i>kσiuivi∗=UΣ(k)V∗, where Σ(k) is Σ with its first k diagonal entries replaced by 0. Applying the first identity to this matrix — the display is a singular value decomposition of it in the sense of Theorem 13.8.1, up to reordering the diagonal — gives ‖A−Ak‖F2=∑i>kσi2.

So the truncation error is decided in advance by the singular values, and it is small exactly when the discarded σi are small. The content of the section is that no other matrix of rank k does better.

Quick check. A matrix has singular values 5,4,3. What is the smallest k for which the relative error ‖A−Ak‖F/‖A‖F is at most 12?

Solution. By Lemma 13.10.1, ‖A‖F2=25+16+9=50. For k=1 the error squared is 16+9=25, so the relative error is 25/50=1/2≈0.71, too big. For k=2 the error squared is 9, and 9/50≈0.42≤12. So k=2. Note that the test is on the squares: halving the error means keeping three quarters of ∑σi2.

13.10.2. How much a subspace can hold

The proof of the theorem needs one inequality, and it is the only place where any work happens. The question it answers is: if we are allowed to keep only an s-dimensional subspace of Fm, how much of A can we capture? The answer is σ12+⋯+σs2, and the best subspace is the span of the leading left singular vectors.

Lemma 13.10.2 (An orthonormal list captures at most the leading singular values)

Let A∈Mm×n(F) with singular values σ1≥⋯≥σp, extended by σi=0 for p<i≤m. Let q1,…,qs be an orthonormal list in Fm, so that s≤m. Then ∑j=1s‖A∗qj‖2 ≤ ∑i=1sσi2.

Idea. Write each qj in the orthonormal basis (u1,…,um). The quantity ‖A∗qj‖2 then becomes ∑iσi2|cji|2, so the total is ∑iσi2ti with weights ti=∑j|cji|2. Two facts pin the weights down: each ti≤1, because the qj are orthonormal and Bessel’s inequality applies to ui; and ∑iti=s, because each qj is a unit vector. A weighted sum of a decreasing sequence with weights in [0,1] that sum to s is largest when the first s weights are 1 — which is the last display of the proof.

Proof. If s=0 both sides are empty sums, so assume s≥1. Fix j and put cji=⟨qj,ui⟩ for 1≤i≤m, so that the i-th entry of U∗qj is cji. Since A∗=VΣ∗U∗ and V is unitary, hence an isometry (Definition 11.7.2, Theorem 11.7.3), ‖A∗qj‖2=‖Σ∗U∗qj‖2=∑i=1mσi2|cji|2, because Σ∗ multiplies the i-th entry by σi and discards the entries beyond the p-th, which is the same as using σi=0 there. Summing over j and exchanging the two finite sums, ∑j=1s‖A∗qj‖2=∑i=1mσi2ti,ti:=∑j=1s|cji|2.

Now bound the weights. Since |cji|=|⟨ui,qj⟩| and (q1,…,qs) is an orthonormal list, Bessel’s inequality (Theorem 11.9.1) applied to the vector ui gives ti=∑j=1s|⟨ui,qj⟩|2 ≤ ‖ui‖2=1. Since (u1,…,um) is an orthonormal basis of Fm, Parseval’s identity (Theorem 11.9.2) gives ∑i=1m|cji|2=‖qj‖2=1 for each j, and therefore ∑i=1mti=∑j=1s∑i=1m|cji|2=s. Finally, using σi2≥σs2 together with ti−1≤0 for i≤s, and σi2≤σs2 together with ti≥0 for i>s, ∑i=1mσi2ti−∑i=1sσi2=∑i≤sσi2(ti−1)+∑i>sσi2ti≤σs2(∑i≤s(ti−1)+∑i>sti)=σs2(∑i=1mti−s)=0. This is the stated inequality.

Equality is attainable: take qj=uj for j≤s. Then A∗uj=σjvj by the rank-one expansion, so ‖A∗uj‖2=σj2 and the two sides agree. The lemma is the extreme case of a family of statements about sums of the largest eigenvalues of a Hermitian matrix; Chapter 17 develops the family through the Courant–Fischer min–max theorem, of which the inequality above is the crudest and most useful consequence.

13.10.3. The Eckart–Young theorem

Now the theorem. Read it as a statement about a minimization problem: over the set of matrices of rank at most k — which is not a subspace, so no earlier optimization theorem applies to it directly — the minimum of ‖A−B‖F exists, is attained at a matrix we can write down, and has a value we already computed.

Theorem 13.10.3 (Eckart–Young Theorem, Frobenius case)

Let A∈Mm×n(F) with singular values σ1≥⋯≥σp, and let 0≤k≤p. Then for every B∈Mm×n(F) with rankB≤k, ‖A−B‖F ≥ (∑i>kσi2)1/2, and equality holds for B=Ak. In words: the truncation Ak minimizes ‖A−B‖F over all matrices of rank at most k, and the minimum value is (∑i>kσi2)1/2.

Idea. The difficulty is that B is an arbitrary matrix of rank ≤k, and there is no formula for such a thing. The rescue is to stop looking at B and look only at its column space S, a subspace of dimension s≤k. ① Every column of B lies in S, so column by column the Best Approximation Theorem says B cannot beat PSA, the matrix obtained by projecting every column of A onto S. So it suffices to minimize over subspaces. ② For a subspace, Pythagoras splits the error into “all of A” minus “the part S captures”, and the captured part is exactly the quantity Lemma 13.10.2 bounds. ③ The bound is σ12+⋯+σk2, and subtracting it from ‖A‖F2=∑iσi2 leaves ∑i>kσi2, which Lemma 13.10.1 says is exactly what Ak achieves.

Proof. Step 1: reduce to a projection. Let B have rank ≤k and put S=col(B), so s:=dim⁡S=rankB≤k. Write a1,…,an and b1,…,bn for the columns of A and of B. By the definition of the Frobenius norm, summing squares of entries column by column, ‖A−B‖F2=∑j=1n‖aj−bj‖2. Each bj lies in S, so Theorem 11.3.5 gives ‖aj−bj‖≥‖aj−PSaj‖ for every j, where PS is the orthogonal projection onto S (Definition 11.3.2), identified throughout with its matrix in the standard basis of Fm. Hence ‖A−B‖F2 ≥ ∑j=1n‖aj−PSaj‖2=‖A−PSA‖F2, the last equality because the j-th column of PSA is PSaj.

Step 2: what a subspace captures. Choose an orthonormal basis (q1,…,qs) of S. For each j, the vectors aj−PSaj and PSaj are orthogonal, so Theorem 11.1.3 gives ‖aj−PSaj‖2=‖aj‖2−‖PSaj‖2, and summing over j, ‖A−PSA‖F2=‖A‖F2−‖PSA‖F2. By Theorem 11.3.3 (a), PSaj=∑l≤s⟨aj,ql⟩ql, whose summands are pairwise orthogonal, so Theorem 11.1.3 gives ‖PSaj‖2=∑l=1s|⟨aj,ql⟩|2. Exchanging the sums, ‖PSA‖F2=∑l=1s∑j=1n|⟨aj,ql⟩|2=∑l=1s‖A∗ql‖2, where the last equality holds because ⟨aj,ql⟩=ql∗aj is the j-th entry of the row vector ql∗A, whose entries are the conjugates of those of A∗ql.

Step 3: apply the bound. By Lemma 13.10.2 and s≤k, and since all σi2≥0, ‖PSA‖F2 ≤ ∑i=1sσi2 ≤ ∑i=1kσi2. Combining the three steps with ‖A‖F2=∑iσi2 (Lemma 13.10.1), ‖A−B‖F2 ≥ ‖A‖F2−∑i=1kσi2=∑i>kσi2.

Equality. The matrix Ak has rank min(k,r)≤k, and ‖A−Ak‖F2=∑i>kσi2 by Lemma 13.10.1. So the lower bound is attained, and it is the minimum. This proves the theorem.

Three remarks are worth extracting. First, the theorem is a genuine minimum, not an infimum: the minimizing matrix is exhibited. Second, the minimum value depends on A only through its singular values, so it is unchanged if A is replaced by U′AV′ with U′,V′ unitary. Third, the case k=r−1 reads: the Frobenius distance from A to the matrices of rank <r is σr, the smallest non-zero singular value. Exercise C1 turns that into a statement about how far an invertible matrix is from being singular.

Remark. The same matrix Ak is also optimal in the spectral norm ‖⋅‖2, where the minimum value is σk+1 rather than (∑i>kσi2)1/2. We cannot state that here, because the spectral norm is defined only in Chapter 16. In fact both statements are instances of one theorem: Ak is a best rank-k approximation in every unitarily invariant norm. Chapter 21 proves that, and the proof is genuinely different from the one above — it needs inequalities between the singular values of A and of A−B, not a projection argument.

13.10.4. A worked example

Example (The best rank-one approximation of a 3 × 2 matrix)

Let A=(100111)∈M3×2(R). Find the best rank-one approximation of A in the Frobenius norm, and compute the error in two ways.

Solution. Singular values and vectors. Since A has more rows than columns, work with the 2×2 matrix A⊤A=(2112), whose eigenvalues are 3 and 1 with orthonormal eigenvectors v1=12(1,1),v2=12(1,−1). Hence σ1=3 and σ2=1, and the left singular vectors are ui=Avi/σi: u1=16(1,1,2),u2=12(1,−1,0). (Both are unit vectors, as they must be: 1+1+4=6 and 1+1=2.)

The approximation. By Theorem 13.10.3 the answer is A1=σ1u1v1⊤. The scalar in front is 3/(62)=3/12=12, so A1=12(111122). It has rank one, its two columns being equal and non-zero.

The error, twice. Directly, A−A1=12(1−1−1100),‖A−A1‖F2=4⋅14=1. From the theorem, the error squared is σ22=1. The two agree. As a further check, ‖A‖F2=1+1+1+1=4 and σ12+σ22=3+1=4, as Lemma 13.10.1 requires; the relative error of the rank-one approximation is 1/4=12.

13.10.5. Best-fitting subspaces

Step 1 of the proof did more than its job. It showed that the optimal B may be taken of the form PSA, and Steps 2 and 3 identified the best S. That identification is a theorem in its own right, and it is the statement people mean when they speak of fitting a low-dimensional structure to data.

Corollary 13.10.4 (The best-fitting subspace)

Let a1,…,an∈Fm be the columns of A, and let 1≤k≤p. Among all subspaces S⊆Fm with dim⁡S≤k, the total squared distance D(S):=∑j=1nd(aj,S)2 is smallest for S=span(u1,…,uk), and its smallest value is ∑i>kσi2.

Proof. By Definition 11.3.3, d(aj,S)=‖aj−PSaj‖, so D(S)=‖A−PSA‖F2 as in Step 1 of Theorem 13.10.3. Since rank(PSA)≤dim⁡S≤k, the theorem gives D(S)≥∑i>kσi2. For S0=span(u1,…,uk) the columns u1,…,uk are orthonormal, so Theorem 11.3.3 (a) gives PS0A=∑i=1kuiui∗A=∑i=1kσiuivi∗=Ak, using ui∗A=σivi∗, which is the rank-one expansion read one row at a time. Hence D(S0)=‖A−Ak‖F2=∑i>kσi2.

What this is used for, honestly. Two applications are within reach of what we have proved, and a third is not.

The first is compression. Storing A costs mn numbers; storing Ak as the list σ1,u1,v1,…,σk,uk,vk costs k(m+n+1). When k is much smaller than m and n that is a large saving, and Theorem 13.10.3 says no other rank-k object stored the same way is closer to A in the Frobenius norm. The relative error is (∑i>kσi2/∑iσi2)1/2, computable before choosing k. Whether that error is acceptable is not a mathematical question.

The second is principal components. Take n data points in Rm and place them as the columns of A. Then Corollary 13.10.4 says: the k-dimensional subspace through the origin that minimizes the total squared distance to the data is spanned by u1,…,uk, the leading left singular vectors. These directions are the principal components of the data, and the numbers σi2 measure how much of ∑j‖aj‖2 each one accounts for. That is a theorem of linear algebra, and it is the whole of what this book has proved.

What is not proved here is the statistics. The usual procedure subtracts the mean of the data first, so that 1nAA⊤ becomes a sample covariance matrix, and then interprets σi2/∑lσl2 as a fraction of variance explained. Those steps need a probabilistic model, a reason to prefer squared error, and an argument that the sample answer says something about a larger population. Chapter 24 §10 supplies the first two — the model for the finite population of the data themselves, where expectation is an average and no measure theory is needed, and three reasons to prefer squared error — and says plainly that the third belongs to probability and statistics, which this book does not develop. It also says why a singular value decomposition is never computed by forming A∗A and finding its eigenvalues, the route taken in every hand computation in this chapter; the algorithm that replaces it is assembled nowhere in this book.

Warning. The truncation is optimal for this norm, and low rank does not mean small. Two mistakes to avoid.

Other measures of error give other answers. Let A=diag(2,1), so σ1=2, σ2=1, and A1=diag(2,0), whose error matrix diag(0,1) has a largest entry of modulus 1. The rank-one matrix B=12(3331),A−B=12(1−3−31), has detB=34−34=0, so rankB=1, and every entry of A−B has modulus at most 3/2≈0.87<1. So B beats A1 if the error is measured entrywise. It loses in the Frobenius norm, as it must: ‖A−B‖F2=2>1=‖A−A1‖F2.

Small rank and small size are unrelated. The n×n all-ones matrix J has rank 1 and ‖J‖F=n, while εIn has rank n and ‖εIn‖F=εn, as small as we like. “Approximating by a matrix of low rank” is a statement about structure, never about magnitude.

13.10.6. Exercises

A. Check your understanding

Exercise (A1)
  • (a) State the Eckart–Young Theorem, including the value of the minimum.
  • (b) Express ‖A‖F in terms of the singular values of A.
  • (c) Let rankA=r. What is Ak for k≥r, and what is the minimum of ‖A−B‖F over rankB≤k in that case?
  • (d) True or false: the truncation Ak is the unique matrix of rank at most k nearest to A in the Frobenius norm. Justify your answer.
  • (e) A matrix of rank 1 is close to 0 in the Frobenius norm. True or false? Justify your answer.

Solution.

  • (a) For A∈Mm×n(F) with singular values σ1≥⋯≥σp and 0≤k≤p: every B with rankB≤k satisfies ‖A−B‖F≥(∑i>kσi2)1/2, with equality for B=Ak=∑i≤kσiuivi∗.

  • (b) ‖A‖F=(∑i=1pσi2)1/2 (Lemma 13.10.1).

  • (c) Ak=A, since the terms with i>r are zero; the minimum is 0, attained at B=A itself, which has rank r≤k.

  • (d) False in general. Take A=I2, so σ1=σ2=1. Both B1=diag(1,0) and B2=12(1111) have rank 1, and ‖I2−B1‖F2=1=‖I2−B2‖F2, which is the minimum σ22. (Both are truncations of I2, for two different singular value decompositions.)

  • (e) False. Rank is unrelated to size: the all-ones matrix J∈Mn(R) has rank 1 and ‖J‖F=n.

B. Practice

Exercise (B1: Errors from the singular values alone)

A matrix A has singular values 6,3,2,1.

  • (a) Compute ‖A‖F and the minimum of ‖A−B‖F over matrices B of rank at most k, for k=1,2,3.
  • (b) Find the smallest k for which the relative error ‖A−Ak‖F/‖A‖F is at most 0.3.

Solution.

  • (a) ‖A‖F2=36+9+4+1=50, so ‖A‖F=50=52. By Theorem 13.10.3 the minima are 9+4+1=14,4+1=5,1=1 for k=1,2,3.

  • (b) The condition is ∑i>kσi2≤0.09⋅50=4.5. For k=2 the left side is 5>4.5; for k=3 it is 1≤4.5. So k=3.

Exercise (B2: A best rank-one approximation)

Let A=(3113)∈M2(R). Find the singular values of A, the best rank-one approximation A1 in the Frobenius norm, and the error, computed both directly and from the theorem.

Solution. A is symmetric with eigenvalues 4 and 2 (trace 6, determinant 8) and orthonormal eigenvectors q1=12(1,1), q2=12(1,−1). Both eigenvalues are positive, so A≻0, and A⊤A=A2 has eigenvalues 16 and 4; hence σ1=4, σ2=2, with ui=vi=qi.

Therefore A1=4q1q1⊤=4⋅12(1111)=(2222), which has rank one. Directly, A−A1=(1−1−11),‖A−A1‖F2=4. From Theorem 13.10.3 the error squared is σ22=4. The two agree, and ‖A‖F2=9+1+1+9=20=16+4 checks Lemma 13.10.1.

Exercise (B3: Pythagoras for the truncation)

Let A∈Mm×n(F) and 0≤k≤p. Prove that ‖A‖F2=‖Ak‖F2+‖A−Ak‖F2, and deduce that k↦‖A−Ak‖F is non-increasing.

Solution. By Lemma 13.10.1 applied to A and to A−Ak, and by the same lemma applied to Ak, whose singular values are σ1,…,σk followed by zeros (it equals UΣ′V∗ with Σ′ the matrix keeping only the first k diagonal entries of Σ), ‖Ak‖F2+‖A−Ak‖F2=∑i≤kσi2+∑i>kσi2=‖A‖F2. Since ‖A−Ak‖F2=∑i>kσi2 and the σi2 are non-negative, increasing k by one removes a non-negative term, so the sequence is non-increasing. This proves both claims.

C. Going deeper

Exercise (C1: How far is a matrix from being singular?)

Let A∈Mn(F) be invertible, with singular values σ1≥⋯≥σn>0.

  • (a) Prove that ‖A−B‖F≥σn for every singular B∈Mn(F).
  • (b) Exhibit a singular B with ‖A−B‖F=σn.
  • (c) Deduce that the distance from A to the set of singular matrices, measured in the Frobenius norm, is exactly σn, and illustrate this with A=(3113).

Solution.

  • (a) A singular B∈Mn(F) has rankB≤n−1 (Theorem 7.5.3 (d)). By Theorem 13.10.3 with k=n−1, ‖A−B‖F ≥ (∑i>n−1σi2)1/2=σn.

  • (b) Take B=An−1=∑i≤n−1σiuivi∗. Its rank is n−1<n, so it is singular, and ‖A−B‖F=σn by Lemma 13.10.1.

  • (c) By (a) the distance is at least σn and by (b) it is at most σn, so it equals σn; in particular the minimum is attained. For the given A, Exercise B2 found σ2=2 and A1=(2222), which is singular and at Frobenius distance 2. So no singular matrix is closer to A than 2. The smallest singular value is therefore a quantitative version of invertibility: A is invertible exactly when σn>0, and it is far from singular exactly when σn is large.

Exercise (C2: The best line through a cloud of points)

The four points (1,1),(2,2),(1,−1) and (0,0) of R2 are to be fitted by a line through the origin, minimizing the total squared distance from the points to the line.

  • (a) Write the points as the columns of a matrix A and compute AA⊤ and the singular values of A.
  • (b) Use Corollary 13.10.4 to find the best line and the minimum total squared distance.
  • (c) Verify the answer by computing the four distances directly.

Solution.

  • (a) With the points as columns, A=(121012−10),AA⊤=(6446). The eigenvalues of AA⊤ are 10 and 2 (trace 12, determinant 20), with orthonormal eigenvectors u1=12(1,1) and u2=12(1,−1). The eigenvalues of AA⊤ are the squares of the singular values, since AA⊤=UΣΣ∗U∗; hence σ1=10 and σ2=2.

  • (b) By Corollary 13.10.4 with k=1, the best line is S0=span(u1), the line y=x, and the minimum total squared distance is σ22=2.

  • (c) The points (1,1),(2,2) and (0,0) lie on y=x, contributing 0. For (1,−1), the projection onto span((1,1)) is 1−12(1,1)=(0,0), so the distance squared is 1+1=2. The total is 2, as predicted. (The point (0,0) contributes nothing to any subspace through the origin; it is there as a reminder that the corollary counts all columns, including zero ones.)

Exercise (C3: Truncation respects unitaries but not sums)

Let A∈Mm×n(F), and let Q∈Mm(F) and R∈Mn(F) be unitary (orthogonal, when F=R).

  • (a) Prove that QAkR∗ is a best rank-k approximation of QAR∗ in the Frobenius norm.
  • (b) Deduce that the function A↦min{‖A−B‖F:rankB≤k} is unchanged by A↦QAR∗.
  • (c) Give A,B∈M2(R) with (A+B)1≠A1+B1 for every choice of the truncations involved. Hint: two rank-one matrices whose sum is a multiple of the identity.

Solution.

  • (a) If A=UΣV∗ is a singular value decomposition (Theorem 13.8.1), then QAR∗=(QU)Σ(RV)∗ is one as well, since a product of unitary matrices is unitary (Proposition 11.7.4 (a)) and Σ is unchanged. Its left and right singular vectors are Qui and Rvi, so its rank-k truncation for this decomposition is ∑i≤kσi(Qui)(Rvi)∗=Q(∑i≤kσiuivi∗)R∗=QAkR∗. By Theorem 13.10.3 applied to QAR∗, this is a best rank-k approximation.

  • (b) The two matrices have the same singular values, so by Theorem 13.10.3 both minima equal (∑i>kσi2)1/2.

  • (c) Take A=diag(1,0) and B=diag(0,1). Each has rank one, so A1=A and B1=B for every singular value decomposition, and A1+B1=I2. But A+B=I2, whose rank-one truncations all have rank one, hence are never I2. So (A+B)1≠A1+B1. Truncation is not a linear operation, which is why “keep the biggest pieces” cannot be analyzed one summand at a time.

Found a typo or a mistake? Report it, or read this page’s source

The text of this book is licensed under CC BY-NC-SA 4.0.