Friday, April 26, 2024
HomeMatlabWhat Is a Circulant Matrix? – Nick Higham

What Is a Circulant Matrix? – Nick Higham


An ntimes n circulant matrix is outlined by n parameters, the weather within the first row, and every subsequent row is a cyclic shift ahead of the one above:

notag    C = begin{bmatrix} c_1     & c_2    & dots   & c_n                             c_n     & c_1    & dots   & vdots                          vdots  & ddots & ddots  & c_2                             c_2     & dots  & c_n     & c_1           end{bmatrix}.

Circulant matrices have the essential property that they’re diagonalized by the discrete Fourier remodel matrix

notag      F_n = Bigl(exp( -2pi mathrm{i} (r-1)(s-1) / n )Bigr)_{r,s=1}^n,

which satisfies F_n^*F_n = nI, in order that n^{-1/2}F_n is a unitary matrix. (F_n is a Vandermonde matrix with factors the roots of unity.) Particularly,

notag          F_n C F_n^{-1} = D = mathrm{diag}(d_i).  qquad(1)

Therefore circulant matrices are regular (C^*C = CC^*). Furthermore, the eigenvalues are given by d = F_n Ce_1,

Observe that one specific eigenpair is speedy, since Ce = bigl(sum_{i=1}^n c_ibigr) e.

The factorization (1) permits a circulant linear system to be solved in O(nlog n) flops, since multiplication by F_n may be executed utilizing the quick Fourier remodel.

A selected circulant matrix is the (up) shift matrix K_n, the 4times 4 model of which is

notag   K_4 = begin{bmatrix}   0 & 1 & 0 & 0     0 & 0 & 1 & 0     0 & 0 & 0 & 1     1 & 0 & 0 & 0 end{bmatrix}.

It’s not exhausting to see that

C =  c_1 I + c_2 K_n + c_3K_n^2 + cdots + c_n K_n^{n-1}.

Since powers of K_n commute, it follows that any two circulant matrices commute (that is additionally clear from (1)). Moreover, the sum and product of two circulant matrices is a circulant matrix and the inverse of a nonsingular circulant matrix is a circulant matrix.

One essential use of circulant matrices is to behave as preconditioners for Toeplitz linear programs. A number of strategies have been proposed for setting up a circulant matrix from a Toeplitz matrix, together with copying the central diagonals and wrapping them round and discovering the closest circulant matrix to the Toeplitz matrix. See Chan and Ng (1996) or Chan and Jin (2017) for a abstract of labor on circulant preconditioners for Toeplitz programs.

An fascinating circulant matrix is anymatrix('core/circul_binom',n) within the Anymatrix assortment, which is the ntimes n circulant matrix whose first row has ith aspect n choose ,i-1. The eigenvalues are (1 + w^i)^n - 1, i=1:n, the place w = exp(2pimathrm{i}/n). The matrix is singular when n is a a number of of 6, by which case the null house has dimension 2. Instance:

>> n = 6; C = anymatrix('core/circul_binom',n), svd(C)
C =
     1     6    15    20    15     6
     6     1     6    15    20    15
    15     6     1     6    15    20
    20    15     6     1     6    15
    15    20    15     6     1     6
     6    15    20    15     6     1
ans =
   6.3000e+01
   2.8000e+01
   2.8000e+01
   1.0000e+00
   2.0244e-15
   7.6607e-16

Notes

A basic reference on circulant matrices is Davis (1994).

References

This text is a part of the “What Is” collection, out there from https://nhigham.com/class/what-is and in PDF kind from the GitHub repository https://github.com/higham/what-is.

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments