全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
3712 5
2010-03-23
悬赏 20 个论坛币 未解决
本人现在用winbugs计算一个正态分布随机变量的自我n重卷积,请问具体怎么弄??

比如一个随机变量S~N(100,100000)的正态分布,2重卷积是S +S, 这里+号表示卷积分
n重卷积是S+S+S。。。+S  (n个)

请问这个问题用winbugs怎么解决。。。

谢谢赐教
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2010-4-5 09:35:54
m<-10000
n<-100
s<-m
Z<-m
for (i in 1:m){

u1=runif(n)
u2=runif(n)
R=sqrt(-2*log(u2))
theta=2*pi*u1
z=R*cos(theta)
Z(i)=sum(z)
s<- 100+Z*sqrt(100000)
}
plot(density(s))
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-4-6 09:38:53
程序有点怪,是不是写错了.
for (i in 1:m){
your code
}
但都没用到[i]
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-4-6 10:21:36
写掉了,改了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-4-6 19:29:40
#我把m设为5,方便确认
#你再视需要调整
m=5
n<-100
Z<-m
for (i in 1:m){
u1=runif(n)
u2=runif(n)
R=sqrt(-2*log(u2))
theta=2*pi*u1
z=R*cos(theta)
Z[i]=sum(z)
s<- 100+Z*sqrt(100000)
}
Z
> Z
[1]   3.951455 -14.365024 -19.291418   2.689245  16.993109
s
[1]  1349.560 -4442.619 -6000.482   950.414  5473.693
h=s
p=length(s)
q=length(h)
X=c(s,rep(0,q))
H=c(h,rep(0,p))
Y=rep(0,q+p-1)
for (i in 1:(q+p-1)){
  Y[i]=0
  for (j in 1:p){
  if(i-j+1>0) Y[i]=Y[i]+X[j]*H[i-j+1]}
}
Y
> Y
[1]   1821312 -11991162   3540843  55880992  42335284 -60040949 -64786306
[8]  10404549  29961315

%%%%%%%
结果与matlab相同
ans =

  1.0e+007 *

  Columns 1 through 8

    0.1821   -1.1991    0.3541    5.5881    4.2335   -6.0041   -6.4786    1.0405

  Column 9

    2.9961
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-4-7 00:11:50
谢谢回复,请问如果我要产生x~0:inf的随机数字,在normal(100,100000)上产生,在R怎么写呢?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群