# Sparse matrix inverse with reduced bandwidth

I have a sparse symmetric matrix of dimension 1393x1393 (8308 no zero elements), with bandwidth 1380. By Cuthill–McKee algorithm, I could achieve a new matrix with bandwidth 89. If we call this matrix B, then I'm interested in calculate the inverse I-rho*B, where I is a diagonal matrix and rho is a parameter updated in my MCMC algorithm. I need to calculate matrix inverse many times (during MCMC) and someone told me by reducing the matrix bandwidth, I can obtain faster matrix inverse.

I am using R as my programming language. The solve function is used to calculate the inverse of a matrix. I noticed no difference when calculating the inverse of a sparse matrix with bandwidth 1380 or bandwidth 89.

I guess I need some explicit commands/options in order to take advantage of the bandwidth reduction, but I don't know what keywords should I aim at. Can anyone give me some suggestions?

• R might not take advantage of sparsity when using the solve command to compute the inverse of a matrix. Usually, the inverse of a sparse matrix is dense, so the built-in procedure might have been written to just convert it to a dense matrix, figuring that there's rarely anything to be gained from sparsity. To check this, see if you can print out any type info for the inverse matrix, or failing that check the number of non-zero entries in the inverse.