0

我有一个双精度复数算术代码,它形成大型稀疏矩阵(感谢 PETSc),以解决通常需要高精度的问题(例如,结果收敛到 7/8 位)

通过并行 LU 分解求解得到的线性系统 Ax=b。我的目标是解决大型 3D 问题,因此矩阵的领先维度可以达到几千万。

该矩阵包含由有限差分法的权重乘以所求解的不同物理方程的系数和度量项得到的元素。

如果一个矩阵条目的绝对值低于双精度机器精度,我将其丢弃并将其切为零。您是否认为这是一种理智的方法,或者至少是毫无意义的?一个原因是我们希望节省所有可能的兆字节内存。但有待商榷的是

  • “非常小的”条目可能会污染 LU 反演过程并使其不稳定,同时增加填充。

  • 如果在该过程中使用接近机器精度的矩阵条目,我会假设涉及这些条目的任何算术运算的结果都可以被认为是“不可靠的”?如果是,我不明白为什么要保留它们。

我知道机器精度是一个与最小可表示正数不同的概念。因此,我的推理可能在概念上是错误的,并且希望得到您的意见或更正。谢谢!

4

1 回答 1

0

正如其他人已经建议的那样,这个问题的答案是“取决于”。但是,可以准确地说明答案取决于什么。

假设您要求解线性系统,

轴 = b,

其中 A 和 b 是一个矩阵和一个适当维度的向量。现在,你求解扰动线性系统

(A + E)\hat x = b,

其中扰动矩阵 E 满足

\|  E \|_\infty \le \alpha \|  一个 \|_\infty.

如果\alpha \kappa_\infty(A) \le \tfrac12,那么

\压裂{\|  x - \hat x \|_\infty}{\|  x \|_\infty} \le 4 \alpha\,\kappa_\infty(A),

其中http://latex.codecogs.com/png.latex?%5Ckappa_%5Cinfty%28A%29是在行和范数中测量的 A 的条件。

(这个结果可以在 Golub, van Loan Matrix Computations Chapter 3 中找到。)

换句话说,如果您更改矩阵的条目,结果将通过每行的总和扰动(\|  \cdot \|_\infty是行总和范数)乘以矩阵条件的倍数而改变。

因此,如果在乘以矩阵的条件时,相对于 A 的行和范数的每行总的扰动仍然很小,则允许矩阵的扰动。

当然,这个结果只适用于精确计算。然而,正如我们所看到的,为了允许对矩阵进行扰动,矩阵的条件数应该足够小。因此,在这种情况下,如果扰动很小,则被扰动矩阵的条件数也将很小,在这种情况下,LU分解没有问题。

于 2018-07-26T23:14:35.507 回答