Melhor maneira de calcular a matriz fundamental de uma cadeia de Markov absorvente?

Eu tenho uma cadeia de Markov absorvente muito grande (escalas para o tamanho do problema - de 10 estados a milhões) que é muito esparsa (a maioria dos estados pode reagir a apenas 4 ou 5 outros estados).

Eu preciso calcular uma linha da matriz fundamental dessa cadeia (a freqüência média de cada estado dado um estado inicial).

Normalmente, eu faria isso calculando(I - Q)^(-1), mas eu não fui capaz de encontrar uma boa biblioteca que implementa um algoritmo inverso de matriz esparsa! Eu vi alguns artigos sobre isso, a maioria deles P.h.D. trabalho de nível.

A maioria dos meus resultados do Google me levam a postagens falando sobre como não se deve usar um inverso de matriz ao resolver sistemas lineares (ou não-lineares) de equações ... Não acho isso particularmente útil. O cálculo da matriz fundamental é semelhante a resolver um sistema de equações, e eu simplesmente não sei como expressar uma na forma da outra?

Então, eu faço duas perguntas específicas:

Qual é a melhor maneira de calcular uma linha (ou todas as linhas) do inverso de uma matriz esparsa?

OU

Qual é a melhor maneira de calcular uma linha da matriz fundamental de uma grande cadeia de Markov absorvente?

Uma solução em Python seria maravilhosa (já que meu projeto ainda é uma prova de conceito), mas se eu tiver que sujar as mãos com algum bom Fortran ou C, isso não é um problema.

Edit: Acabei de perceber que o inverso B da matriz A pode ser definido como AB = I, onde eu é a matriz de identidade. Isso pode me permitir usar alguns solucionadores de matriz esparsa padrão para calcular o inverso ... Eu tenho que fugir, então sinta-se livre para completar minha linha de pensamento, o que eu estou começando a pensar que pode requerer apenas uma matriz realmente elementar propriedade...

questionAnswers(2)

yourAnswerToTheQuestion