Я хочу решить серию задач наименьших квадратов (решатель Гаусса-Ньютона, в основном) для разреженной (crs/ccs) матрицы A
. Одной из самых трудоемких операций является H = A^T * A
товар. A
имеют разные числовые значения, но одинаковую разреженность, поэтому разреженность H
постоянна во время вычислений. Предположим, что A
содержит больше строк, чем столбцов.
Мой главный вопрос: как правильно выполнить этот продукт действительно быстро? Я знаю о бесматричных решателях, но в настоящее время я хочу изучить аналитические решения.
Также у меня есть несколько небольших вопросов
1) Вычислять оптимизацию только треугольной части (разреженный разреженный продукт A^T* Оптимизация в Eigen lib) имеет смысл при наличии векторизации?
2) Как я могу сказать собственному, что разреженность H
постоянна? Таким образом, eigen должен использовать уже заранее выделенный буфер и не должен проверять шаблон результата.
3) Какой порядок A
и H
более выгоден для H = A^T * A
, основной строки или основного столбца?
Спасибо за ваши ответы, и извините за мой английский