作者microcat (微喵)
看板Fortran
标题Re: [问题] fortran产生(常态、卡方)随机乱数的方法?
时间Thu Mar 19 14:59:56 2009
※ 引述《microcat (微喵)》之铭言:
: 请问如何用 fortran 产生 常态分配 及 卡方分配 的乱数
: normal chi-square
自己写了一个选取常态变数的程式
可是总觉得怪怪的(非标准常态分配 N(0,1) !)
因为希望 mean STD 可以自己决定
如程式中,可自己设定成 N(5,2)
可是程式执行的结果总是怪怪的
请各位帮个忙,谢谢
Program normal
use msimsl
IMPLICIT NONE
integer I,j,M,NR,ISEED,NOUT,XM,XSTD
real R(100),RAND(5)
DO 100 I=1,100 !→产生样本的组数为M 组
DO 50 J=1,5 !→产生每组有5 个随机常态的样本点
NR =5
XM=5
XSTD=2
CALL RNSET(ISEED)
CALL UMACH(2,NOUT)
R(I) =RNNOF()
CALL RNGET(ISEED)
CALL RNNOR(NR,R(5)) !→产生常态分配的乱数
RAND(J)=R(5)
50 CONTINUE
WRITE (NOUT,99999) RAND
99999 FORMAT ('Normal Random Deviates: ', 5F8.4)
100 CONTINUE
end Program normal
以上程式可编译执行
可是怪怪的,谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.109.228.61