It is well known how to solve a Toeplitz system Ax = b, of a matrix A, n x n elements, through the use of circular embedding in 2n x 2n and use of fft and ifft algorithm (easy reference, fast toeplitz solution, good reference, fast algorithms). However I have a matrix that is slightly different from Toeplitz although it still has a diagonal-constant structure. Consider the matrix, (see the repetition in the 2nd column)
Special =
[ a, b, c, d, e, f, g, h, i]
[ b, a, b, e, d, e, h, g, h]
[ c, b, a, f, e, d, i, h, g]
[ d, e, f, a, b, c, d, e, f]
[ e, d, e, b, a, b, e, d, e]
[ f, e, d, c, b, a, f, e, d]
[ g, h, i, d, e, f, a, b, c]
[ h, g, h, e, d, e, b, a, b]
[ i, h, g, f, e, d, c, b, a]
toeplitz(Special(:,1)) =
[ a, b, c, d, e, f, g, h, i]
[ b, a, b, c, d, e, f, g, h]
[ c, b, a, b, c, d, e, f, g]
[ d, c, b, a, b, c, d, e, f]
[ e, d, c, b, a, b, c, d, e]
[ f, e, d, c, b, a, b, c, d]
[ g, f, e, d, c, b, a, b, c]
[ h, g, f, e, d, c, b, a, b]
[ i, h, g, f, e, d, c, b, a]
Now since the degree of freedom is still n , only n elements are needed to define the entire special matrix, we can therefore expect the solution would be easier and fast. The matrix is diagonalizable since it is symmetric positive definite, so it has real positive eigenvalues, so my question is how can I proceed to find the fast solution ?
I am not looking for a spoon-fed answer but a general direction/ hints/ comments as how one would go about solving such a problem.
I believe the derivation should be similiar to the toeplitz case, but in that case the solution was easy with circular embedding, in my case the matrix is not that amenable to be transformed into circulant matrix (atleast thats what it appears to me). I can also try MATLAB symbolic decomposition, but for large matrices with similar format (but not exactly) it would be difficult to get an answer.
Your matrix is block Toeplitz with Toeplitz blocks (BTTB), with $3\times 3$ blocks. I am not aware of direct algorithms for this kind of structure, but the natural thing to try is embedding it into a BCCB (block circulant with circulant blocks) matrix which can be inverted using a two-dimensional FFT.
Most of the literature I could find on BTTB focuses on the large case and iterative algorithms. If your matrix really is 9x9, I doubt that you can get any real speedup with respect to a good implementation of Gaussian elimination; this kind of algorithms usually starts paying off for larger dimensions.