数值误差的科学标准


40

在我的研究领域中,实验误差的规范被普遍接受,未能提供实验误差的出版物受到了强烈批评。同时,我经常发现提供的数值计算结果没有考虑任何数值误差,尽管(或者可能是因为)经常有可疑的数值方法正在起作用。我说的是由离散化和数值计算的有限精度等导致的误差。当然,这些误差估计值并不总是很容易获得,例如在流体动力学方程的情况下,但是我似乎常常是由于懒惰而导致的,我相信数值误差估计的规范应该与实验结果一样是标准的。因此,我的问题是:

Answers:


26

您的问题是关于模型验证的问题。您可以通过搜索验证与确认找到方法众多资源和标准(1997年罗彻2002年2004年奥伯坎普夫和2002 TrucanoSalari&Knupp 2000的Babuska和奥登2004年),以及更广泛的话题不确定性量化。我不想详细说明方法,而是要强调一个在这个问题上持坚定立场的社区。

1986年,Roache,Ghia和White制定了《流体工程学报》中有关数值精度控制的编辑政策声明,该声明

在计算流体动力学界以及更广泛的计算物理学领域中存在一个专业问题。即,需要对数值精度的控制更高的标准。

[...]这个问题当然不是JFE所独有的,在1980-81年AFOSRHTTM-斯坦福大学复杂湍流会议上,这个问题变得更加突出。该会议评估委员会的结论是,在该会议的大多数意见书中,无法评估和比较不同湍流模型的准确性,因为无法将物理建模误差与与算法相关的数值误差区分开来。网格。对于一阶精确方法和混合方法尤其如此。

他们得出的结论非常直接:

《流体工程杂志》将不接受任何报告流体工程问题的数值解决方案的论文,这些论文未能解决系统的截断误差测试和准确性估算的任务。

我们必须明确指出,固定网格的单个计算将是不可接受的,因为无法从此类计算中推断出准确度估算值。而且,编辑者不会认为与实验数据的合理一致性足以作为准确性的证明,尤其是在涉及任何可调整参数的情况下,例如在湍流建模中。

目前的版本中包含了一整套标准,并表示,在我看来,其他领域都应该立志匹配的标准。遗憾的是,即使在今天,在许多领域中也缺乏对模型验证重要性的认识。


1
关于可调参数的最后一点让我想起了约翰·冯·诺伊曼(John von Neumann)的一句话:“有了四个参数,我就可以适应一只大象,而有了五个参数,我就可以使他扭动他的躯干。”
杰德·布朗

这仅解决离散化误差的影响,而不是舍入误差的影响,在流体模拟中,舍入误差几乎被普遍忽略,因为它们通常对总误差的贡献较小。但是在不涉及微分方程或积分的应用中,没有离散误差。在这些问题中,舍入错误和迭代截断错误是错误的主要来源。
阿诺德·诺伊迈耶

您认为严格的后验估计可以替代电网独立性要求吗?如上所述,这有点模糊,您需要改进网格以确保独立性吗?另一方面,好的后验估计器应该没有歧义的余地。
Reid.Atcheson,2012年

2
@ Reid.Atcheson“您好,我听说您喜欢错误估计,因此您为您的错误估计提供了一个错误估计,因此您可以估计自己的错误...”,但不幸的是,实际的错误估计往往并不严格最坏的情况。可用的界限通常是悲观的,并且依赖于大多数工程问题都不正确的假设。即使使用最高错误估计器,您也需要验证它是否已正确实现。一定要使用错误估计器(如果有),但是错误估计器不是独立的验证。
杰德·布朗

19

不存在上述标准,可靠的误差估计往往花费很多比近似计算更多。

基本上有四种误差估计:

