在Matlab中找到两个正态分布的交集

时间:2016-09-25 11:12:30

标签: matlab normal-distribution

我刚刚开始在Matlab工作,并且在理解它是如何工作方面遇到了一些麻烦。

我试图返回两个高斯分布的交集,平均值为0和1,方差为0.5。我使用以下代码生成两个发行版:

mu1 = 0;
mu2 = 1;

sigma1 = sqrt(0.5);
sigma2 = sqrt(0.5);

dist1 = makedist('normal',mu1,sigma1);
dist2 = makedist('normal',mu2,sigma2);

我发现在文档中您可以使用以下代码生成概率密度函数:

pdf(dist1,[range])

问题是我没有真正的范围,我只是想找到这两个分布的交集。在Matlab中最好的方法是什么?

1 个答案:

答案 0 :(得分:2)

我知道你想要的是交叉点,而不是两条曲线下面的区域。如果这是准确的,那么使用匿名函数会更容易,

mu1 = 0;
mu2 = 1;
sigma1 = sqrt(0.5);
sigma2 = sqrt(0.5);
dist1 =@(x) exp(-(x-mu1).^2 / (2*sigma1^2)) / sqrt(2*sigma1^2*pi);
dist2 =@(x) exp(-(x-mu2).^2 / (2*sigma2^2)) / sqrt(2*sigma2^2*pi);
fzero(@(x) dist1(x) - dist2(x), rand * (mu1 - mu2) + (mu1 + mu2))

    0.500