是否可以在MATLAB或Octave中定义自己的概率密度函数,并将其用于生成随机数?
MATLAB和Octave有一些默认函数,比如rand,randn,从均匀分布中随机抽取点,或者正态分布,但似乎没有文档说明如何定义我自己的概率密度函数。
发布于 2012-03-10 02:04:21
从任意随机分布中采样并不总是微不足道的。对于众所周知的发行版,有实现它们的技巧,正如Oli所说,大多数都是在stats工具箱中实现的。
如果您感兴趣的分布形式复杂,有许多采样算法可以帮助您,例如,rejection sampling、切片采样、Metropolis–Hastings algorithm。
如果你的分布是离散的,或者可以用离散分布很好地近似,那么你可以只使用randsamp进行多项式抽样。
发布于 2012-03-10 00:42:46
如果你有stats工具箱,你可以使用random(),因为它内置了很多有用的PDF。
发布于 2012-03-10 06:33:11
最近我不得不这样做了几次,这并不是一件容易做到的事情。我最喜欢的技术是使用Inverse transform sampling。
想法很简单:
https://stackoverflow.com/questions/9637703
复制相似问题