если я хочу только один элемент обратной матрицы, существует ли быстрый алгоритм?


9

Я использую Mathematica для решения проблем. У меня вопрос по поводу обратной матрицы.

если мне нужен только один элемент обратной матрицы, существует ли более быстрый алгоритм, чем использование Inverseдля вычисления всей обратной матрицы и извлечения нужного мне элемента?


В реферате этой статьи говорится, что они могут вычислить диагональ обратной матрицы в , но я не знаю, есть ли что-то для произвольной записи. О(N32)
Г. Бах

Основная проблема здесь может быть о математике больше, чем информатика .
Dukeling

1
Вот кое-что о чем-то большем, чем просто диагональ для разреженных матриц, и вот кое-что о параллельном алгоритме для структурированных разреженных матриц.
Г. Бах

@ G.Bach спасибо за вашу информацию
user15964

2
@ G.Bach Многие из моих ответов такие. Эффективно использовать Google нетривиально. Если информация полезна, то она отвечает на вопрос.
Юваль Фильмус

Ответы:


1

Я не видел этого точно в Mathematica, но я думаю, что возможность решить набор уравнений только для одного неизвестного может быть поддержана.

Прямой способ, конечно, заключался бы в реализации алгоритмов обратной матрицы и их остановке при определении конкретного элемента. Вероятно, было бы интересно посмотреть, какие оптимизации можно использовать для каждого алгоритма, если целью является получение только одного элемента.

Но согласно первому абзацу, одна идея может состоять в том, чтобы выразить вашу матрицу, обратную как неизвестные в системе уравнений, а затем попытаться найти решение только для неизвестного, которое вам нужно (поскольку должно поддерживаться решение набора уравнений для одного неизвестного). Если вы получаете лучшую производительность памяти и процессора, то можно с уверенностью сказать, что Mathematica на самом деле не решила все уравнение, а просто выполнила его оптимизацию, чтобы определить только ваше неизвестное. Конечно, производительность может ухудшиться, поскольку вы не используете обратные алгоритмы напрямую. Если вы решили попробовать, дайте нам знать, если это сработало!

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.