首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MATLAB中定义自己的概率密度函数

在MATLAB中定义自己的概率密度函数
EN

Stack Overflow用户
提问于 2012-03-10 00:38:44
回答 3查看 6K关注 0票数 5

是否可以在MATLAB或Octave中定义自己的概率密度函数,并将其用于生成随机数?

MATLAB和Octave有一些默认函数,比如rand,randn,从均匀分布中随机抽取点,或者正态分布,但似乎没有文档说明如何定义我自己的概率密度函数。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-10 02:04:21

从任意随机分布中采样并不总是微不足道的。对于众所周知的发行版,有实现它们的技巧,正如Oli所说,大多数都是在stats工具箱中实现的。

如果您感兴趣的分布形式复杂,有许多采样算法可以帮助您,例如,rejection sampling、切片采样、Metropolis–Hastings algorithm

如果你的分布是离散的,或者可以用离散分布很好地近似,那么你可以只使用randsamp进行多项式抽样。

票数 8
EN

Stack Overflow用户

发布于 2012-03-10 00:42:46

如果你有stats工具箱,你可以使用random(),因为它内置了很多有用的PDF。

票数 1
EN

Stack Overflow用户

发布于 2012-03-10 06:33:11

最近我不得不这样做了几次,这并不是一件容易做到的事情。我最喜欢的技术是使用Inverse transform sampling

想法很简单:

  1. 创建cdf
  2. 使用映射到CDF值的RV的统一随机数。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9637703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档