【问题标题】:Find intersection of two normal distributions in Matlab在 Matlab 中查找两个正态分布的交点
【发布时间】:2016-09-25 11:12:29
【问题描述】:

我刚开始在 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 中最好的方法是什么?

【问题讨论】:

标签: matlab normal-distribution


【解决方案1】:

我知道您想要的是交点,而不是两条曲线下方的区域。如果准确的话,使用匿名函数会更容易,

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

【讨论】:

    猜你喜欢
    • 2018-09-04
    • 1970-01-01
    • 1970-01-01
    • 2014-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多