数值稳定性的启发式检查


12

假设我有一个实值函数,其中有一些变量x i,我想对其进行数值计算。通常,f的公式可以包含乘积,有理数,超越函数等,并且需要很长时间才能通过分析研究其数值稳定性。否则在实践中至少会很费时间。假设我没有比以前更短的保证稳定性。有没有方法可以分析f的数值稳定性f(x1,,xN)xiff。我想将其与使用计算机代数系统获得的任意精确结果进行比较。假设该函数将使用stdlib函数和单精度或双精度在C中实现。我应该比较哪些数量来量化有限精度下的近似质量?如何确定变量的临界值?如何选择编译器和编译器优化,以便其他人可以轻松重现结果?...我知道问题的解决方法可能是通用的,可以给出很好的答案。但是我仍然认为这是计算机科学中的普遍问题,并且想知道是否有参考文献提出了进行此类分析的标准。

Answers:


7

您正在寻找的是所谓的“自动错误分析”,它是Higham的书“数值算法的准确性和稳定性”(SIAM出版商第二版)第26章的主题。

他描述的一种技术是使用直接搜索优化:尝试将问题表达为优化问题,并使用优化算法查找系数或参数值,以最大化或最小化与算法/公式精度相关的数量。他以高斯消除中的增长因子为例(矩阵使该增长因子最大化)或三次方的根(正如我在您之前的一个问题中回答的那样)。

我建议您获得本书的副本,阅读介绍性章节和本章26及其中的参考文献。


3

±1

x±11/xx=01/(1x)1/(1+x)x=0


0

|f(x+ε)f(x)|C|ε|
Cfx,ϵ

如果功能确实在其范围内发生巨大变化,或者没有可用的可行导数,该怎么办?还有其他技术,还是我们最终会采用蒙特卡洛方法?
安德烈(André)2012年

1
-1:您解释了条件的概念,而不是数值稳定性的概念。
阿诺德·诺伊迈耶
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.