Мне нужно решить большое количество линейных задач с одной и той же матрицей размером в несколько сотен. Стоимость инициализации не имеет значения, но критична стоимость времени выполнения. Наивно, мой опыт в Лос-Анджелесе говорит мне, что я должен просто инвертировать свою матрицу и использовать кешированную инвертацию для решения каждой из моих линейных задач. Однако в документации Eigen упоминается, что это может быть не лучший подход.
Итак, вот мои 2 вопроса:
Каковы различия в скорости и точности между .solve() и простым умножением перевернутой матрицы на RHS, если исходная матрица ведет себя хорошо?
Изменится ли ответ, если исходная матрица плохо себя ведет, но не полностью вырождена (ни одно из собственных значений не равно 0, но отношение наибольшего к наименьшему велико)?
Я новичок в Eigen, поэтому прошу прощения, если это повторяющийся вопрос, я искал архив перед публикацией.
Ник Гнедин