Fortran Coder

查看: 12864|回复: 9
打印 上一主题 下一主题

[数值问题] 程序计算时,参数为什么老是为0呢?

[复制链接]

712

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
607 元
贡献
311 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

楼主
发表于 2014-3-21 19:42:24 | 显示全部楼层
黑色的ran值有吗?e-35 就跟0一样。你确定是你想要的吗?试试换一个种子呢?

如果你确定ran值是有的,那就不必怀疑随机数了。看看 wb1,cm(5) 的值,及其类型吧。

712

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
607 元
贡献
311 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

沙发
发表于 2014-3-21 21:31:54 | 显示全部楼层
1.源程序不完整,我无法帮助你调试。
2.我没做过二次开发,无法帮助你调试。
3.random_seed 只许调用一次,请放置在程序一开始(不能在循环内)
4.请跟踪调试产生的随机数,是多少?是否满足你的期望?
5.如随机数产生没有问题,后续计算出现0,则不是随机数的问题。请跟踪 wb1 和 cm(5)

712

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
607 元
贡献
311 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

板凳
发表于 2014-3-23 12:29:49 | 显示全部楼层
  WB_X=10000*(-1.0*(ran))**(1.0/5)

我建议你写为

  WB_X=-10000*((ran))**(1.0/5)

虽然数学上负数允许开奇次方,但是由于 0.1/5 本身存在是浮点数,可能有误差,编译器无法准确判断一个数是否为奇数。

因此建议把负号,提到开方前面去。

后面的 ET1=ET1*(-1.0*(ran))**(1.0/5) 同理

712

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
607 元
贡献
311 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

地板
发表于 2014-3-23 21:13:55 | 显示全部楼层
客气了,我没做过二次开发,实在帮不上太多。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-5-4 09:16

Powered by Tencent X3.4

© 2013-2024 Tencent

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