12.9  Circulants and the Discrete Fourier Transform

The spectral theorem of Section 4 gives every normal matrix a unitary of its own, found by solving that matrix’s eigenvalue problem. This section does something better for one particular family: it writes down a single unitary matrix, before any matrix of the family is named, and that one matrix diagonalizes all of them at once. The family is the circulants, the unitary is built from the n-th roots of unity, and the resulting dictionary between multiplying matrices and multiplying numbers is the discrete Fourier transform.

Two earlier pages pointed here. In Example (Which of these are normal?) (d) a 3×3 matrix whose rows were cyclic shifts of one another turned out to be normal, with the row dot products and the column dot products agreeing entry for entry; Exercise (B2: A circulant, diagonalized) met the same phenomenon again and diagonalized one such matrix by hand. Both times the agreement was described and not explained. It is explained below, and the explanation is the first theorem of the section.

Throughout, the field is C, and rows, columns and vector entries are numbered 0,1,…,n−1. That is a departure from the rest of the book, and it is worth it: every formula here involves an index read modulo n, and modular arithmetic starts at 0.

12.9.1. Matrices whose rows walk around

Fix n≥1 and let S∈Mn(C) be the matrix with (S)jk=1 when k≡j+1(modn) and (S)jk=0 otherwise: a 1 in each position (j,j+1) for j≤n−2, one more in the corner position (n−1,0), and zeros elsewhere. For n=4, S=(0100001000011000). Applied to a vector, S moves every entry one place up and sends the top entry around to the bottom: Sx=(x1,x2,…,xn−1,x0). We call S the cyclic shift. Each row and each column of S carries exactly one 1, so S is a permutation matrix (Definition 3.4.2), and shifting n times returns every entry to where it started, so Sn=I.

Now think of S as a building block. The powers I,S,S2,…,Sn−1 are the n distinct “rotations of the identity”, and a general linear combination of them is the object of this section.

A circulant is a matrix that does not know where the list begins: shift the indices and nothing changes.

Definition 12.9.1 (Circulant matrix)

Let n≥1 and let c=(c0,c1,…,cn−1)∈Cn. The circulant with first row c is the matrix C∈Mn(C) whose entries are (C)jk=ck−j(0≤j,k≤n−1), where the subscript k−j is read modulo n. The polynomial pc(x)=c0+c1x+c2x2+⋯+cn−1xn−1∈C[x] is called the symbol of C.

In words: the entry in a given position depends only on how far the column is to the right of the diagonal, counted cyclically. Written out, C=(c0c1⋯cn−1cn−1c0⋯cn−2⋮⋮⋱⋮c1c2⋯c0), so each row is the row above it moved one step to the right, with the entry that falls off the right-hand end reappearing on the left. The columns behave the same way going down. Note that the data is one vector of length n, not n2 numbers: a circulant is a very small object wearing a large costume.

Three examples, simplest first. The vector c=(1,0,…,0) gives C=I, and c=(0,1,0,…,0) gives C=S; in both cases the definition is checked by reading off (C)jk=ck−j, which is 1 exactly when k=j, respectively k=j+1, modulo n. The vector c=(1,1,…,1) gives the all-ones matrix. The 3×3 matrix of Example (Which of these are normal?) (d) is the circulant with first row (1,2,3), and the matrix of Exercise (B2: A circulant, diagonalized) is the circulant with first row (1,1,0).

Our running example for the whole section is the 4×4 circulant with first row (1,2,3,4): C=(1234412334122341),pc(x)=1+2x+3x2+4x3.

A non-example by minimal change. Keep the first row (1,2,3,4) but let the entries that fall off the end vanish instead of wrapping around, giving a matrix B with rows (1,2,3,4), (0,1,2,3), (0,0,1,2), (0,0,0,1). Every diagonal of B is still constant, and its first row is still c, but (B)10=0 while the definition demands c0−1=c3=4. The clause that fails is the one that does all the work here: the subscript must be read modulo n. Matrices with constant diagonals and no wrap-around have their own name and their own theory, and the warning at the end of the section says why they do not fit into this one.

The reason a circulant is worth a name is that it is a polynomial in the shift.

Theorem 12.9.1 (Circulants Are Exactly the Polynomials in the Shift)

Let c∈Cn and let C be the circulant with first row c, with symbol pc. Then:

  • (a) C=pc(S); conversely, q(S) is a circulant for every q∈C[x].
  • (b) C∗ is the circulant with first row (c0―,cn−1―,cn−2―,…,c1―).
  • (c) C is normal, and any two circulants of the same size commute.

