gpt4 book ai didi

floating-point - Julia 浮点运算的解决方法?

转载 作者:行者123 更新时间:2023-12-02 05:28:14 26 4
gpt4 key购买 nike

Julia 的 float 和舍入算法是否有可能的解决方法,其中它甚至输出一个简单的值,例如 1.61.6000000000000012

由于我打算使用 Julia 来证明求积法的精确程度,我最终需要证明一个积分的计算值等于它的精确值,但由于某些情况下尾随小数的这些差异,我做不到。

最佳答案

在 Julia 中,您可以使用 Rational 类型来表示有理数而不会丢失精度。请参阅文档 here .但是,您仍然需要非常小心地进行计算,不要将 Rational 提升为 Real

您的 1.6 示例可以表示如下:

> x = 16//10
8//5

然后 Julia 会记住分母和分子并存储值。您可以使用这些有理数将您的派生值与真实值进行比较。

如果最后您需要转换回 float (因为例如您的结果是无理数),那么您可以使用 BigFloat 类型来获得更高的精度。 有理数 即使在使用 BigFloats 时也会提高精度:

> @printf "%.100f" BigFloat(1.6 - 1.5)
0.1000000000000000888178419700125232338905334472656250000000000000000000000000000000000000000000000000

> @printf "%.100f" BigFloat(16//10 - 15//10)
0.1000000000000000000000000000000000000000000000000000000000000000000000000000002159042138773611156347

关于floating-point - Julia 浮点运算的解决方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36411447/

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