如何测试数值稳定性?

How to test for numerical stability?

给定一个对 32 位 IEEE-754 浮点数执行数值计算的函数 F,测试 F数值稳定?是否有一个黑盒测试不需要了解除参数类型以外的更多信息?

好吧,您可以循环遍历所有浮点数,进行高阶前向差分,并寻找结果导数近似变得非常大的区域。不过,最终不可能证明粗糙度是不稳定性的结果,而不是被建模函数的实际特征。毕竟,每个黑盒都是一些函数的完美模型。

如果您有同一个黑盒的 32 位和 64 位版本,您可以专门寻找 64 位版本的前向差异比 32 位版本的更平滑的区域。