Idea. For (a), read off the entries of Sm: it has a 1 in position (j,k) exactly when k=j+m modulo n. So Sm is the circulant that picks out the coefficient cm, and summing over m rebuilds C one coefficient at a time. Once (a) is in hand, (b) and (c) are arithmetic with the single relation S∗=Sn−1: the adjoint of a polynomial in S is again a polynomial in S, and two polynomials in one matrix always commute (Theorem 0.9.9).

Proof.

  • (a) We claim that (Sm)jk=1 if k≡j+m(modn) and (Sm)jk=0 otherwise, for every m≥0. For m=0 this says S0=I. Assuming it for m, expand one product: (Sm+1)jk=∑i(S)ji(Sm)ik, and the only non-zero factor (S)ji sits at i≡j+1, so the sum is (Sm)j+1,k, which is 1 exactly when k≡j+1+m. This proves the claim by induction. Hence, for each j and k, (pc(S))jk=∑m=0n−1cm(Sm)jk=ck−j, because exactly one value of m in {0,…,n−1} satisfies m≡k−j(modn). So pc(S)=C. Conversely, let q∈C[x]. Dividing by xn−1 (Theorem 6.1.1) gives q=h⋅(xn−1)+r with deg⁡r<n, and Sn=I gives q(S)=h(S)(Sn−I)+r(S)=r(S), which is the circulant whose first row is the coefficient list of r.

  • (b) S is a permutation matrix with real entries, so S∗=S⊤=S−1 (Lemma 3.4.7 (b)), and S−1=Sn−1 because Sn=I. Therefore C∗=∑m=0n−1cm―(S∗)m=∑m=0n−1cm―S−m. For m=0 the term is c0―I, and for 1≤m≤n−1 we have S−m=Sn−m. So the coefficient of Sr is c0― when r=0 and cn−r― when 1≤r≤n−1, which is the stated first row.

  • (c) By (a) and (b), both C and C∗ are polynomials in S, and any two polynomials in the same matrix commute (Theorem 0.9.9). Hence C∗C=CC∗. The same argument applies to two circulants C=p(S) and C′=q(S).

That settles the coincidence noticed in Example (Which of these are normal?) (d) and again in Exercise (B2: A circulant, diagonalized) (a). It is worth seeing it once at the level of entries, because the entries are what those pages compared. For any A∈Mn(C), writing a0,…,an−1 for its columns and r0,…,rn−1 for its rows, the definition of the matrix product gives (A∗A)jk=⟨ak,aj⟩,(AA∗)jk=⟨rj,rk⟩. So “normal” says exactly that the table of column inner products and the table of row inner products agree. Now let A=C be a circulant, so that (C)ik=ck−i. Re-index the first sum by t=j−i and the second by t=i−k; as i runs through all residues modulo n, so does t in each case. This gives ⟨ak,aj⟩=∑t=0n−1ct+k−jct―=⟨rj,rk⟩, all subscripts modulo n. Both tables depend only on k−j, and they are literally the same sum. Cyclic shifting is what makes the re-indexing legal, and that is the whole of the coincidence.

Quick check. Which vectors c∈Cn give a circulant that is Hermitian? Answer for n=4 with real entries.

Solution. By Theorem 12.9.1 (b), C∗=C forces c0―=c0 and cn−m―=cm for 1≤m≤n−1. For n=4 with real entries this reads c1=c3, with c0 and c2 unconstrained: the symmetric real 4×4 circulants are exactly those whose first row has the form (c0,c1,c2,c1).

12.9.2. The eigenvectors of the shift

Everything now follows from one eigenvalue problem, the one for S. Since Sn=I, any eigenvalue λ satisfies λn=1, so the candidates are the n-th roots of unity of Example (Roots of Unity). There are n of them and S is an n×n matrix, which is encouraging. The eigenvectors are equally explicit.

Fix ω:=e2πi/n, so that 1,ω,ω2,…,ωn−1 are the n distinct n-th roots of unity, and ωr=1 if and only if n divides r (Example (Roots of Unity)).

Theorem 12.9.2 (Eigenvectors of the Cyclic Shift)

For j=0,1,…,n−1 let fj:=1n(1, ωj, ω2j, …, ω(n−1)j)∈Cn, that is, (fj)m=ωjm/n. Then Sfj=ωjfj. Consequently S is a unitary matrix with the n distinct eigenvalues 1,ω,…,ωn−1, and each eigenspace Eωj(S) is the line span(fj).

Idea. The shift moves entry m+1 into slot m. If the entries are the successive powers of a fixed number z, that is the same as multiplying the whole vector by z — provided the wrap-around at the end also multiplies by z, which is exactly the condition zn=1. So the geometric vectors (1,z,z2,…) with zn=1 are forced on us, and there are n of them.

