How to Find the Inverse of a Circulant Matrix
At a glance
- 1. Form the symbol polynomial
Use the first row to define p(z) = c₀ + c₁z + ··· + cₙ₋₁zⁿ⁻¹.
- 2. Evaluate at roots
Evaluate p at all nth roots of unity.
- 3. Check invertibility
The circulant matrix is invertible exactly when none of these values is zero.
- 4. Invert the eigenvalues
Take the reciprocal of each nonzero eigenvalue.
- 5. Apply the inverse DFT
The inverse DFT gives the first row of the inverse circulant matrix.
A circulant matrix is completely determined by one row: every subsequent row is a cyclic shift of the preceding row. The useful fact is that circulant matrices are diagonalized by the discrete Fourier transform (DFT). This turns matrix inversion into scalar divisions.
The inverse, when it exists, is itself circulant. The main task is therefore to determine when the matrix is invertible and compute the first row of its inverse.
Define the circulant matrix and its polynomial
Let
Associate with its first row the polynomial
Let
be the th roots of unity. The eigenvalues of are
Thus, the eigenvalues are exactly the discrete Fourier transform of the first row.
Invertibility criterion
The matrix is invertible if and only if every eigenvalue is nonzero:
Equivalently, and have no common root. This gives a quick test without calculating a determinant.
When the matrix is invertible, its inverse has eigenvalues
because the eigenvalues of an inverse matrix are the reciprocals of the original nonzero eigenvalues.
Formula for the inverse
Write the first row of as
Then the coefficients are obtained using the inverse DFT:
Therefore,
The same result can be expressed polynomially. Define
Then is the unique polynomial of degree less than satisfying
In practical terms, multiply and reduce every to ; the result must be .
Worked example
Consider
Its first row gives
The cube roots of unity are , , and , where and . The eigenvalues are
None is zero, so is invertible.
To find the first row of the inverse, seek
such that
Try
Indeed,
Hence
so
Direct multiplication confirms that .
A computational procedure
For a large matrix, use the following algorithm:
- Read the first row .
- Compute its DFT, obtaining .
- Check whether any is zero or numerically very close to zero.
- Replace each eigenvalue by .
- Apply the inverse DFT.
- Use the resulting vector as the first row of .
Using fast Fourier transforms, this can be done in approximately operations rather than the work of ordinary dense matrix inversion. For numerical calculations, if all eigenvalues are nonzero but the smallest is very small in magnitude compared with the largest, the matrix may be poorly conditioned; for a circulant matrix, .
Common mistakes
Confusing cyclic-shift conventions
Some authors define a circulant matrix using left shifts rather than right shifts. The eigenvalue formula may then use instead of . The invertibility criterion is unchanged, but the displayed first row of the inverse may be reversed cyclically.
Checking only the row sum
The value is only one eigenvalue. A nonzero row sum does not guarantee invertibility; all values must be nonzero.
Assuming every circulant matrix is invertible
For example, the all-ones matrix has first-row polynomial
This polynomial vanishes at every nontrivial th root of unity, so the matrix is singular for .
Forgetting that the inverse remains circulant
Once one row of has been found, the other rows are obtained by the same cyclic shifts. There is no need to compute every entry independently.
References
- Circulant Matrices, Philip J. Davis
- Matrix Computations, Gene H. Golub and Charles F. Van Loan
Spotted an error? Send a correction. Read how we write and check articles in our editorial policy.