在Matlab中,如果浮点精度导致概率总和大于1,该怎么办

在Matlab中,如果浮点精度导致概率总和大于1,该怎么办,matlab,floating-point,precision,Matlab,Floating Point,Precision,假设我正在计算具有3种结果的事件概率A,B,和C 在极端情况下,我计算了A,表示p(A),为零的概率,以及B,表示p(B),为一的概率,因此逻辑上C的概率为零 然而,由于双精度问题,计算p(C)=1-p(A)-p(B)可能返回负的小概率 在这种情况下我该怎么办?我是否将P(C)设置为零,或者我可以用eps巧妙地计算P(A)和P(B)? 您可以随时执行以下操作: P(C) = max(1 - P(A) - P(B),0) 或 然后p(C)将始终在[0,1]之间您可以包含一个带数字的值吗? P(A

假设我正在计算具有3种结果的事件概率
A
B
,和
C

在极端情况下,我计算了
A
,表示
p(A)
,为零的概率,以及
B
,表示
p(B)
,为一的概率,因此逻辑上
C
的概率为零

然而,由于双精度问题,计算
p(C)=1-p(A)-p(B)
可能返回负的小概率

在这种情况下我该怎么办?我是否将
P(C)
设置为零,或者我可以用
eps

巧妙地计算P(A)和P(B)? 您可以随时执行以下操作:

P(C) = max(1 - P(A) - P(B),0)

然后
p(C)
将始终在[0,1]之间

您可以包含一个带数字的值吗?
P(A) = max(min(P(A),1),0)
P(B) = max(min(P(B),1),0)