2

我是 MATLAB 的初学者,试图用它来帮助我理解随机信号,我正在做一些正态概率密度函数计算,直到遇到这个问题:

编写一个 MATLAB 程序来计算Pr(x1 ≤ X ≤ x2) 如果 X 是任意x1和的高斯随机变量的概率x2

请注意,您必须指定高斯随机变量的meanvariance

我通常使用内置normpdf函数当然选择我的均值和方差,但是对于这个,因为它有一个范围,我不确定我能做些什么来找到答案

 Y = normpdf(X,mu,sigma)
4

2 回答 2

3

如果您从概率论中回想一下,您就会知道累积分布函数总结了从-infinity直到某个点的概率x。具体而言,在某一点评估随机变量F(x)的概率分布的 CDF定义为:PXx

请注意,我假设我们正在处理离散情况。另外,我们称其为左尾和,因为它将分布左侧到点 的所有概率相加x。因此,这定义了曲线下方直到点的区域x

现在,您的问题是要找到某个范围之间的概率x1 <= x <= x2,而不仅仅是使用左尾和 ( <= x)。现在,如果x1 <= x2,这意味着端点所在的总面积x2,或直到并包括 的所有事件的概率x2,也是定义在 的端点所定义的面积的一部分x1。因为您想要某个范围之间的概率,所以您需要累积在x1和之间发生的所有事件,x2因此您需要在此范围之间的 PDF 曲线下面积。此外,您希望拥有大于x1和小于的面积x2

这是一个图形示例:

资料来源:ReliaWiki

上图为高斯分布函数的 PDF,下图为高斯分布的 CDF。您会看到,如果x1 <= x2,点 定义的区域x1点 捕获x2。这是一个更好的图表:

资料来源:统计学概论

这里的 CDF 是连续的而不是离散的,但结果还是一样的。如果您想要两个区间之间的区域以及两个范围之间的最终概率,则需要在 处取 CDF 值x2减去在 处的 CDF 值x1。您想要剩余的区域,因此您只需减去CDF 值并最终减去左尾区域,因此:

因此,要计算高斯分布的 CDF,请使用normcdf并指定高斯分布的均值和标准差。因此,您只需要这样做:

y = normcdf(x2, mu, sigma) - normcdf(x1, mu, sigma);

x1并且x2是您要计算概率总和的区间值。

于 2014-12-03T15:49:49.620 回答
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 中是这样定义的,

在此处输入图像描述

于 2014-12-03T15:48:40.863 回答