Fortran Coder

查看: 19675|回复: 13
打印 上一主题 下一主题

[编译器] CVF和IVF不同编译器运行程序导致的数值不相等问题

[复制链接]

954

帖子

0

主题

0

精华

大师

F 币
184 元
贡献
75 点

规矩勋章元老勋章新人勋章水王勋章热心勋章

QQ
楼主
发表于 2015-4-8 16:41:15 | 显示全部楼层
0.00000000000044 的差别。
百分之 0.00000001 都不到的误差,如果你还是接受不了,那么数值计算可能不适合你。做解析解吧。

954

帖子

0

主题

0

精华

大师

F 币
184 元
贡献
75 点

规矩勋章元老勋章新人勋章水王勋章热心勋章

QQ
沙发
发表于 2015-4-9 09:00:58 | 显示全部楼层
本帖最后由 vvt 于 2015-4-9 09:05 编辑

我没办法解决。
就我个人来看,如果这么小的偏差都能带来致命的错误,这是你的算法稳定性问题。


请你理解:
1. 计算机浮点数计算永远有误差。这就是为什么浮点数一般不做相等判断( if a == b)。
2. CVF和IVF只是误差上还有差别而已。也就是他俩的结果都不是真值。
3. 牛顿迭代法本身就是近似解。


您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-15 14:25

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表