| 查看: 3733 | 回复: 2 | ||
[求助]
sin函数的傅里叶变换
|
|
我想做sin函数的傅里叶变换 可是程序没有error,但是运行就说那个exe文件停止工作,程序如下,好像很多问题的样子,新手求指教! program main use textgraphlib implicit none real,parameter::endx=3.1,startx=0.0,xinc=0.1 integer,parameter::maxx=32,maxy=20 real ::x,px=0.0,py=0.0 integer i,num,fx,fy,xx real,allocatable::datax( ,datay(![]() x=startx do i=1,maxx x=px py=sin(x) datax(i)=px datay(i)=py px=px+xinc end do call four1(datay,16,1) call setscreen(maxx,maxy) do xx=1,maxx fy=datay(xx) call putchar(xx,fy) end do call updatescreen() stop end program subroutine four1(data1,nn,isign) integer isign,nn real data1(2*nn) integer i,istep,j,m,mmax,n real tempi,tempr double precision theta,wi,wpi,wpr,wr,wtemp n=2*nn j=1 do i=1,n,2 if(j.gt.i)then tempr=data1(j) tempi=data1(j+1) data1(j)=data1(i) data1(j+1)=data1(i+1) data1(i)=tempr data1(i+1)=tempi end if m=n/2 1 if((m.ge.2).and.(j.gt.m)) then j=j-m m=m/2 goto 1 end if j=j+m end do mmax=2 2 if(n.gt.mmax) then istep=2*mmax theta=6.28318530717959d0/(isign*mmax) wpr=-2.d0*sin(0.5d0*theta)**2 wpi=sin(theta) wr=1.d0 wi=0.d0 do m=1,mmax,2 do i=m,n,istep j=i+mmax tempr=sngl(wr)*data1(j)-sngl(wi)*data1(j+1) tempi=sngl(wr)*data1(j+1)+sngl(wi)*data1(j) data1(j)=data1(i)-tempr data1(j+1)=data1(i+1)-tempi data1(i)=data1(i)+tempr data1(i+1)=data1(i+1)+tempi end do wtemp=wr wr=wr*wpr-wi*wpi+wr wi=wi*wpr+wtemp*wpi+wi end do mmax=istep goto 2 end if return end |
» 猜你喜欢
面上的水很深
已经有5人回复
生命口C13面上会评时间
已经有11人回复
内心匮乏
已经有16人回复
生命口面上会评结束了吗大家有知道结果吗?现在还没有结果正常不?
已经有9人回复
投英文期刊如何查重
已经有6人回复
不要再数国自然申请书的 filecode 的分隔符个数了
已经有21人回复
伯胺上甲基求助
已经有7人回复
跨出版社商投稿
已经有5人回复
5个%2F,非固定段22个字母
已经有7人回复
生生命学部会评
已经有4人回复
virtualzx
木虫 (著名写手)
- 应助: 263 (大学生)
- 金币: 7161.3
- 红花: 54
- 帖子: 1605
- 在线: 317.6小时
- 虫号: 2069080
- 注册: 2012-10-18
- 性别: GG
- 专业: 理论和计算化学
2楼2012-11-03 05:03:53
3楼2012-11-03 18:45:57











,datay(
回复此楼