"Nick" wrote in message <email@example.com>... > I have a large sparse (symmetric positive definite) NxN matrix A, I would like to compute a few select elements of inv(A) without computing the full inverse. > > Obviously we can compute the ith column of inv(A) with the backslash operator which is a much better solution than forming inv(A) explicitly: > ei = zeros(N,1); > e(i) = 1; > ans = A \ e; > > I can extract the jth element of that to get inv(A)(j,i) > > My question is this: can I extract element (i,j) of the inverse without needing to compute the full column i? > > In matrix notation, I am trying to compute this rapidly: > ej' * inv(A) * ei > (where ej = zeros(N,1); ej(j) = 1;)
I don't know how rapid the calculation will be, but you can use cofactors and the matrix determinant to calculate individual inv(A) elements without computing the entire matrix inverse. E.g., see this and scroll down to the inverse discussion:
That being said, even if this does turn out to be fast enough for you I would expect the accuracy of the result to suffer. Determinant based solutions like this (e.g., Cramer's Rule) are notorious for being inaccurate.