Proof. Fix j and let 0≤m≤n−1. By the description of S, the m-th entry of Sfj is the (m+1)-st entry of fj, indices modulo n. For m<n−1 this is ωj(m+1)n=ωj⋅ωjmn=ωj(fj)m, and for m=n−1 it is (fj)0=1/n, while ωj(fj)n−1=ωjωj(n−1)/n=ωjn/n=1/n because ωn=1. The two agree, so Sfj=ωjfj. Each fj is non-zero, since its 0-th entry is 1/n, so ωj is an eigenvalue.

The matrix S is a real permutation matrix, so S⊤S=I by Lemma 3.4.7 (b), and S∗=S⊤; hence S is unitary (Definition 11.7.2). The n numbers 1,ω,…,ωn−1 are distinct, so S has n distinct eigenvalues, and the sum of their eigenspaces is direct (Corollary 9.2.3). Each of those n eigenspaces has dimension at least 1 and their dimensions add up to at most dim⁡Cn=n, so each has dimension exactly 1. Since fj∈Eωj(S) is non-zero, that eigenspace is span(fj).

The vectors f0,…,fn−1 are called the Fourier vectors. They are already known to be pairwise orthogonal: S is unitary, hence normal, and eigenvectors of a normal matrix for distinct eigenvalues are orthogonal (Corollary 12.3.4). But the direct computation is short, it produces the normalization at the same time, and it is the computation on which the rest of the section runs. So we do it.

Theorem 12.9.3 (The Fourier Matrix Is Unitary)

The list (f0,f1,…,fn−1) is an orthonormal basis of Cn. Equivalently, the Fourier matrix F:=1n(11⋯11ω⋯ωn−1⋮⋮⋮1ωn−1⋯ω(n−1)2),(F)mj=ωmjn, whose j-th column is fj, is unitary: F∗F=FF∗=I.

Proof. Let 0≤j,k≤n−1. Since |ω|=1 we have ω―=ω−1, hence ωkm―=ω−km, and so ⟨fj,fk⟩=1n∑m=0n−1ωjmωkm―=1n∑m=0n−1(ωj−k)m, the inner product being linear in the first slot and conjugate-linear in the second.

Case j=k. Then ωj−k=ω0=1, so every one of the n terms equals 1 and the sum is n. Hence ⟨fj,fj⟩=n/n=1, and ‖fj‖=1.

Case j≠k. Put z:=ωj−k. Then zn=(ωn)j−k=1. Also z≠1: by Example (Roots of Unity), ωj−k=1 would force n to divide j−k, and 0<|j−k|≤n−1 makes that impossible. Now use the factorization (z−1)(1+z+z2+⋯+zn−1)=zn−1=0, which is a polynomial identity valid for every complex z. Since z−1≠0, we may divide by it, and ∑m=0n−1zm=0. Hence ⟨fj,fk⟩=0.

So the list is orthonormal; it has n=dim⁡Cn members and is independent (Theorem 11.1.4), hence a basis (Theorem 1.6.4). A matrix whose columns form an orthonormal basis of Cn is unitary (Theorem 11.7.3 (f)), which gives F∗F=FF∗=I.

The second case is where the whole section lives. A sum of n unit complex numbers, spread evenly around the circle, cancels — and it cancels for the cheapest possible reason, that a geometric series with ratio z≠1 and zn=1 telescopes to zero.

Example (The Fourier matrix of size four)

Write out F for n=4, and check one orthogonality relation by hand.

Solution. For n=4, ω=e2πi/4=i, and the powers cycle i0=1, i1=i, i2=−1, i3=−i. So F=12(11111i−1−i1−11−11−i−1i). Take j=1, k=3. Then ωj−k=i−2=−1, and ⟨f1,f3⟩=14(1+(−1)+1+(−1))=0, matching the geometric-series computation with z=−1, for which 1+z+z2+z3=0. Note that F is symmetric, F⊤=F, but not Hermitian: F∗=F―≠F, since (F)12=i/2.

12.9.3. One unitary for every circulant

Theorem 12.9.4 (Circulant Diagonalization)

Let C∈Mn(C) be the circulant with first row c and symbol pc. Then every Fourier vector is an eigenvector of C, Cfj=pc(ωj)fj(j=0,1,…,n−1), and consequently F∗CF=diag(pc(1), pc(ω), …, pc(ωn−1)). The same unitary F works for every circulant of size n, and detC=∏j=0n−1pc(ωj).

Idea. There is nothing left to prove. A circulant is a polynomial in S by Theorem 12.9.1, and a polynomial in a matrix acts on an eigenvector of that matrix by the same polynomial applied to the eigenvalue. The point is not the proof but the statement: F was written down without reference to c, so a single change of orthonormal basis handles the entire family at once.

Proof. By Theorem 12.9.1 (a), C=pc(S), and by Theorem 12.9.2, Sfj=ωjfj. Iterating the latter gives Smfj=ωjmfj for every m≥0, so Cfj=∑m=0n−1cmSmfj=(∑m=0n−1cmωjm)fj=pc(ωj)fj.

