gpt4 book ai didi

java - 跟踪双算术中的最大误差

转载 作者:行者123 更新时间:2023-11-30 10:16:19 25 4
gpt4 key购买 nike

double a 表示给定的有理数/实数,最大误差为 epsilon。如果我加两个 double ,最大误差也会加起来。对于乘法,我还可以给出最大误差的估计值。

是否有合理的方法来跟踪这些算术错误?我想知道我知道给定数字的精确程度。

我以为我构造了一个包含两个有理数(主数和误差)的数据类型并定义了对该数据类型的操作,但也许我只是在重新发明一些已经存在的东西,或者我的概念太复杂了。

最佳答案

有两种解决方案只需要现有的库。

如果您的数字总是有理数,您可以使用有理算术库。他们将每个数字存储为一对整数的比率。仅给出有理计算的有理数算术应该是精确的。维基百科的List of arbitrary-precision arithmetic software列出了几个支持 rational 的 Java 库。

评论中提到的 BigDecimal 可用于提高精度,但仅适用于有限长度的小数。您可以在有理算术中精确计算 1/3,但在 BigDecimal 中只能近似计算。

有理算术的准确性取决于所有数字都由有理数精确表示。这可能会在计算上崩溃,例如一个平方根。 Interval arithmetic是一种替代方法,它不会给您精确性,但会让您知道可能的舍入误差范围。每个变量都由已知包含实际算术值的区间表示。

关于java - 跟踪双算术中的最大误差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50141223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com