楼主: snowave926
3766 5

winbugs 计算n重卷积求教 [推广有奖]

  • 0关注
  • 1粉丝

已卖:477份资源

博士生

62%

还不是VIP/贵宾

-

威望
0
论坛币
3422 个
通用积分
6.0834
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
6000 点
帖子
254
精华
0
在线时间
308 小时
注册时间
2010-1-9
最后登录
2024-11-25

楼主
snowave926 发表于 2010-3-23 22:09:11 |AI写论文
20论坛币
本人现在用winbugs计算一个正态分布随机变量的自我n重卷积,请问具体怎么弄??

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

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

谢谢赐教

关键词:winbugs WINBUG BUGS bug Win 求教 winbugs 卷积

沙发
snowave926 发表于 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))

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

板凳
snowave926 发表于 2010-4-6 10:21:36
写掉了,改了

报纸
epoh 发表于 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

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

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-25 02:55