| 查看: 3658 | 回复: 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 |
» 猜你喜欢
所感
已经有3人回复
要不要辞职读博?
已经有7人回复
不自信的我
已经有11人回复
北核录用
已经有3人回复
实验室接单子
已经有3人回复
磺酰氟产物,毕不了业了!
已经有8人回复
求助:我三月中下旬出站,青基依托单位怎么办?
已经有10人回复
26申博(荧光探针方向,有机合成)
已经有4人回复
论文终于录用啦!满足毕业条件了
已经有26人回复
2026年机械制造与材料应用国际会议 (ICMMMA 2026)
已经有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(
回复此楼