The j-th column of F is fj, so the j-th column of CF is pc(ωj)fj, which is the j-th column of FD for D=diag(pc(1),…,pc(ωn−1)). Hence CF=FD, and multiplying on the left by F∗=F−1 (Theorem 12.9.3) gives F∗CF=D. Taking determinants, detC=detD=∏jpc(ωj), since detF∗detF=det(F∗F)=1 (Theorem 7.5.4).

This re-proves normality from the other side, and closes the account opened in Example (Which of these are normal?) (d): C=FDF∗ with F unitary and D diagonal is precisely the factorization that Corollary 12.4.3 reserves for normal matrices. The eigenvalues pc(ωj) need no characteristic polynomial either: they are n evaluations of a polynomial of degree less than n.

Example (The running example, diagonalized)

Find the eigenvalues and the determinant of the circulant C with first row (1,2,3,4), and write down F∗CF.

Solution. Here n=4, ω=i and pc(x)=1+2x+3x2+4x3. Evaluate at the four fourth roots of unity, using i2=−1 and i3=−i: pc(1)=1+2+3+4=10,pc(i)=1+2i−3−4i=−2−2i,pc(−1)=1−2+3−4=−2,pc(−i)=1−2i−3+4i=−2+2i. So F∗CF=diag(10,−2−2i,−2,−2+2i) with F as in Example (The Fourier matrix of size four), and detC=10⋅(−2−2i)⋅(−2)⋅(−2+2i)=−20(4+4)=−160, using (−2−2i)(−2+2i)=4+4=8. As a check on the first eigenvalue: every row of C sums to 10, so C1=10⋅1, and f0=121.

Quick check. The matrix of Example (The running example, diagonalized) is real, and two of its eigenvalues are not. Why must those two be complex conjugates of each other, and which two are they in general?

Solution. If every cm is real then pc(z)―=pc(z―) for every z. Taking z=ωj and using ωj―=ω−j=ωn−j, pc(ωj)―=pc(ωn−j), so the eigenvalue attached to fj and the one attached to fn−j are conjugate. Here n=4 and the pair is j=1,3: −2−2i―=−2+2i. The eigenvalues for j=0 and, when n is even, j=n/2 are their own conjugates, hence real — which is why 10 and −2 came out real. (This is also Theorem 9.2.5, seen here with the eigenvectors named.)

Once every circulant is FDF∗, the family closes up on itself.

Corollary 12.9.5 (Circulants Form a Commutative Algebra)

Let Cn⊆Mn(C) be the set of circulants of size n. Then:

  • (a) Cn is a subspace of Mn(C) of dimension n, with basis I,S,…,Sn−1;
  • (b) Cn is closed under products, and any two of its members commute;
  • (c) A∈Cn if and only if F∗AF is diagonal;
  • (d) a circulant C is invertible if and only if pc(ωj)≠0 for every j, and then C−1 is again a circulant.

Proof.

  • (a) The map c↦pc(S) from Cn to Mn(C) is linear and, by Theorem 12.9.1 (a), its image is exactly Cn. It is injective, because the first row of pc(S) is c. So Cn is a subspace of dimension n, and the images I,S,…,Sn−1 of the standard basis form a basis of it.

  • (b) If C=p(S) and C′=q(S), then CC′=(pq)(S) (Theorem 0.9.9), which is a circulant by Theorem 12.9.1 (a). Commutativity is part (c) of that theorem.

  • (c) (⇒) is Theorem 12.9.4. (⇐) Suppose F∗AF=D=diag(d0,…,dn−1). The n numbers 1,ω,…,ωn−1 are distinct, so by Lagrange interpolation (Theorem 6.6.1) there is q∈C[x] with q(ωj)=dj for every j. By Theorem 12.9.4 applied to the circulant q(S), which has symbol the remainder of q on division by xn−1, F∗q(S)F=diag(q(1),…,q(ωn−1))=D. Multiplying both sides by F on the left and F∗ on the right gives q(S)=A, so A is a circulant.

  • (d) From C=FDF∗, detC=detD, so C is invertible exactly when no diagonal entry pc(ωj) vanishes (Theorem 7.5.2). In that case C−1=FD−1F∗, and F∗C−1F=D−1 is diagonal, so C−1 is a circulant by (c).

Part (c) is the sharpest statement of the section: being a circulant is not a statement about the pattern of the entries at all, but a statement about which orthonormal basis diagonalizes the matrix. The pattern was only ever a way of recognizing it.

12.9.4. Multiplying circulants is convolution

A circulant is its first row. So the product of two circulants must be computable from the two first rows, and it is worth knowing what that computation is.

