2016-05-30 12 views
1

ist hier die Daten:dieses Verhalten erklären mit der Nutzung von eps für Doppel Vergleich

probs_caseA_1 = reshape([0.06285693429791894300 ],[1 1]); 
probs_caseA_2 = reshape([0.06285693429791905400 ],[1 1]); 
probs_caseB_1 = reshape([0.93714306570208106000 ],[1 1]); 
probs_caseB_2 = reshape([0.93714306570208095000 ],[1 1]) 

caseA und caseB sind zwei sich gegenseitig ausschließende Ereignisse, so zu 1 summieren ihre Wahrscheinlichkeiten:

>> probs_caseA_1 + probs_caseB_1 - 1 <= eps(1) 

ans = 

    1 

>> probs_caseA_2 + probs_caseB_2 - 1 <= eps(1) 

ans = 

    1 

Das Suffix _1 und _2 bezeichnen zwei verschiedene Möglichkeiten, die Wahrscheinlichkeiten von Fall A und B zu erzeugen. Natürlich konzeptionell sind die beiden Wahrscheinlichkeiten das gleiche für Fall A, und für Fall B.

Warum erhalte ich das folgende Verhalten, wenn ich diesen Vergleich tun:

abs(probs_caseA_1 - probs_caseA_2) <= ... 
    max(eps(probs_caseA_1), eps(probs_caseA_2)) 

abs(probs_caseB_1 - probs_caseB_2) <= ... 
    max(eps(probs_caseB_1), eps(probs_caseB_2)) 

die gibt:

>> abs(probs_caseA_1 - probs_caseA_2) <= ... 
    max(eps(probs_caseA_1), eps(probs_caseA_2)) 

ans = 

    0 

>> abs(probs_caseB_1 - probs_caseB_2) <= ... 
    max(eps(probs_caseB_1), eps(probs_caseB_2)) 

ans = 

    1 

Beachten Sie, dass dies bedeutet, dass die Fall B Wahrscheinlichkeiten die gleichen sind, aber diejenigen für Fall A sind nicht, egal ob Methode 1 oder 2 wurde verwendet, um zu berechnen, aber wir zeigen bereits, dass die Summe aus Fall A und Fall B Wahrscheinlichkeiten sind (Maschine) gleich 1.

Antwort

0

Sie haben mehr Nullen nach dem Dezimalpunkt mit Ihren Variablen "caseA". So eps(caseA) und eps(caseB) werden Sie nicht den gleichen Wert geben! eps(x) gibt den positiven Abstand von abs (x) zur nächst größeren Gleitkommazahl mit der gleichen Genauigkeit wie x zurück.

eps(caseA) < eps(caseB) 

aber

(probs_caseA_1 - probs_caseA_2) = (probs_caseB_1 - probs_caseB_2) 

So Ihre zwei abs(...) <= max(...) potenziell geben unterschiedliche Ergebnisse

bemerken Sie den Unterschied, wenn Sie zu schreiben versuchen:

eps(0.01) 
eps(0.001) 

jedes Mal, wenn Sie eine hinzufügen Null werden Sie näher an der nächstgrößeren Fließkommazahl sein.

Sie können this article für weitere Details

lesen