Circulant matrix

From Wikipedia, the free encyclopedia
Jump to: navigation, search
For the symmetric graphs, see Circulant graph.

In linear algebra, a circulant matrix is a special kind of Toeplitz matrix where each row vector is rotated one element to the right relative to the preceding row vector. In numerical analysis, circulant matrices are important because they are diagonalized by a discrete Fourier transform, and hence linear equations that contain them may be quickly solved using a fast Fourier transform.[1] They can be interpreted analytically as the integral kernel of a convolution operator on the cyclic group \mathbb{Z}/n\mathbb{Z} and hence frequently appear in formal descriptions of spatially invariant linear operations. In cryptography, a circulant matrix is used in the MixColumns step of the Advanced Encryption Standard.


An n\times n circulant matrix \ C takes the form

c_0     & c_{n-1} & \dots  & c_{2} & c_{1}  \\
c_{1} & c_0    & c_{n-1} &         & c_{2}  \\
\vdots  & c_{1}& c_0    & \ddots  & \vdots   \\
c_{n-2}  &        & \ddots & \ddots  & c_{n-1}   \\
c_{n-1}  & c_{n-2} & \dots  & c_{1} & c_0 \\

A circulant matrix is fully specified by one vector, \ c, which appears as the first column of \ C. The remaining columns of \ C are each cyclic permutations of the vector \ c with offset equal to the column index. The last row of \ C is the vector \ c in reverse order, and the remaining rows are each cyclic permutations of the last row. Note that different sources define the circulant matrix in different ways, for example with the coefficients corresponding to the first row rather than the first column of the matrix, or with a different direction of shift.

The polynomial  f(x) = c_0 + c_1 x + \dots + c_{n-1} x^{n-1} is called the associated polynomial of matrix  C .


Eigenvectors and eigenvalues[edit]

The normalized eigenvectors of a circulant matrix are given by

v_j=\frac{1}{\sqrt{n}} (1,~ \omega_j,~ \omega_j^2,~ \ldots,~ \omega_j^{n-1})^T,\quad j=0, 1,\ldots, n-1,

where \omega_j=\exp \left(\tfrac{2\pi i j}{n}\right) are the n-th roots of unity and i is the imaginary unit.

The corresponding eigenvalues are then given by

\lambda_j = c_0+c_{n-1} \omega_j + c_{n-2} \omega_j^2 + \ldots + c_{1} \omega_j^{n-1}, \qquad j=0, 1,\ldots, n-1.


As a consequence of the explicit formula for the eigenvalues above, the determinant of circulant matrix can be computed as:

= \prod_{j=0}^{n-1} (c_0 + c_{n-1} \omega_j + c_{n-2} \omega_j^2 + \dots + c_1\omega_j^{n-1}).

Since taking transpose does not change the eigenvalues of a matrix, an equivalent formulation is

\mathrm{det}(C)=\prod_{j=0}^{n-1} (c_0 + c_1 \omega_j + c_2 \omega_j^2 + \dots + c_{n-1}\omega_j^{n-1}) = \prod_{j=0}^{n-1} f(\omega_j).


The rank of circulant matrix  C is equal to  n - d , where  d is the degree of  \gcd( f(x), x^n - 1) .[2]

Other properties[edit]

  • We have
where P is the 'cyclic permutation' matrix, a specific permutation matrix given by
  • Circulant matrices form a commutative algebra, since for any two given circulant matrices \ A and \ B, the sum \ A + B is circulant, the product \ AB is circulant, and \ AB = BA.
 U_n^{*} = \frac{1}{\sqrt{n}} F_n, \quad\text{and}\quad U_n = \sqrt{n} F_n^{-1}, \quad\text{where}\quad F_n = (f_{jk}) \quad\text{with}\quad f_{jk} = \mathrm{e}^{-2jk\pi\mathrm{i}/n},  \quad\text{for}\quad  0\leq j,k<n.
Thus, the matrix U_n diagonalizes C. In fact, we have
 C = U_n \operatorname{diag}(F_n c) U_n^{*} = F_n^{-1} \operatorname{diag}(F_n c) F_n,
where c\!\, is the first column of C\,\!. Thus, the eigenvalues of C are given by the product \ F_n c. This product can be readily calculated by a Fast Fourier transform.[3]

Analytic interpretation[edit]

Circulant matrices can be interpreted geometrically, which explains the connection with the discrete Fourier transform.

Consider vectors in \mathbf{R}^n as functions on the integers with period n, (i.e., as periodic bi-infinite sequences: \dots,a_0,a_1,\dots,a_{n-1},a_0,a_1,\dots) or equivalently, as functions on the cyclic group of order n, (C_n or \mathbf{Z}/n\mathbf{Z}) geometrically, on (the vertices of) the regular n-gon: this is a discrete analog to periodic functions on the real line or circle.

Then, from the perspective of operator theory, a circulant matrix is the kernel of a discrete integral transform, namely the convolution operator for the function (c_0,c_1,\dots,c_{n-1}); this is a discrete circular convolution. The formula for the convolution of the functions (b_i) := (c_i) * (a_i) is

b_k = \sum_{i=0}^{n-1} a_i c_{k-i} (recall that the sequences are periodic)

which is the product of the vector of a_i by the circulant matrix.

The discrete Fourier transform then converts convolution into multiplication, which in the matrix setting corresponds to diagonalization.


In linear equations[edit]

Given a matrix equation

\ \mathbf{C} \mathbf{x} = \mathbf{b},

where \ C is a circulant square matrix of size \ n we can write the equation as the circular convolution

\ \mathbf{c} \star \mathbf{x} = \mathbf{b},

where \ c is the first column of \ C, and the vectors \ c, \ x and \ b are cyclically extended in each direction. Using the results of the circular convolution theorem, we can use the discrete Fourier transform to transform the cyclic convolution into component-wise multiplication

\ \mathcal{F}_{n}(\mathbf{c} \star \mathbf{x}) = \mathcal{F}_{n}(\mathbf{c}) \mathcal{F}_{n}(\mathbf{x}) = \mathcal{F}_{n}(\mathbf{b})

so that

\ \mathbf{x} = \mathcal{F}_{n}^{-1} 
\left [ 
\left (
\right )_{\nu \in \mathbf{Z}}
\right ]^T.

This algorithm is much faster than the standard Gaussian elimination, especially if a fast Fourier transform is used.

In graph theory[edit]

In graph theory, a graph or digraph whose adjacency matrix is circulant is called a circulant graph (or digraph). Equivalently, a graph is circulant if its automorphism group contains a full-length cycle. The Möbius ladders are examples of circulant graphs, as are the Paley graphs for fields of prime order.


  1. ^ Davis, Philip J., Circulant Matrices, Wiley, New York, 1970 ISBN 0471057711
  2. ^ A. W. Ingleton (1956). "The Rank of Circulant Matrices". J. London Math. Soc. s1-31 (4): 445–460. doi:10.1112/jlms/s1-31.4.445. 
  3. ^ Golub, Gene H.; Van Loan, Charles F. (1996), "§4.7.7 Circulant Systems", Matrix Computations (3rd ed.), Johns Hopkins, ISBN 978-0-8018-5414-9 

External links[edit]