# Circulant matrix

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 ${\displaystyle \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.

## Definition

An ${\displaystyle n\times n}$ circulant matrix ${\displaystyle \ C}$ takes the form

${\displaystyle C={\begin{bmatrix}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}\\\end{bmatrix}}.}$

A circulant matrix is fully specified by one vector, ${\displaystyle \ c}$, which appears as the first column of ${\displaystyle \ C}$. The remaining columns of ${\displaystyle \ C}$ are each cyclic permutations of the vector ${\displaystyle \ c}$ with offset equal to the column index. The last row of ${\displaystyle \ C}$ is the vector ${\displaystyle \ 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 ${\displaystyle f(x)=c_{0}+c_{1}x+\dots +c_{n-1}x^{n-1}}$ is called the associated polynomial of matrix ${\displaystyle C}$.

## Properties

### Eigenvectors and eigenvalues

The normalized eigenvectors of a circulant matrix are given by

${\displaystyle 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,}$

The corresponding eigenvalues are then given by

${\displaystyle \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\ldots n-1.}$

### Determinant

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

${\displaystyle \mathrm {det} (C)=\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

${\displaystyle \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}).}$

### Other properties

• We have
${\displaystyle C=c_{0}I+c_{1}P+c_{2}P^{2}+\ldots +c_{n-1}P^{n-1}=f(P).}$
where P is the 'cyclic permutation' matrix, a specific permutation matrix given by
${\displaystyle P={\begin{bmatrix}0&0&\ldots &0&1\\1&0&\ldots &0&0\\0&\ddots &\ddots &\vdots &\vdots \\\vdots &\ddots &\ddots &0&0\\0&\ldots &0&1&0\end{bmatrix}}.}$
${\displaystyle 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
Thus, the matrix ${\displaystyle U_{n}}$ diagonalizes C. In fact, we have
${\displaystyle C=U_{n}\operatorname {diag} (F_{n}c)U_{n}^{*}=F_{n}^{-1}\operatorname {diag} (F_{n}c)F_{n},}$
where ${\displaystyle c\!\,}$ is the first row of ${\displaystyle C\,\!}$. Thus, the eigenvalues of ${\displaystyle C}$ are given by the product ${\displaystyle \ F_{n}c}$. This product can be readily calculated by a Fast Fourier transform.[3]

## Analytic interpretation

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

Consider vectors in ${\displaystyle \mathbf {R} ^{n}}$ as functions on the integers with period n, (i.e., as periodic bi-infinite sequences: ${\displaystyle \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, (${\displaystyle C_{n}}$ or ${\displaystyle \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 ${\displaystyle (c_{0},c_{1},\dots ,c_{n-1});}$ this is a discrete circular convolution. The formula for the convolution of the functions ${\displaystyle (b_{i}):=(c_{i})*(a_{i})}$ is

${\displaystyle 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 ${\displaystyle a_{i}}$ by the circulant matrix.

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

## Applications

### In linear equations

Given a matrix equation

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

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

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

where ${\displaystyle \ c}$ is the first column of ${\displaystyle \ C}$, and the vectors ${\displaystyle \ c}$, ${\displaystyle \ x}$ and ${\displaystyle \ 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

${\displaystyle \ {\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

${\displaystyle \ \mathbf {x} ={\mathcal {F}}_{n}^{-1}\left[\left({\frac {({\mathcal {F}}_{n}(\mathbf {b} ))_{\nu }}{({\mathcal {F}}_{n}(\mathbf {c} ))_{\nu }}}\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

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.

## References

1. Davis, Philip J., Circulant Matrices, Wiley, New York, 1970 ISBN 0471057711
2. {{#invoke:Citation/CS1|citation |CitationClass=journal }}
3. {{#invoke:citation/CS1|citation |CitationClass=citation }}