Given c,d∈Cn, define their cyclic convolution c∗d∈Cn by (c∗d)r:=∑l=0n−1cldr−l(r=0,…,n−1), subscripts modulo n. In words: to get entry r, slide the reversed list d along c so that the indices add up to r, and add the products. It is the multiplication of polynomials with the exponents read modulo n, and the next theorem says so.

Theorem 12.9.6 (Convolution Theorem)

Let c,d∈Cn with circulants C,C′ and symbols pc,pd. Then:

  • (a) CC′ is the circulant with first row c∗d;
  • (b) for every j, pc∗d(ωj)=pc(ωj)pd(ωj).

In words: convolving the first rows corresponds to multiplying the eigenvalue lists entry by entry.

Idea. Both parts are the identity pcpd≡pc∗d(modxn−1), looked at twice. Multiplying the two symbols produces a polynomial of degree up to 2n−2; reducing the exponents modulo n folds the coefficients back into n slots, and the fold is precisely the convolution sum. Evaluating at a root of xn−1 makes the reduction invisible, which is (b); substituting S, for which Sn=I, makes it invisible as well, which is (a).

Proof. Expand the product of the symbols and collect exponents modulo n: pc(x)pd(x)=∑l=0n−1∑m=0n−1cldmxl+m. For each r∈{0,…,n−1}, the pairs (l,m) with l+m≡r(modn) are exactly those with m≡r−l, one value of m for each l. Hence, working modulo xn−1 and using xl+m≡x(l+m)modn, pc(x)pd(x)≡∑r=0n−1(∑l=0n−1cldr−l)xr=pc∗d(x)(modxn−1).

  • (a) Substitute S. Since Sn=I, the multiple of xn−1 contributes nothing, so CC′=pc(S)pd(S)=pc∗d(S), the first equality by Theorem 12.9.1 (a) and Theorem 0.9.9. By Theorem 12.9.1 (a) again, pc∗d(S) is the circulant with first row c∗d, the coefficient list having length n.

  • (b) Substitute x=ωj, a root of xn−1, so that the multiple of xn−1 again contributes nothing. This gives pc(ωj)pd(ωj)=pc∗d(ωj).

Part (b) deserves its own sentence, because it is the reason the discrete Fourier transform is used at all. Define the discrete Fourier transform of c∈Cn to be the vector of eigenvalues, c^:=(pc(1), pc(ω), …, pc(ωn−1))=nFc, the second expression because the j-th entry of Fc is n−1/2∑mωjmcm. Then (b) reads (c∗d^)j=c^jd^j(j=0,…,n−1): the transform turns convolution into entrywise multiplication. Convolution is a tangled sum of n2 products; after one unitary change of basis it is n ordinary multiplications. Everything the transform buys comes from this line.

Example (Convolution in size four)

Let c=(1,2,3,4) and d=(1,1,0,0). Compute c∗d, and verify Theorem 12.9.6 (b) at all four roots of unity.

Solution. Since d0=d1=1 and d2=d3=0, the sum ∑lcldr−l keeps only the terms with r−l≡0 or 1, that is l=r and l=r−1. So (c∗d)r=cr+cr−1, subscripts modulo 4: c∗d=(1+4, 2+1, 3+2, 4+3)=(5,3,5,7). The three symbols are pc(x)=1+2x+3x2+4x3, pd(x)=1+x and pc∗d(x)=5+3x+5x2+7x3. Evaluating each at 1,i,−1,−i, with pc already computed in Example (The running example, diagonalized): j=0:10⋅2=20,5+3+5+7=20;j=1:(−2−2i)(1+i)=−4i,5+3i−5−7i=−4i;j=2:(−2)⋅0=0,5−3+5−7=0;j=3:(−2+2i)(1−i)=4i,5−3i−5+7i=4i. All four agree. For the middle line, (−2−2i)(1+i)=−2−2i−2i−2i2=−4i.

12.9.5. Solving a circulant system, and a word about speed

If Cx=b with C an invertible circulant, then in the Fourier basis the system falls apart into n scalar equations. Writing C=FDF∗ and setting y=F∗x, g=F∗b, the system becomes Dy=g, that is yj=gj/λj with λj=pc(ωj). Then x=Fy. Three steps: transform, divide, transform back.

Example (A circulant system)

Solve Cx=b for the circulant C with first row (1,2,3,4) and b=(1,1,−1,−1).

