Наименьшие квадраты с использованием общего матричного векторного умножения, а не разреженных матриц

Есть ли способ вычислить

\argmin_{x}\|Ax-b\|_2

на основе функции, которая вычисляет матричные векторные произведения Ax без явного сохранения, разреженного или неразреженного, A в памяти?

В Python я бы использовал для этого scipy.sparse.linalg.lsqr (несмотря на имя пакета, эта функция не требует разреженных матриц, но допускает LinearOperators.


person Bananach    schedule 23.09.2019    source источник


Ответы (1)


В итоге я перевел открытый исходный код lsmr от Scipy на C#. Большая часть и без того на удивление короткого кода там есть документация и логирование, там может быть 100 нетривиальных строчек, все из которых имеют прямые эквиваленты в BLAS. (lsmr — улучшенная версия lsqr)

person Bananach    schedule 25.09.2019