Take the 2-minute tour ×
Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. It's 100% free, no registration required.

I have 2 pixels with size 1x3 called $A$ and $B$ and I have to compute the following equation:

$$ A^T *(\Sigma+ I_3*\lambda)^{-1}*B $$

where $\Sigma$ is the covariance matrix (3x3) between vectors $A$ and $B$.

$I_3$ is the 3x3 identity matrix.

$\lambda$ is a constant (therefore, the matrix is not singular).

At the moment, i'm computing the inverse of the $\Sigma +I_3*\lambda$ using the Gauss-Jordan elimination.

I wanna know if there is a trick to compute this equation without computing the inverse. I'm also limited in memory so the Gauss-Jordan elimination is not a really good solution. I also tried to compute straight the inverse using the rule of Sarrus but the result was not enought accurate.

My aim is to resolve this equation with the highest speed and the minimum memory space.

EDIT:

Anyone knows a fast and good way to inverse a 3x3 symmetric matrix ?

EDIT 2:

I'm thinking about making a Cholesky decomposition of my matrix but after that, I don't understand how to compute the inverse of $(\Sigma +I_3*\lambda)$ from Cholesky matrix.

share|improve this question
    
Hmm, set aside the question of whether Gauss-Jordan elimination is a good method, are you saying that your memory is so limited that you cannot even store a $3\times3$ matrix? Also, I am not an expert in numerical linear algebra, but computer algorithms usually have space-time tradeoffs. That you need something "with the highest speed and the minimum memory space" is perhaps asking for too much .... Anyway, if those matrix algorithms seem too complicated to you, I think you may try the "conjugate gradient method", which is fairly efficient in terms of speed, storage and ease of implementation. –  user1551 Nov 15 '12 at 8:51
    
@user1551 If i'm limited in memory is because I'm using this in a kernel function in graphic card. But I guess you're right about the trade off, that's why I'm trying different methods. About the "conjugate gradient method", it is usefull for equation Ax=b right ? How can I apply it for my equation ? –  Seltymar Nov 15 '12 at 9:09
    
$x=(\Sigma+ I_3*\lambda)^{-1}*B \Leftrightarrow (\Sigma+ I_3*\lambda)x=B$. –  user1551 Nov 15 '12 at 9:16
    
@user1551 it works quite well, faster and less memory. However, the precondioned version is slower because it can already be solved in a few iterations. I will maybe try also using Cholesky to solve the same equation. I don't know which one would be the more efficient for my problem. –  Seltymar Nov 16 '12 at 7:10
    
Hmm, if numerical stability is a concern, Cholesky decomposition seems to be inferior to QR factorization. See pp.17-18 of these slides, for instance. If numerical stability is not your concern, actually you may just employ Cramer's rule. –  user1551 Nov 16 '12 at 10:08

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.