稀疏直接求解器如何知道正在解决的问题的维数?

计算科学 复杂 线性求解器 稀疏矩阵
2021-12-18 14:28:09

据称稀疏直接求解器的时间和内存复杂度为O(N2)O(N4/3)对于 3D 问题和O(N1.5)O(NlogN)分别为 2D。

但是一个通用的直接求解器是如何知道维度的呢?如果我用任意矩阵调用直接求解器,那么复杂度是多少?那么它是否隐藏在渐近估计中的常数中?

1个回答

稀疏直接求解器知道矩阵,因此知道它的维度和稀疏模式。当然它不知道离散化之前问题维度的维度。

然而,稀疏模式间接地揭示了维度。特别是,您报告的复杂性估计是基于您对 2D 或 3D 问题具有足够精细的离散化的假设,并且仅在细化一致地趋于零时渐近地成立。(很可能是细长条的 3D 模型O(N)虽然在三个维度中,因为三个维度中的两个在实践中很难被提炼。)

现在直接求解器基于稀疏图的树分解,其宽度决定了复杂度。现在嵌套的剖析参数提供了树宽的界限,因此提供了您提到的复杂性估计。