文龙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