1 / 3
连续型分布随机数的产生(反函数法)
一、定理:设随机变量X的分布函数为()XFx,其()XFx为严格单调的
连续函数,其反函数1()XxFy存在,则()XYFX服从(0,1)上的均匀
分布(0,1)U。
也即,若~(0,1)YU,则1()~()XXXFYFx
二、例
设~()XExp,分布函数为10()00xXexFxx
则,1~(0,1)XUeU,或若~(0,1)UU,11ln~()1XExpU
产生()Exp分布随机数的算法
(1)产生~(0,1)uU
(2)计算111lnln11xuu
x
即为()Exp分布的随机数。
如:产生10000个(14)Exp分布随机数的R程序代码为
lamda<-1/4
N<-10000
M<-c(rep(0,N))
for (k in 1:N) {
u<-runif(1)
x<--log(1-u)/lamda
M[k]<-x
}
M
hist(M)
mean(M)
var(M)
2 / 3
实验六
2
(10)
分布随机数的产生
编制程序产生10000个2(10)分布的随机数,并完成
(1)绘制该10000个随机数的直方图;
(2)求该10000个随机数的样本均值及样本方差。
2
2
222222
()(1,)1()(,)221121()(1,)(,)(2)2222(10)(2)(2)(2)(2)(2)(,)ExpGannGaExpGaGaGan
############卡方分布随机数##############
lamda<-1/2
N<-10000
M<-c(rep(0,N))
for(K in 1:N){
{n<-5
m<-c(rep(0,n))
for(k in 1:n){
u<-runif(1)
x<--log(1-u)/lamda
m[k]<-x
m1<-sum(m[1:k])
}
m1
}
M[K]<-m1
}
M
hist(M)
mean(M)
var(M)
############指数分布随机数###########
lamda<-1/2
N<-10000
3 / 3
M<-c(rep(0,N))
for(k in 1:N){
u<-runif(1)
x<--log(1-u)/lamda
m
M[k]<-x
}
M
hist(M) ### 画直方图 ###
mean(M) ### 均值 ###
var(M) ### 方差 ###