我是MATLAB的初学者,试图用它来帮助我理解随机信号,我正在做一些正态概率密度函数计算,直到我遇到这个问题:
编写一个MATLAB程序来计算概率Pr(x1 ≤ X ≤ x2)
如果X是任意x1
和x2
的高斯随机变量。
请注意,您必须指定高斯随机的mean
和variance
变量
我通常使用内置的normpdf
函数当然选择我的均值和方差,但对于这一个,因为它有一个范围我不知道我能做什么来找到答案
Y = normpdf(X,mu,sigma)
帮助将不胜感激
答案 0 :(得分:3)
如果你从概率论中回忆起来,你知道Cumulative Distribution Function总结了从-infinity
到某一点x
的概率。具体而言,在特定点F(x)
评估的随机变量P
的概率分布X
的CDF x
定义为:
请注意,我假设我们正在处理离散情况。另外,我们将其称为左尾和,因为它将从分布左侧到点x
的所有概率相加。因此,这会将曲线下方的区域定义为点x
。
现在,您的问题是要找到某个范围x1 <= x <= x2
之间的概率,而不仅仅是使用左尾总和(<= x
)。现在,如果x1 <= x2
,这意味着终点为x2
的总面积,或所有事件达到并包括x2
的概率,也是部分由x1
定义的终点定义的区域的>。因为您希望概率介于某个范围之间,所以您需要累积x1
和x2
之间发生的所有事件,因此您希望PDF曲线下面的区域介于此范围之间。此外,您希望区域更大而不是x1
且小于x2
。
这是一个图例:
http://reliawiki.com/images/0/0b/Chp3pdf.png Source: ReliaWiki
上图是高斯分布函数的PDF,而下图是高斯分布的CDF。您会看到,如果x1 <= x2
,x1
点定义的区域也由x2
处的点捕获。这是一个更好的图表:
http://work.thaslwanter.at/Stats/html/_images/PDF.png Source: Introduction to Statistics
这里CDF是连续的而不是离散的,但结果仍然是相同的。如果您希望区域介于两个区间之间,并且最终需要两个区间之间的概率,则需要将CDF值设为x2
并减去 CDF价值x1
。您需要剩余区域,因此您只需要减去 CDF值并最终减去左尾区域,因此:
因此,要计算高斯分布的CDF,请使用normcdf
并指定高斯分布的均值和标准差。因此,您只需要这样做:
y = normcdf(x2, mu, sigma) - normcdf(x1, mu, sigma);
x1
和x2
是您想要计算概率总和的区间值。
答案 1 :(得分:1)
您可以使用erf
,
mu = 5;
sigma = 3;
x1 = 3;
x2 = 8;
p = .5*(erf((x2-mu)/sigma/2^.5) - erf((x1-mu)/sigma/2^.5));
error function
在MATLAB中定义如下,