c# - 使用一般矩阵向量乘法的最小二乘,而不是稀疏矩阵
问题描述
有没有办法计算
\argmin_{x}\|Ax-b\|_2
基于计算矩阵向量乘积的函数Ax
,而无需在内存中显式存储稀疏或非稀疏A
?
在 Python 中,我会使用scipy.sparse.linalg.lsqr
它(尽管包名称,这个函数不需要稀疏矩阵,但允许LinearOperator
s.
解决方案
我最终将Scipy 的 lsmr的开源代码翻译成 C#。大多数已经令人惊讶的短代码都有文档和日志记录,可能有 100 行重要的行,所有这些在 BLAS 中都有直接的等价物。(lsmr 是 lsqr 的改进版)
推荐阅读
- java - ArrayList 作为构造函数中的参数
- python - 增加 qtreewidget 的大小
- asp.net-core - .NET Core 中的程序集绑定重定向
- r - 如何将 3 个不同表中的 3 个不同列合并为一个大列。R
- flutter - 如何在 Flutter Web 中的 Blob 和 Image 之间来回转换?
- javascript - 如何在 Jest 中仅模拟 Class 的构造函数
- sql - 总和返回正确答案......有时
- java - Java - 使用枚举捕获用户输入时出错
- javascript - 将 javascipt 数组转换为对象
- css - 悬停时缩放和变换 img