¿La mejor manera de calcular la matriz fundamental de una cadena de Markov absorbente?

Tengo una cadena de Markov absorbente muy grande (escala al tamaño del problema, de 10 a millones) que es muy escasa (la mayoría de los estados pueden reaccionar a solo 4 o 5 estados).

Necesito calcular una fila de la matriz fundamental de esta cadena (la frecuencia promedio de cada estado dado un estado de inicio).

Normalmente, lo haría calculando(I - Q)^(-1)¡Pero no he podido encontrar una buena biblioteca que implemente un algoritmo inverso de matriz dispersa! He visto algunos artículos sobre él, la mayoría de ellos P.h.D. nivel de trabajo

La mayoría de mis resultados de Google me indican publicaciones sobre cómo no se debe usar una matriz inversa cuando se resuelven sistemas de ecuaciones lineales (o no lineales). No me parece particularmente útil. ¿Es el cálculo de la matriz fundamental similar a resolver un sistema de ecuaciones, y simplemente no sé cómo expresar una en la forma de la otra?

Por lo tanto, planteo dos preguntas específicas:

¿Cuál es la mejor manera de calcular una fila (o todas las filas) de la inversa de una matriz dispersa?

O

¿Cuál es la mejor manera de calcular una fila de la matriz fundamental de una gran cadena de Markov absorbente?

Una solución de Python sería maravillosa (ya que mi proyecto todavía es una prueba de concepto), pero si tengo que ensuciarme las manos con un poco de buen Fortran o C, eso no es un problema.

Edición: Me acabo de dar cuenta de que la inversa B de la matriz A se puede definir como AB = I, donde I es la matriz de identidad. Eso puede permitirme usar algunos solucionadores de matriz dispersa estándar para calcular el inverso ... Tengo que huir, así que siéntase libre de completar mi línea de pensamiento, lo que estoy empezando a pensar que solo podría requerir una matriz realmente elemental propiedad...

Respuestas a la pregunta(2)

Su respuesta a la pregunta