Solution. The eigenvalues are λ=(10,−2−2i,−2,−2+2i) by Example (The running example, diagonalized). First transform b: the j-th entry of F∗b is 12∑mωjm―bm=12∑m(−i)jmbm, so g0=12(1+1−1−1)=0,g1=12(1+(−i)−(−1)−(i))=1−i,g2=12(1−1−1+1)=0,g3=12(1+i+1+i)=1+i. Now divide. The two zero entries stay zero, and y1=1−i−2−2i=(1−i)(−2+2i)8=4i8=i2,y3=y1―=−i2, where the middle step multiplies numerator and denominator by −2−2i―=−2+2i, whose product with −2−2i is 8. Finally x=Fy, whose m-th entry is 12(imy1+i3my3)=12⋅i2(im−(−i)m): x=(0, −12, 0, 12). Check directly: the second row of C is (4,1,2,3), and −12+32=1=b1; the third row is (3,4,1,2), and −2+1=−1=b2. The answer is real, as it must be: C and b are real, so x=C−1b is real, and this shows up in the transform as the conjugate symmetry y3=y1―.

Counted honestly, the recipe above saves something, but not yet very much. Forming F∗b as a matrix–vector product costs about n2 multiplications, and so does forming Fy, so the whole solve costs on the order of n2. That beats general elimination, which is on the order of n3, but it is no better than multiplying b by C−1 once that inverse has been found. What changes the picture is that F does not have to be applied as a general matrix. The powers of ω repeat, and splitting the sum ∑mωjmbm into its even and odd m reduces one transform of length n to two of length n/2; iterating brings the cost down to about nlog⁡n. That algorithm is the fast Fourier transform. It proves no new theorem: the matrix F, the factorization C=FDF∗ and everything above are unchanged, and the fast Fourier transform is only a way of applying F quickly. Chapter 24 develops it, together with the cost accounting that makes “quickly” precise.

Warning. A Toeplitz matrix — one with constant diagonals, (A)jk=ak−j with the subscript not reduced modulo n — is not a circulant, and F does not diagonalize it. Take A=(010101010). Every diagonal of A is constant, so A is Toeplitz, but the circulant with first row (0,1,0) is S, whose second row is (0,0,1), not (1,0,1). And F fails at the very first column: f0=13(1,1,1) and Af0=13(1,2,1), which is not a multiple of f0, so f0 is not an eigenvector and F∗AF is not diagonal. Normality is not the issue: A is symmetric, hence normal, and Theorem 12.5.1 does hand it an orthonormal eigenbasis. It is simply a different basis, with the irrational eigenvalues 0,±2 in place of evaluations of a polynomial at roots of unity. What the wrap-around buys is not diagonalizability; it is the same diagonalizing basis for everybody.

12.9.6. Exercises

A. Check your understanding

Exercise (A1)
  • (a) Define the circulant with first row c=(c0,…,cn−1), and write down its symbol.
  • (b) State the eigenvalues and the eigenvectors of the cyclic shift S on Cn.
  • (c) Give the eigenvalues of the circulant with first row c, and say how many multiplications are needed to compute all of them from c by direct evaluation.
  • (d) Determine whether the following are true, with a reason. (i) Every Toeplitz matrix is a circulant. (ii) Every circulant is normal. (iii) The Fourier matrix F is Hermitian.
  • (e) Explain in one sentence why two circulants of the same size commute, without computing any entries.

Solution.

  • (a) The matrix C∈Mn(C) with (C)jk=ck−j, subscripts modulo n and indices running from 0 to n−1 (Definition 12.9.1). Its symbol is pc(x)=c0+c1x+⋯+cn−1xn−1.

  • (b) With ω=e2πi/n: the eigenvalues are 1,ω,…,ωn−1, all distinct, and ωj has the one-dimensional eigenspace spanned by fj=n−1/2(1,ωj,…,ω(n−1)j) (Theorem 12.9.2).

  • (c) The eigenvalues are pc(ωj) for j=0,…,n−1 (Theorem 12.9.4). Each evaluation is a sum of n products, so all n of them cost about n2 multiplications done directly.

  • (d)
    • (i) False: the 3×3 matrix in the warning above has constant diagonals but is not a circulant. (ii) True, by Theorem 12.9.1 (c); equivalently by Corollary 12.4.3, since C=FDF∗. (iii) False. F is symmetric, but F∗=F―, and for n=4 the entry (F)12=i/2 is not real (Example (The Fourier matrix of size four)). F is Hermitian only for n=1,2, where all its entries are real.
  • (e) Both are polynomials in the single matrix S (Theorem 12.9.1 (a)), and two polynomials in one matrix always commute (Theorem 0.9.9).

B. Practice

Exercise (B1: Eigenvalues of small circulants)

For each vector c, write down the symbol, compute all eigenvalues of the circulant with first row c, and give its determinant.

  • (a) c=(1,1,1), n=3.
  • (b) c=(0,1,0,0), n=4.
  • (c) c=(2,−1,0,−1), n=4.

