%常数a=0.5
syms x y f R R0 X a Y;
X=0;
a=0.5;
while X==0 %不满足条件时,转回,重新抽取随机数。
u1=unifrnd(0,1,1);%在U(0,1)分布中抽取u1。
R=unifrnd(0,1,1);%h(x)的逆变化满足U(0,1)分布,故先在U(0,1)分布中抽取R。
R0=int(x^(a-1)/(1/a+1/exp(1)),0,1);%求出y=1时,R的值为R0,作为判断条件(由于H(y)是单调增的)。
if('R<=R0')
f=int(x^(a-1)/(1/a+1/exp(1)),0,y);
Y=solve(f-R);
Y=vpa(Y,4);
if ('u1<=exp(-Y)')
X=Y;
else
X=0;
end;
elseif('R>=R0')
f=int(exp(-x)/(1/a+1/exp(1)),1,y)+R0;
Y=solve(f-R);
Y=vpa(Y,4);
if ('u1<=Y^(a-1)')
X=Y;
else
X=0;
end;
end;
end
X %为抽取的随机数


雷达卡





京公网安备 11010802022788号







