首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >概率密度函数

概率密度函数
EN

Stack Overflow用户
提问于 2012-12-04 02:10:19
回答 1查看 1.4K关注 0票数 1

如何在MATLAB中模拟概率密度函数

代码语言:javascript
复制
fx(x)={ x/8    0<=x<=4
      {   0     Other
EN

回答 1

Stack Overflow用户

发布于 2012-12-04 04:00:09

对任意概率密度函数进行了如下仿真:

1)求出了逆累积分布。

2)从均匀的0,1分布进行模拟。

3)将均匀的0,1数插入逆累积分布。

在你的情况下,你有一个很容易处理的概率密度,这让我怀疑这是一个家庭作业问题。考虑到您没有发布任何代码表明您试图自己解决这个问题,我不打算只为您写出答案。

相反,你为什么不尝试自己推导逆累积分布呢?首先,您需要得到累积分布。这可以通过求你的概率密度从负无穷到x的积分来实现,在你的情况下,这个积分相当于从0到x的积分。一旦你这样做了,你就需要找到它的逆。示例这里应该足以向您展示如何为您的简单案例做到这一点。如果达到这个程度,那么使用rand(100, 1)来模拟从均匀的0,1密度中抽取的100个图形,然后将这些数字插入到逆累积分布中。

如果你遇到任何问题,你可以随意编辑你的问题来添加,并在这个答案上留下评论,我会帮你解决的。下个小时左右我就来了。

干杯。

更新:i认为OP的作业现在可能已经到期,所以为了完整起见:概率密度的积分,即累积分布,是f(x) = ( 1 /16) x^2。注意,当x= 0,f(x) = 0,当x= 4,f(x) =1时。这表明这个问题正确地描述了概率密度的区域。其次,f(x)表示g(x) =4* x^(1/2)的逆of。因此:

代码语言:javascript
复制
MyInverseCDF = @(x) (4 * sqrt(x));
MySimulatedDraw = MyInverseCDF(rand(100, 1));

我们可以使用以下方法从视觉上验证一切是否正常:

代码语言:javascript
复制
hist(MySimulatedDraw);

另一件事,这里有一个链接到另一个相关的问题:defining-your-own-probability-distribution-function-in-matlab

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13695056

复制
相关文章

相似问题

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