Solution.

  • (a) pc(x)=1+x+x2. With ω=e2πi/3, the eigenvalues are pc(1)=3 and pc(ωj)=1+ωj+ω2j for j=1,2. For j≠0, z=ωj satisfies z≠1 and z3=1, so 1+z+z2=(z3−1)/(z−1)=0 — the geometric-series computation of Theorem 12.9.3 again. The eigenvalues are 3,0,0 and detC=0. (This matrix is the all-ones matrix, of rank 1.)

  • (b) pc(x)=x, so C=S. The eigenvalues are ωj=ij, namely 1,i,−1,−i, and detS=1⋅i⋅(−1)⋅(−i)=(i⋅(−i))(1⋅(−1))=−1. This agrees with the sign of the permutation: S permutes the coordinates in one 4-cycle, which is odd.

  • (c) pc(x)=2−x−x3. Then pc(1)=0; pc(i)=2−i−i3=2−i+i=2; pc(−1)=2+1+1=4; pc(−i)=2+i−i=2. The eigenvalues are 0,2,4,2, and detC=0. The kernel contains f0, that is the all-ones vector, as one sees directly: every row of C sums to 0.

Exercise (B2: Solve a circulant system by transforming)

Let C be the 4×4 circulant with first row (3,1,0,1) and let b=(1,0,0,0). Compute the eigenvalues of C, and solve Cx=b by transforming, dividing and transforming back. Check your answer against the first two rows of C.

Solution. The symbol is pc(x)=3+x+x3, and with ω=i, pc(1)=5,pc(i)=3+i−i=3,pc(−1)=1,pc(−i)=3. All four are non-zero, so C is invertible (Corollary 12.9.5 (d)), with detC=5⋅3⋅1⋅3=45.

Transform: (F∗b)j=12∑mωjm―bm=12 for every j, since b=e0. Divide: yj=12λj−1, giving y=12(15,13,1,13). Transform back: the m-th entry of x=Fy is xm=12∑j=03imjyj=14(15+im3+(−1)m+i3m3). For m=1 and m=3 the two middle terms cancel, since im+i3m=im+im― is 0 when im=±i; the bracket is 15−1, so x1=x3=−15. For m=0 the bracket is 15+13+1+13=2815, so x0=715. For m=2 it is 15−13+1−13=815, so x2=215. Hence x=(715, −15, 215, −15). Check: row 0 of C is (3,1,0,1) and 3⋅715−15−15=21−3−315=1; row 1 is (1,3,1,0) and 715−35+215=7−9+215=0.

Exercise (B3: The convolution theorem in an example)

Let c=(1,0,2,0) and d=(0,1,0,3) in C4.

  • (a) Compute c∗d.
  • (b) Verify pc∗d(ωj)=pc(ωj)pd(ωj) for j=0,1,2,3.
  • (c) Hence write down the first row of the product of the two circulants, without multiplying any matrices.

Solution.

  • (a) Only c0=1 and c2=2 are non-zero, so (c∗d)r=dr+2dr−2, subscripts modulo 4. With d=(0,1,0,3): c∗d=(0+0, 1+6, 0+0, 3+2)=(0,7,0,5).

  • (b) The symbols are pc(x)=1+2x2, pd(x)=x+3x3 and pc∗d(x)=7x+5x3. With ω=i: j=0:3⋅4=12,7+5=12;j=1:(−1)(−2i)=2i,7i−5i=2i;j=2:3⋅(−4)=−12,−7−5=−12;j=3:(−1)(2i)=−2i,−7i+5i=−2i. Here pc(i)=1+2i2=−1 and pd(i)=i+3i3=i−3i=−2i, and similarly at the other roots. All four rows agree.

  • (c) By Theorem 12.9.6 (a), the product is the circulant with first row c∗d=(0,7,0,5).

C. Going deeper

Exercise (C1: What commutes with the shift)

Let A∈Mn(C) satisfy AS=SA. Prove that A is a circulant. Hint: consider the eigenspaces of S.

Solution. By Theorem 12.9.2, S has the n distinct eigenvalues ωj, and Eωj(S)=span(fj) is one-dimensional. Since A commutes with S, each eigenspace of S is invariant under A (Theorem 9.9.1). So Afj∈span(fj), that is Afj=djfj for some dj∈C.

Therefore the j-th column of AF is djfj, which is the j-th column of FD for D=diag(d0,…,dn−1). Hence AF=FD and F∗AF=D is diagonal, so A is a circulant by Corollary 12.9.5 (c). This proves the converse of Theorem 12.9.1 (c) for the single matrix S: the commutant of the cyclic shift is exactly the algebra of circulants.

Exercise (C2: Determinant and invertibility)

Let C be the circulant with first row c∈Cn and symbol pc.

  • (a) Prove that detC=∏j=0n−1pc(ωj), and use it to compute the determinant of the n×n all-ones matrix for every n≥2.
  • (b) Prove that C is invertible if and only if pc and xn−1 are coprime in C[x].
  • (c) Give an example of a 4×4 circulant with integer entries, none of them 0, whose determinant is 0.

