【发布时间】:2011-06-22 08:24:16
【问题描述】:
作为数值优化器的中间步骤,我需要求解 N 个线性方程组。 AFAIK 相当简单的算法恰好是 O(N^3) (尽管我在一些数学论文中看到了一个非常复杂的算法,它可以用像 O(N^2.8) 这样的巨大常数来实现)。在某些情况下,N 很大,即几千。
有什么好的方法可以在小于 O(N^3) 的时间内得到一个线性方程组的近似解吗?
编辑:
如果有帮助的话,这里有更多细节。
我的矩阵是对称的,而不是稀疏的。
它是 Newton-Raphson 的二阶导数矩阵。我正在尝试在 2000 维空间中优化某些东西。
【问题讨论】:
-
为什么不使用经过验证的实现,例如 LAPACK:en.wikipedia.org/wiki/LAPACK
-
是的,有很多。哪一个合适取决于您的特定系数矩阵。如果您告诉我们它的外观,我们或许可以推荐特定的算法。
-
wikipedia 上描述了几个,虽然我没有使用任何一个。
-
嗯,这取决于你的系统
Ax= b,如果它有 1)A中的特殊结构,或者 2)A将承认低秩近似,或者 3) 它是密集的并且接近满级。因此,在情况 3) 中没有希望获得任何重要的东西,但如果 1) 或 2) 适用,请详细说明您的详细信息。谢谢 -
@Andrey:两个原因:第一,目标语言是 D,没有成熟的 LAPACK 绑定。其次,这是针对大型开源库的一小部分,我正在避免像瘟疫这样的第三方依赖项。
标签: algorithm performance matrix linear-algebra approximation