已知密度函数f(x)=0.5sinx (0

风雨相随哦 1年前 已收到1个回答 举报

文龙8328 幼苗

共回答了13个问题采纳率:100% 举报

设要生成n=10000个随机数:n = 10000;
y = int('sin(x)/2',0,sym('t'))
t = rand(n,1);
x = subs(finverse(y),t);
hist(x,30)最后一句用于画分布图,对结果进行检验. 上面的方法把求反函数的过程放在程序里面了,也可以事先求出累计概率分布函数(cumulative distribution function,CDF)的反函数,即x = pi-acos(-1+2*y)然后直接计算:n = 10000;
y = rand(n,1);
x = pi-acos(-1+2*y);
hist(x,30)如果要生成矩阵或多维数组,只需要修改rand的参数即可.

1年前

7
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 2.755 s. - webmaster@yulucn.com