How to apply conjugate gradient to invert a sparse matrix

1.9k Views Asked by At

I have to clarify a mathematical concept for my research work. The concept is coming from The GraphSLAM Algorithm . There is no need to read the whole paper. I can explain the paper in short here.

The key concept of Graph Slam depend upon this equation

$\mu=\Omega^{-1}Xi$

Here $\mu$ define mean, $\Omega$ is a Information Matrix which is a Sparse Matrix and we should call it is a band diagonal sparse matrix. Xi is a Information Vector.

There is a linear relationship between information matrix($\Omega$) and the mean($\mu$) with respect to information vector(Xi) and to get the mean back we need to solve a linear system where $\mu$ is unknown.

As per the paper which is link here there is a line in page 407(paper page number) In fact, since the inverse of $\Omega$ is multiplied with a vector,the result can be computed with optimization techniques such as conjugate gradient,without explicitly computing the full inverse matrix .

My question is how could I apply Conjugate gradient respect to equation $\mu=\Omega^{-1}Xi$ ?

What is the method to invert a matrix that describe here?

Waiting for reply.

Thank you in advance.

2

There are 2 best solutions below

5
On BEST ANSWER

An equivalent equation to your key equation is

$$\Omega \mu = X_i$$

If $\Omega$ is a symmetric positive definite matrix then you can use conjugate gradient to solve this equation.

You don't need to explicitly compute $\Omega^{-1}$, rather you can solve for $\mu$ using a far more efficient algorithm.

Finding an inverse matrix is a very computationally expensive operation. While its nice to write out on paper, actually computing the inverse is rarely practical. Even if $\Omega$ is not symmetric positive definite, there are many numerical methods to choose from that would be more efficient at solving the equation.

0
On

You need just a good, quality implementation of the Conjugate Gradients Method for sparse matrices (the actual structure of the matrix isn't that important, because sparse matrices are usually stored by such programs as linked lists). You may consider the following book, which comes with complete source codes in C on CD-ROM. https://www.amazon.com/Solution-Systems-Algebraic-Equations-Matrices/dp/0646990454