(i)理论分析证明数值方法是数值稳定的。这实际上并没有给出错误条,因为分析仅保证所产生的错误不会比输入参数中的量化错误更严重。对于大多数科学计算而言,这已经足够了,因为输入也仅是近似值,因此使用数值稳定方法所产生的误差并不比使用稍微不同(但未知)的输入更糟糕。尽管人们发现几乎没有任何应要求报告所产生的所谓的向后误差的实现,但大多数备受推崇的数值方法都伴随着数值停滞分析。

(ii)渐近误差估计。这些假设假定可以忽略所有误差(输入误差,舍入误差或离散误差是最常见的来源)的乘积(如果函数是非常非线性的,则可以质疑),并使用灵敏度分析来传播输入误差。与数值稳定性分析一起,还可以捕获舍入误差或离散误差的影响。所产生的误差线与它们所基于的假设的有效性一样真实。使用自动微分工具,误差估计的成本除近似成本外通常为1或2倍。因此,这种误差估计在实践中相当普遍。

[编辑]例如,Oettli-Prager定理为线性系统的解提供了易于计算的向后误差估计。敏感度分析表明,这些误差必须乘以矩阵逆的范数,可以使用Hager的估计量(内置在现代条件数估计量中)进行估计。

(iii)随机误差分析:(CESTAC,http://www.sciencedirect.com/science/article/pii/0378475488900705)通过用相应的随机变量重载所有操作来完成,该变量评估三组参数,然后添加人为的随机舍入误差。最后三个结果用于计算平均值和标准偏差的平方根(与平均值的偏差平方和除以2 = 3-1)。这给出了舍入误差部分的相当有用的精度估计。但是,这并未考虑离散误差,而离散误差通常是ODE和PDE计算中的主要误差。由于执行重载操作的开销,因此成本取决于编程语言。假设(几乎绝不是这种情况)过载不会造成时间损失,那么与仅计算近似值相比,结果加误差估计的成本是三分之一。

(iv)间隔分析:如果正确完成,这将为所有错误源提供严格的界限,但在简单情况下,它需要大量经验(或包含它的软件)才能以不会严重高估真实错误的方式进行操作。对于线性代数(例如,IntLab http://www.ti3.tu-harburg.de/rump/intlab/),可以使用良好的区间软件,如果尺寸较大,则成本约为6),并且可以进行全局优化(例如, ,COCONUT http://www.mat.univie.ac.at/~coconut/coconut-environment/; 可能比近似全局优化要贵得多,甚至要便宜,这取决于问题的特征)。但是,许多其他类型的问题很容易准确地进行近似处理(例如,将太阳系大行星的轨迹围住10年之久),这对于当前的间隔方法来说是完全无法实现的。


谢谢。我希望看到(ii)在工作。您能否举一个例子,作者将灵敏度分析和数值稳定性分析结合起来以确定整体误差估计。
highsciguy 2012年

@highsciguy:请参阅我对(ii)的编辑
Arnold

谢谢。雅可比矩阵逆?
highsciguy 2012年

@highsciguy:不明白你的最后一个问题。该示例正在求解线性方程组,没有雅可比图。
阿诺德·诺伊迈耶

1
我忽略了线性。那很清楚。是否有尝试将Oettli-Prager定理推广到非线性系统?
highsciguy 2012年

13

有点。数值分析人员得出的理论误差范围通常被高估了,在实践中可能没有用,因为它们可能包含在实践中难以获得的信息。一个很好的例子是普通方程解中数值误差的界限,您可以在Hairer和Wanner的书中找到它们。尼克·海姆(Nick Higham)的书《数值算法的准确性和稳定性》(书名可能略有出入)也为常见的数值运算和线性代数算法提供了一些误差范围。数值分析文献充斥着这样的界限。

间隔分析方法也已用于计算误差范围。这些方法很严格,并且往往提供比理论误差范围更强的误差范围,但是这些方法仍可能严重高估数值计算中的误差。据我所知,这些方法在全局优化中得到了最好的利用,但也可用于不确定性量化。阿诺德·诺伊迈耶(Arnold Neumaier)至少写了一本有关区间分析方法的书,并且更有资格对这一主题进行详细评论。除了潜在的高估问题外,区间分析方法还需要额外的计算基础结构,这些基础结构需要对现有的大型数值模拟程序包(例如PETSc,Trilinos,CLAWPACK / PyClaw等)进行改造。),包括区间算术和自动微分(针对基于Taylor的方法)。从我所看到的,虽然有一些,但那里没有很多许可的区间算术和自动微分程序包。即使这样,有时这些库的功能仍然有限。很难找到具有BLAS类功能的许可许可(LGPL或BSD类)间隔算术库。

后验误差估计可以更容易地获得,但并不严格。我最熟悉常微分方程的这些估计,但是它们也存在于许多用于计算偏微分方程解的方法中。

更广泛地说,来自不确定性量化的方法(例如使用多项式混沌展开,蒙特卡罗方法或其他采样方法)可用于量化由于输入参数变化而导致的计算不确定性。由于参数的变化,这些方法应该能够提供某种启发式的“错误条”,但不会给出严格的界限。

我认为在指定数字误差方面您绝对是正确的:计算科学在呈现其结果方面应该与基于实验的物理科学一样严格。在这一领域(在“不确定性量化”和“数值分析”的总括下),我们正在做大量的工作,我希望将来在某些时候讨论大多数计算结果时,会包括误差线。 。


您是否对有关这些多项式混沌展开的概述文章有很好的参考?我见过这个词经常出现,并且想进一步了解它们。谢谢。
GertVdE 2012年

2
修东彬通常就多项式混沌展开式撰写无障碍论文。这是他写的较为笼统的概述论文之一:dam.brown.edu/scicomp/media/report_files/BrownSC-2003-07.pdf
Geoff Oxberry

7

除了其他答案,还有一些其他要考虑的方面。

  1. 数值离散误差或至少方案的顺序可以通过分析确定。如果这些错误使用众所周知的方案,则可以从论文中省略对这些错误的讨论。
  2. 网格细化研究是在逐渐精细的网格上运行相同的问题(通常是简单的问题)。将这些与精确解或在非常精细的网格上的解进行比较,以找到L范数,通常为L2。该误差估计的斜率给出了准确度的顺序。
  3. 在存在不同数值方案但网格细化或精确解决方案不可用的问题中,另一种称为Richardson Extrapolation的方法将给出误差项的界限。可以在本文中找到这些方法的很好的评论
  4. 最后,每个期刊都设置自己的接受标准。有些严格,有些则没有。例如,AIAA 在此列出了其标准。其他期刊也为作者提供类似信息。

我只想评论第2点。我认为,在数值上解决一个实际问题时,更有可能看到规范比较了两个连续细化之间的差异,而不是使用“可笑的精细网格”。如果您可以解决非常精细的网格,为什么还要麻烦一些粗糙的网格呢?
Godric Seer 2012年

网格细化研究通常对实际问题不切实际。这就是第3点的要点,与逐步优化网格相比,通过更改方案顺序来确定误差范围要容易得多。例如,我们使用仍然是非线性的无粘性涡旋来验证代码,但是我们可以运行非常精确的“精确”解决方案来验证准确性。但是在全旋流燃烧器上,我们实际上无法做到这一点,因此我们使用了不同的方案。
tpg2114 '10 -10-9

还要注意,完善网格并检查答案中的差异显示网格独立性,这与检查错误范围是不同的。即使在实际情况下,仍需要对网格进行细化,尽管诸如“大型涡流仿真”之类的网格细化方法会打开另一整个蠕虫罐。
tpg2114 '10 -10-9

谢谢,我错误地将网格独立性与错误范围相关联。我猜想我一直以为网格独立性意味着离散化误差的定性保证。
Godric Seer 2012年

3
网格独立性意味着更精细的网格不会改善答案,但是并不能告诉您答案的准确性如何,或者精细化网格的速度可以提高准确性。
tpg2114
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.