Solution.

  • (a) This is the last claim of Theorem 12.9.4: from C=FDF∗ and det(F∗)det(F)=det(F∗F)=1, multiplicativity of the determinant (Theorem 7.5.4) gives detC=detD, which is the product of the diagonal entries pc(ωj).

    For the all-ones matrix, c=(1,1,…,1) and pc(x)=1+x+⋯+xn−1. Then pc(1)=n, while for 1≤j≤n−1 the number z=ωj satisfies zn=1 and z≠1, so pc(z)=(zn−1)/(z−1)=0. Hence detC=n⋅0⋯0=0 for every n≥2, as it must be, since all the rows are equal.

  • (b) By (a), detC≠0 if and only if pc(ωj)≠0 for every j, that is, if and only if pc and xn−1 have no common root, the roots of xn−1 being exactly 1,ω,…,ωn−1 (Example (Roots of Unity)). Over C, having no common root is the same as having no common non-constant factor: such a factor would have a root by Theorem 6.5.1, and that root would be common to both; conversely a common root α makes x−α a common factor. So invertibility of C is equivalent to pc and xn−1 being coprime (Definition 6.2.3). Combined with Theorem 7.5.2, this is the statement asked for.

  • (c) Take c=(1,2,1,2), so C=(1212212112122121),pc(x)=1+2x+x2+2x3. Here pc(i)=1+2i−1−2i=0, so detC=0 by (a). The reason is visible without any of the theory — rows 0 and 2 are equal — and the Fourier picture names a kernel vector: Cf1=0, and since C is real, the real and imaginary parts of f1 are in the kernel too, giving C(1,0,−1,0)=0.

Exercise (C3: The real orthogonal form of a real circulant)

Let C∈M4(R) be the circulant with first row (1,2,3,4), with eigenvalues 10,−2−2i,−2,−2+2i as in Example (The running example, diagonalized). Put g:=2Ref1,h:=2Imf1, the real and imaginary parts taken entrywise.

  • (a) Write g and h out, and show that (f0,f2,g,h) is an orthonormal basis of R4.
  • (b) Writing a+bi:=−2+2i, prove that Cg=ag+bh and Ch=−bg+ah.
  • (c) Hence write down the matrix of C in the ordered basis of (a), and identify it as an instance of Theorem 12.5.3.

Hint for (b): apply C to f3=(g−ih)/2 and compare real and imaginary parts.

Solution.

  • (a) With ω=i, f1=12(1,i,−1,−i), so g=12(1,0,−1,0),h=12(0,1,0,−1). Also f0=12(1,1,1,1) and f2=12(1,−1,1,−1) are real, so all four vectors lie in R4. Each has norm 1: for instance ‖g‖2=12(1+1)=1 and ‖f0‖2=14⋅4=1. They are pairwise orthogonal for the real dot product. First g⋅h=0, because the non-zero entries sit in different slots, and f0⋅f2=14(1−1+1−1)=0. The four remaining pairings are f0⋅g=122(1−1)=0,f2⋅g=122(1−1)=0,f0⋅h=122(1−1)=0,f2⋅h=122(−1+1)=0. Four orthonormal vectors are independent (Theorem 11.1.4) and there are dim⁡R4=4 of them, so they form a basis (Theorem 1.6.4).

  • (b) From f1=12(g+ih) and f3=f1― we get f3=12(g−ih). Its eigenvalue is pc(ω3)=pc(−i)=−2+2i=a+bi, so a=−2 and b=2, and Cf3=(a+bi)f3 reads 12(Cg−iCh)=12(a+bi)(g−ih)=12((ag+bh)+i(bg−ah)). Both Cg and Ch are real vectors, because C, g and h are real. Comparing real parts gives Cg=ag+bh, and comparing imaginary parts gives −Ch=bg−ah, that is Ch=−bg+ah. With a=−2 and b=2, Cg=−2g+2h,Ch=−2g−2h. A direct check: 2Cg=C(1,0,−1,0)=(1−3, 4−2, 3−1, 2−4)=(−2,2,2,−2), while 2(−2g+2h)=(−2,2,2,−2).

  • (c) Reading the coordinates of the images off (b), the matrix in the ordered basis (f0,f2,g,h) is (100000−20000−2−2002−2)=(10)⊕(−2)⊕Λ(−2+2i), since Λ(a+bi) has rows (a,−b) and (b,a). This is exactly the shape promised by Theorem 12.5.3 for a real normal operator: two 1×1 blocks for the real eigenvalues, and one rotation-scaling block for the conjugate pair, with b=2>0. The change of basis is orthogonal, because the basis is orthonormal.

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.