Fortran Coder

查看: 8897|回复: 5
打印 上一主题 下一主题

[流程控制] 关于循环问题的求助贴

[复制链接]

26

帖子

8

主题

0

精华

熟手

F 币
123 元
贡献
78 点
跳转到指定楼层
楼主
发表于 2014-11-4 15:35:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大神:主要是设置了一个循环解方程组的程序,但是问题是,在我设置的时候t应该是从0-12以0.12的步长做循环,但是最后运行出来的效果确实每次的步长不是0.12,而少了0.000000001左右量级,然后累加起来误差越来越大。。求大神解决。
[Fortran] 纯文本查看 复制代码
PROGRAM test
 IMPLICIT NONE
     REAL,PARAMETER::Q=1.0,C=1.0
     REAL t,X,Y,Z,PX,PY,PZ
     DO t=0.0,12.0,0.12000000
     Z=(((2-2*C**2+Q**2)/(4*C))*(t-Z))-(((Q**2)/(8*C**2))*sin(2*t-2*Z))
     Y=0
     X=(Q/C)*(cos(t-Z)-1)
     PX=Q*sin(t-Z)
     PY=0
     PZ=(C**2-1)/(2*C)-(Q**2)*((sin(t-Z))**2)/(2*C)
     open(unit=11,file='result2.txt')
     write(11,100)t,PX,PY,PZ,X,Y,Z
     100 FORMAT(1X,F20.8,6F12.8,6F12.8,6F12.8,6F12.8,6F12.8,6F12.8)

     end do
 END

分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

736

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
700 元
贡献
359 点

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

沙发
发表于 2014-11-4 16:03:33 | 只看该作者
你最大的问题是 Z 没有初始值。

我感觉不到你的误差积累。单精度浮点数只有 6-7 位有效数字的精度,这一点请时刻铭记。如果觉得不够,可以考虑用双精度浮点。

26

帖子

8

主题

0

精华

熟手

F 币
123 元
贡献
78 点
板凳
 楼主| 发表于 2014-11-4 16:20:09 | 只看该作者
首先我觉得Z不需要初值,因为第一个方程,目的是需要通过t,c,q三个值确定Z的值。。所以觉得这个不是最大的问题。

另外我的的问题是这样子的,就是按理说 t变量的取值。t=0.00000000,0.12000000,0.2400000000,0.36000000这样下去,但是实际编译出来的结果是t=0.00000000,0.11999999,0.23999998,0.36999996……这个样子

26

帖子

8

主题

0

精华

熟手

F 币
123 元
贡献
78 点
地板
 楼主| 发表于 2014-11-4 16:20:37 | 只看该作者
楚香饭 发表于 2014-11-4 16:03
你最大的问题是 Z 没有初始值。

我感觉不到你的误差积累。单精度浮点数只有 6-7 位有效数字的精度,这一点 ...

首先我觉得Z不需要初值,因为第一个方程,目的是需要通过t,c,q三个值确定Z的值。。所以觉得这个不是最大的问题。

另外我的的问题是这样子的,就是按理说 t变量的取值。t=0.00000000,0.12000000,0.2400000000,0.36000000这样下去,但是实际编译出来的结果是t=0.00000000,0.11999999,0.23999998,0.36999996……这个样子

736

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
700 元
贡献
359 点

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

5#
发表于 2014-11-4 17:44:06 | 只看该作者
Z=(((2-2*C**2+Q**2)/(4*C))*(t-Z))-(((Q**2)/(8*C**2))*sin(2*t-2*Z))

等号右边有 Z,计算时没有值。会导致不可预料的后果。

单精度浮点精度问题,我在2楼已描述过。

26

帖子

8

主题

0

精华

熟手

F 币
123 元
贡献
78 点
6#
 楼主| 发表于 2014-11-5 21:45:30 | 只看该作者
好的。谢谢啦。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-12-22 22:41

Powered by Tencent X3.4

© 2013-2024 Tencent

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