就像在大多数物理问题中一样,我的情况也有边界,因此我想根据截断的高斯分布生成(使用 R)随机数。
这个想法是这些数字的平均值不应该取决于边界。我已经找到了 truncnorm 包,但它没有完成这项工作:
例如,这里是平均值为 0.1 和宽度为 0.1 的高斯的情况,但限制在 0 和 1 之间:
install.packages("truncnorm")
library(truncnorm)
vec=rtruncnorm(n=100000,a=0,b=1,mean=0.1,sd=0.1)
hist(vec,breaks=100)
mean(vec)
[1] 0.1289061
如您所见,最终平均值不是作为输入给出的平均值,通过使用标准 rnorm 函数并对结果进行子集化,我可以获得相同的结果。
我不想重新发明轮子,所以欢迎任何关于进一步包装的想法或建议!谢谢!