24小时热门版块排行榜    

查看: 525  |  回复: 5
当前主题已经存档。
【有奖交流】积极回复本帖子,参与交流,就有机会分得作者 anxt2006 的 5 个金币

anxt2006

木虫 (正式写手)

[交流] [求助]fortran里如何产生从0到1的加权的随机数?

fortran里如何产生从0到1的加权的随机数?我想用蒙特卡罗积分,但是我的被积函数有尖峰,所以想找一个加权的随机数产生程序,在尖峰的地方多取一些点,在其他地方少取一些点。请高手指教。

[ Last edited by kuhailangyu on 2008-12-9 at 10:32 ]
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

juloong

木虫 (职业作家)

X射线衍/散射测试

F里面有现成的函数
你查一下函数表
2楼2008-10-13 18:21:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

maomao1210

金虫 (正式写手)

SUBROUTINE(JIE,X)
IMPLICIT REAL*8 (A-H,O-Z)
         INTEGER*4 I(2)
C            READ(*,*) JIE
            IF (JIE.EQ.0) GO TO 1
         I(1)=0
         I(2)=JIE
  1      IX=1490*I(2)+3805*I(1)
         IE=3805*I(2)
         I(2)=IE-IE/32768*32768
         IX=IX-IX/32768*32768+IE/32768
         I(1)=IX-IX/32768*32768
         X=(I(1)*32768+I(2))*9.3132258D-10
         END
RETURN
END
这样就行了,你调用该程序的时候,给定一个种子JIE,然后这个程序就会给你一个数值X。

[ Last edited by maomao1210 on 2008-10-14 at 22:15 ]
3楼2008-10-13 22:14:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

maomao1210

金虫 (正式写手)

楼主尝试一下就知道了。呵呵。这个程序还是很好用的
4楼2008-10-14 08:33:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

anxt2006

木虫 (正式写手)

3楼的程序看不懂

我看不懂你的这个程序,如何实现循环呢?怎么被蒙特卡罗积分调用呢?请指教
5楼2008-10-14 15:20:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

maomao1210

金虫 (正式写手)

我给修改了一下,看看就知道了。

[ Last edited by maomao1210 on 2008-10-14 at 22:16 ]
6楼2008-10-14 22:08:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 anxt2006 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见