Circulant_matrix Circulant_matrix

Circulant matrix - Definition and Overview

In linear algebra, a circulant matrix is a special kind of Toeplitz matrix where each row vector is shifted on element to the right relative to the preceding row vector. In other words a circulant matrix is an example of a Latin square. In numerical analysis circulant matrices are important because they can be quickly solved using the discrete fourier transform.

Contents

Definition

A <math>m\times n<math> matrix C of the form

<math>

C= \begin{bmatrix} c_0 & c_1 & c_2 & \dots & c_{n-1} \\ c_{n-1} & c_0 & c_1 & & c_{n-2} \\ c_{n-2} & c_{n-1} & c_0 & & c_{n-3} \\ \vdots & & & \ddots & \vdots \\ c_1 & c_2 & c_3 & \dots & c_0 \end{bmatrix} <math>

is called a circulant matrix.

Properties

Circulant matrices form an algebra, since for any two given circulant matrices A and B then the sum A+B is circulant, product AB is circulant, and <math>AB = BA<math>.

The eigenvectors of a (square) circulant matrix of given size is fixed, that is, the eigenmatrix of a circulant matrix is the Fourier transform matrix of the same size. Consequently, the eigenvalues of a circulant matrix can be readily calculated by the Fast Fourier transform (FFT).

If the FFT of the first row of a circulant matrix is performed then the determinant of the circulant matrix is the multiplication of the spectral values.

<math>C = W \Lambda W^{-1}<math> by eigendecomposition
<math>\operatorname{det}(C) = \operatorname{det}\left(W * \Lambda W^{-1}\right)<math>
<math>\operatorname{det}(C) = \operatorname{det}\left(W\right) \operatorname{det}\left(\Lambda\right) \operatorname{det}\left(W^{-1}\right)<math>
<math>\operatorname{det}(C) = \operatorname{det}\left(\Lambda\right) = \prod_{k=1}^{N} \lambda_k<math>

where

  • C is an N by N circulant matrix
  • W is the Fourier transform matrix
  • <math>\Lambda<math> is a diagonal matrix of eigenvalues <math>\lambda_k<math>

The last term, <math>\Pi_{k=1}^{N} \lambda_k<math>, is the same thing as multiplication of the spectral values.

Solving circulant matrices

Given a matrix equation

<math>

\mathbf{C} \mathbf{x} = \mathbf{b} <math>

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

<math>\mathbf{c} * \mathbf{x} = \mathbf{b}<math>

where c is the first row of the circulant matrix C and the vectors c, x and b are cyclically extended in each direction. Using the discrete Fourier transform we can transform the cyclic convolution into component-wise multiplication

<math>n \mathcal{F}_{n}(\mathbf{c} * \mathbf{x}) = n \mathcal{F}_{n}(c) \mathcal{F}_{n}(\mathbf{x}) = \mathcal{F}_{n}(\mathbf{b})<math>

so that

<math>\mathbf{x} = \frac{1}{n} \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 ] <math>

Depending on the fast Fourier transform used this algorithm is much faster than the standard Gaussian elimination.

External link

Toeplitz and Circulant Matices: A Review, by R. M. Gray (http://www-ee.stanford.edu/~gray/toeplitz.pdf)

Copyright 2009 WordIQ.com - Privacy Policy  :: Terms of Use  :: Contact Us  :: About Us
This article is licensed under the GNU Free Documentation License. It uses material from the this Wikipedia article.