Matlab - 两个正态分布之间的交点

Matlab - intersection point between two normal distributions

我正在尝试计算给定 H0 和 H1 的特定检测器的误报概率和检测概率。为此,我计算了 H0 和 H1 的两个 pdf。但是要计算这些概率,我需要知道两个 pdf 相交的位置,以便计算 H1 的右尾和 H0 的左尾。

你能给我任何提示来计算 Matlab 中两个正态分布之间的交点吗?

编辑:

正如 Ander Biguri 所言,我尝试将交叉点象征性地计算为:

mu1 = 24;
mu2 = 25;
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))

但我知道交叉点是“70”。我应该正常化吗?我该如何解释这个结果?

编辑 2:

我还尝试了 Douglas Schwarz Fast and Robust Curve Intersections 开发的神奇功能。但是我得到了太多的交叉点(因为正如预期的那样,两条尾巴在接近于零时交叉了几次)。

作为@Ander Biguri 评论的补充material。 (无法在那里发表评论)

请使用以下代码:

fzero(@(x) dist1(x) - dist2(x),25)

替换 "Edit" 部分的最后一行。它仅更改名为 "x0" 的第二个参数(fzero 开始的点)。

@(x) dist1(x) - dist2(x) 有很多零点。 fzero 从 "x0" 开始并以数字方式找到函数的第一个零(第一个 x 满足 dist1(x) - dist2(x) < Error,实际上。)。如果你想在数值上找到函数的特定零点,你应该给 fzero 一个合适的起点。