24小时热门版块排行榜    

查看: 3788  |  回复: 9
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

宇天旅梦

铜虫 (小有名气)

[求助] exp中有循环变量,结果出现infinity,怎么处理

输出结果为
<-infinity,infinity>
<-infinity,infinity>
<-infinity,infinity>
……          ……
问题1:这怎么处理?
问题2:结果为什么会有两列,而不是一列?

(初学FORTRAN,还请高手指教)

代码如下:

      program abc
      real bx(100),by(100)

      integer k,n
      complex i,q
        open(10,file='haha111.dat',status='unknown')
        i=(0,1)
                                 
         do 3 n=0,99
            bx(n+1)=bx(n)+1
            by(n+1)=by(n)+2
3        continue
      
      do 2 k=1,99
        p=sqrt((sqrt(bx(k)**2+by(k)**2)-50/6.582122e-16)**2-by(k)**2)
   
      q=exp(i*2+p)

        write(*,*)q       
2     continue
      close(10,status='keep')
        end
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

绿遍山原

铜虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
引用回帖:
9楼: Originally posted by 宇天旅梦 at 2013-09-03 09:07:44
那是怎么?请详细说一下...

你的式子里50/6.582122e-16比其他项大很多,所以p基本就是这个值附近,所以q指数项的实部基本就是50/6.582122e-16,指数项这么大的数值肯定溢出了。
要夢遊,不要催眠。
10楼2013-09-03 10:56:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 10 个回答

jerkwin

专家顾问 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
do 3 n=0,99
            bx(n+1)=bx(n)+1
            by(n+1)=by(n)+2
3        continue
循环有问题, bx(0)没有定义
两列那是复数的实部和虚部
2楼2013-09-03 07:03:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

宇天旅梦

铜虫 (小有名气)

引用回帖:
2楼: Originally posted by jerkwin at 2013-09-03 07:03:11
do 3 n=0,99
            bx(n+1)=bx(n)+1
            by(n+1)=by(n)+2
3        continue
循环有问题, bx(0)没有定义
两列那是复数的实部和虚部

改了一下,定义bx(0)=1
                     by(0)=10
可还是出现相同的情况
3楼2013-09-03 08:29:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bennett_14

木虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
q也没有定义啊,q是啥???

[ 发自小木虫客户端 ]
君子当自强不息,死而后已!
4楼2013-09-03 08:31:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见