[a,b]内均匀分布的随机数x的生成有非常成熟的程序,其归一化条件可以表示为
那么,如何生成[a,b]内任意分布f(x)的随机数x呢?我们从归一化条件的类别入手。任意分布f(x)的随机数x的归一化条件可以表示为
假定有函数F(x),其微商(导数)为f(x),即d(F(x))=f(x)dx,那么上述归一化条件可以写成
其中y=F(x)。与均匀分布随机数的归一化条件比较可以发现,y是[F(a),F(b)]内均匀分布的随机数。所以生成[a,b]内任意分布f(x)的随机数做法如下:
1. 求f(x)的不定积分F(x);
2. 生成[F(a),F(b)]内的均匀分布的随机数y;
3. 求解F(x)=y得到x。
此x就是[a,b]内满足分布f(x)的随机数。
需要注意的是,生成均匀随机数的时候,区间是[F(a),F(b)],
不是[a,b]!兄弟我就是没注意这一点,导致了贻笑大方的错误……
https://blog.sciencenet.cn/blog-117333-563857.html
上一篇:
射电望远镜汇聚可见光的性能下一篇:
资本、知识和责任