У меня есть матрица размера 10800x10800 в Matlab, и я вычислить его обратный непосредственно с функцией:Быстрый способ в Matlab для вычисления инверсии большой матрицы 10800x10800?
inv(A)
Это занимает от 3 до 4 минут только один из таких вычислений. И это часть итеративного алгоритма , которому требуется более 20 итераций, поэтому общие вещи будут быть очень медленными. Есть лучший способ сделать это? Может быть, некоторые математические формулы или, может быть, лучшая функция Matlab?
Редактировать: Матрица диагональна. Каждая итерация диагональных элементов обновляется на основе формул для подгонки фактор-анализатора. Но это не имеет значения, важно то, что это диагональная матрица, и она меняет каждую итерацию.
БЛАГОДАРЯ
Как правило, использование явного 'inv()' можно избежать, но нам нужно увидеть больше кода, чтобы это понять. – Oleg
Какие изменения на каждой итерации? существуют инкрементные формулы для обратных матриц для всех видов вещей. Это действительно зависит от конкретных действий, которые вы делаете на каждой итерации. – Shai
Я отредактировал свое оригинальное сообщение и предоставил дополнительную информацию. – user2225930