Лучший способ вычислить фундаментальную матрицу поглощающей цепи Маркова?

У меня очень большая поглощающая цепь Маркова (масштабируется по размеру задачи --от 10 состояний до миллионов ), что очень редко (большинство состояний может реагировать только на 4 или 5 других состояний ).

Мне нужно вычислить одну строку фундаментальной матрицы этой цепочки (среднюю частоту каждого состояния при одном начальном состоянии ).

Обычно я бы сделал это, вычислив (I - Q)^(-1), но мне не удалось найти хорошую библиотеку, реализующую алгоритм обратного обращения к разреженной матрице! Я видел несколько работ по этому вопросу, большинство из них доктора философии. работа на уровне.

Большинство моих результатов Google указывают на сообщения, в которых говорится о том, что нельзя использовать обратную матрицу при решении линейных (или не-линейных )систем уравнений... Я не нахожу это особенно полезным. Вычисление фундаментальной матрицы похоже на решение системы уравнений, и я просто не знаю, как выразить одно через другое?

Итак, я ставлю два конкретных вопроса:

Как лучше всего вычислить строку (или все строки )обратной разреженной матрицы?

ИЛИ

Как лучше всего вычислить строку фундаментальной матрицы большой поглощающей цепи Маркова?

Решение на Python было бы замечательным (, так как мой проект в настоящее время все еще является доказательством -концепции -), но если мне придется замарать руки каким-нибудь старым добрым Fortran или C, это не проблема. проблема.

Редактировать :Я только что понял, что обратную B матрицы A можно определить как AB=I, где I — единичная матрица. Это может позволить мне использовать некоторые стандартные решатели разреженных матриц для вычисления обратной... Мне нужно бежать,так что не стесняйтесь завершать ход моих мыслей, которые, как я начинаю думать, могут потребовать действительно элементарного матричного свойства...

11
задан Hooked 15 July 2014 в 21:26
поделиться