如何使用erf来计算matlab中的概率?

时间:2015-07-29 20:46:59

标签: matlab statistics probability

给定最小值和最大值以及N个项目,我需要计算N个项目的总和大于或等于输入值LM的概率。函数句柄:

function Pr = LoadPr(Wmin,Wmax,N,LM)

另一个功能:

function [muL, sigmaL, L ] = plane(Wmin,Wmax,N,M)
    [muW,sigmaW] = package(Wmin,Wmax);
    //  This calculates mu and sigma for a single item
    muL = muW*N;
    sigmaL = sigmaW*N^0.5;
    L = normrnd(muL,sigmaL,1,M);
end

此函数计算mu和sigma以及L是1 x M. 随机生成的数组,使用sigmaL和muL模拟随机生成结果的M个结果,给出与前一个函数类似的参数。

我还想使用erf和/或erfc函数。 一个例子:

Wmin = 2; Wmax = 10; N = 10000; LM = 60400;
Pr = LoadPr(Wmin,Wmax,N,LM )
Pr =
    0.0416

谢谢!

1 个答案:

答案 0 :(得分:2)

范围[min,max]中的N个均匀分布值的总和可近似为正态分布(对于N> 30),其均值为0.5*N*(min+max)且标准差为$ sqrt(N *) (最大值 - 最小值)/ 12)$。

现在高斯的累积分布由

给出
phi = 0.5*(1+erf((x-mu)/(sqrt(2)*sigma));

这意味着0和6之间的32个值之和的概率将与

一起分配
mean = 96
sigma = sqrt(32*6/12) = 4

总和小于88的概率将由

给出
p = 0.5*(1+erf((88-96)/(sqrt(2)*4)) = 2.3%