Function File: c = circulant_inv (v)

Fast, compact calculation of inverse of a circulant matrix Given an n*1 vector v, return the inverse c of the n*n circulant matrix C that has v as its first column The returned c is the first column of the inverse, which is also circulant – to get the full matrix, use ‘circulant_make_matrix(c)’

Theoretically same as inv(make_circulant_matrix(v))(:, 1), but requires many fewer computations and does not form matrices explicitly

Roundoff may induce a small imaginary component in c even if v is real – use real(c) to remedy this

Reference: Robert M. Gray, Toeplitz and Circulant Matrices: A Review, Now Publishers, http://ee.stanford.edu/~gray/toeplitz.pdf, Chapter 3

See also: gallery, circulant_matrix_vector_product, circulant_eig.

Package: linear-algebra