已知某概率密度函数,如何产生一服从该分布的随机数
已知某概率密度函数,如何产生一服从该分布的随机数|MATLAB 混合编程与应用发布|MATLAB技术论坛
我自己想了个办法,给你一个具体的例子吧
要求生成满足概率分布为f(x)=sin(x)^2/(x)^2*1/pi的随机数列
while i n % n为你要生成的随机数个数 %
x1=2*(rand(1)-0.5)*8; % 这个地方根据自己函数需要设定,但生成的 x1 必须在定义域内均匀分布 %
yy=sin(x1)^2/(x1)^2*1/pi; % 这是一个具体的概率密度函数的例子,你可以代入自己的概率密度函数 %
if subs(yy) rand(1); % 这里是这个办法的关键 %
x(i,1)=x1;
i=i+1;
else
i=i;
end
end
得到的 x 即是一个满足给定的概率密度分布的一维数列
我自己想了个办法,给你一个具体的例子吧
要求生成满足概率分布为f(x)=sin(x)^2/(x)^2*1/pi的随机数列
while i n % n为你要生成的随机数个数 %
x1=2*(rand(1)-0.5)*8; % 这个地方根据自己函数需要设定,但生成的 x1 必须在定义域内均匀分布 %
yy=sin(x1)^2/(x1)^2*1/pi; % 这是一个具体的概率密度函数的例子,你可以代入自己的概率密度函数 %
if subs(yy) rand(1); % 这里是这个办法的关键 %
x(i,1)=x1;
i=i+1;
else
i=i;
end
end
得到的 x 即是一个满足给定的概率密度分布的一维数列