大规模三角最小二乘法

计算科学 线性求解器 稀疏矩阵 最小二乘
2021-11-26 04:01:52

我必须解决以下最小二乘问题: 其中\mathbf{L} \in \mathbb{R}^{n\times n}O(n)稀疏下三角矩阵,\mathbf{I} \in \mathbb{R}^{n \times n}是身份和\mathbf{b} = \left[ \begin{smallmatrix} \mathbf{b}_1 \\ \mathbf{b}_2 \end{smallmatrix} \right] \in \mathbb{R}^{2n}

[LI]xb22
LRn×nO(n)IRn×nb=[b1b2]R2n

因此,通过前向替换算法求解单个系统Lx=b1的复杂度为O(n),但最小二乘拟合的成本很高。

我愿意接受任何建议,包括快速近似随机求解器等。当然,如果有人知道利用这种结构的直接方法,那将是完美的。

1个回答

这看起来与Tikhonov 正则化(又名岭回归)同构。一些谷歌搜索提出了LSQR和更新的LSMR这些链接都具有多种语言的实现。对于大规模问题,Petsc内置了 KSPLSQR。

根据您所说的“大规模”的含义,mlpack 也可能有效。Mlpack 有一个教程,涵盖了它的命令行程序以及它的 C++ api。