Fortran Coder

楼主: 紫璇
打印 上一主题 下一主题

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

[复制链接]

4

帖子

1

主题

0

精华

新人

F 币
22 元
贡献
7 点
跳转到指定楼层
楼主
发表于 2015-4-8 15:30:40 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
我是初学者,用CVF编译器,在程序计算过程中有个变量计算值是“-3.055427265967348E-002”,而用IVF编译器同样的变量计算值是“-3.055427265966992D-002”,这样的精度误差导致我最后想要求解的参数值就不一样,怎么解决啊?
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

4

帖子

1

主题

0

精华

新人

F 币
22 元
贡献
7 点
沙发
 楼主| 发表于 2015-4-9 08:39:36 | 显示全部楼层
chiangtp 发表于 2015-4-9 00:06
0.00000000000044 的差别, 可能是編譯環境不同的微小差異
"最后想要求解的参数值就不一样"我猜是程式有邏輯 ...

谢谢大家啊,我用的牛顿迭代算法,迭代次数多的话最终会导致结果相差的比较多,是不是没办法解决不同编译器的误差问题啊。

4

帖子

1

主题

0

精华

新人

F 币
22 元
贡献
7 点
板凳
 楼主| 发表于 2015-4-9 09:18:32 | 显示全部楼层
vvt 发表于 2015-4-9 09:00
我没办法解决。
就我个人来看,如果这么小的偏差都能带来致命的错误,这是你的算法稳定性问题。

恩,是的,本身都是近似解,最后都能收敛,应该用哪个都可以,谢谢啊

4

帖子

1

主题

0

精华

新人

F 币
22 元
贡献
7 点
地板
 楼主| 发表于 2015-4-9 14:11:24 | 显示全部楼层
chiangtp 发表于 2015-4-9 13:39
! Programmer的夢靨: Results are compiler/compile-option dependent
!--------------------------------- ...

您所指的程式有逻辑错误是什么意思呢?我不大懂啊,可以详细点吗?我现在是求解四个参数值,用CVF求解得到四个值分别是10, 152, 551,-0.531;用IVF得到的分别是14, 201, 730, -0.427。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-5-9 08:07

Powered by Tencent X3.4

© 2013-2024 Tencent

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