Fehler in MuPAD Funktion "sum"

10/08/2008 - 10:09 von Christian Stapfer | Report spam
Hallo NG,
ich habe versucht, die Wahrscheinlichkeiten einer diskret verteilten
Zufallsvariablen aufzusummieren, in der Hoffnung, wie erwartet 1
zu erhalten.
Dabei musste ich feststellen, dass die Funktion sum ein *falsches*
Ergebnis liefert: und ich verstehe nicht weshalb.

Das Problem sollte sich mit folgenden Eingaben unter MuPAD Pro 4.0.6.
reproduzieren lassen:

Definition der Wahrscheinlichkeiten (abhàngig von zusàtzlichem Parameter n,
muss gerade Zahl sein) ist

P := (n,k)->piecewise([k=0,binomial(n,n/2)*2^-n],[k mod 2=0,
binomial(n,(n+k)/2)*2^(-(n-1))],[k mod 2=1, 0])

Die zu summierenden Werte sind P(8,k) $k=0..8
Ausgabe 35/128, 0, 7/16, 0, 7/32, 0, 1/16, 0, 1/128
dies scheint richtig zu sein.
Manuelles Summieren 35/128+7/16+7/32+1/16+1/128
ergibt, wie erwartet, 1.

Aber Summation mit sum(P(8,k),k=0..8) ergibt, zu meiner gànzlichen
Verblüffung, den Wert 163/128. Summation mit _plus(P(8,k) $k=0..8),
andererseits, ergibt wieder das richtige Ergebnis 1.
Handelt es sich hier um ein bekanntes Problem von MuPAD mit
bekannter Ursache?

Gruss,
Christian
 

Lesen sie die antworten

#1 Robin Koch
10/08/2008 - 14:39 | Warnen spam
Christian Stapfer schrieb:

P := (n,k)->piecewise([k=0,binomial(n,n/2)*2^-n],[k mod 2=0,
binomial(n,(n+k)/2)*2^(-(n-1))],[k mod 2=1, 0])


[...]
sum(P(8,k),k=0..8) = 163/128.
_plus(P(8,k) $k=0..8) = 1



Kann ich mit 4.0.2 rekonstruieren.

Und eingrenzen auf den Fall, daß der Summationsindex mit Null startet:

sum(P(8,k),k=0..i) zàhlt (für i>0) den Wert P(8,1) doppelt.

sum(P(8,k),k=1..8)+P(8,0) führt demnach zu einem korrekten Ergebnis.

Scheinbar wird für k=0 aus irgendeinem Grund die zweite Bedingung zuerst
abgefragt und die erste dann ignoriert. Ergibt das Sinn?

Robin Koch
Kleine Geister interessieren sich für das Aussergewöhnliche.
Große Geister für das Gewöhnliche. - (Elbert Hubbard)

Ähnliche fragen