Normalverteilung < Mathematica < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 22:14 Fr 12.10.2007 | Autor: | beanice |
Hallo zusammen,
hoffe einer von Euch kann mir helfen.
Ich habe versucht in Mathematica die Verteilungsfunktion und die Dichtefunktion (CDF und PDF) für die Normalverteilung für einen bestimmten Wertebereich auszugeben. Mein Problem ist, dass nichts passiert
μ = 0; σ = 1; zmin = -1; zmax = 4;
los := CDF[NormalDistribution[μ, σ] , z, {z, zmin, zmax}]
TableForm[Table[{z, los}]]
Ziel des ganzen soll es eigentlich sein, dass mir Mathematica für die Werte -1 bis 4 (vorerst ist es fast egal welches Intervall) die entsprechenden CDF Werte in einer Liste/Tabelle oder Sonstiges ausgibt. Das ganze hätte ich dann für die PDF kopiert.
Leider habe ich keine Mathematica-Erfahrung und werde auch nur dieses eine Mal dieses Programm benutzen.
Danke für jede Hilfe.
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
|
|
|
|
Hallo beanice,
welche Version von Mathematica hast Du denn? So, wie Du es versuchst, stimmt in Vers. 5.2 weder der Aufruf von CDF noch der von Table. Im Zweifelsfall kann ein Blick in die Dokumentation nicht ausschließlich schädlich sein ...
<< Statistics'NormalDistribution'
[mm]\mu =0;\sigma =1;z_0=-1;z_1=4;[/mm]
TableForm[Table[Prepend[NumberForm[#1, {10, 8}, NumberPadding -> {" ", "0"}]& /@
Through[{CDF, PDF}[NormalDistribution[[mm] $\mu, \sigma$[/mm] ], N[z]]], z],
{$z, [mm] z_0, z_1$[/mm] }], TableHeadings -> {None, {"z", "CDF ", "PDF "}}, TableAlignments -> {Right}]
ergibt dann
[mm]\begin{array}{rrr}
z & \text{CDF } & \text{PDF } \\
-1 & \text{ 0.15865525} & \text{ 0.24197072} \\
0 & \text{ 0.50000000} & \text{ 0.39894228} \\
1 & \text{ 0.84134475} & \text{ 0.24197072} \\
2 & \text{ 0.97724987} & \text{ 0.05399097} \\
3 & \text{ 0.99865010} & \text{ 0.00443185} \\
4 & \text{ 0.99996833} & \text{ 0.00013383}
\end{array}[/mm]
Wenn der Cursor im Notebook in einem Schlusselwort steht (oder direkt hinter dem letzten Buchstaben) kann mit der Taste F1 die mitgelieferte Doku an der richtigen Stelle eingesehen werden.
Die Funktionen CDF und PDF haben die Argumente dist und x, wobei dist in Deinem Fall NormalDistribution[0,1] ist und x eine Variable (z.B.: x ).
Table hat viele verschiedene Möglichkeiten, aufgerufen zu werden; das schaust Du Dir am besten selber an,
Frag ruhig nach, falls ich zu wirr geschrieben habe!
Peter
Anhängsel
Dateianhänge: Anhang Nr. 1 (Typ: nb) [nicht öffentlich]
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 10:44 Sa 13.10.2007 | Autor: | beanice |
Danke Peter für deine schnelle Antwort.
Ja, ich habe die Mathematica Version 5.2 und hoffe, dass mich dies nicht daran hindert meine Pläne umzusetzen =)
Deinen Quellcode habe ich bei mir ausgeführt und dann bekomme ich als Ergebnis, leider nicht das, was bei dir raus kommt, sondern soetwas:
z cdf pdf
-1 -1 -1
0 0 0
1 1 1
Dann habe ich versucht wenigstens einen Wert für PDF zu bestimmen:
μ = 0; σ = 1; x = 1;
dist = NormalDistribution[μ, σ]
CDF[Dist[0, 1], x]
Doch mein Output ist verwirrend:
NormalDistribution[0, 1]
CDF[Dist[0, 1], 1]
Ich habe keine Idee wo der Fehler liegen soll. Meine Vermutung ist, dass Mathematica mit dem Befehl CDF... nichts anfangen kann, doch warum und wie ich es ändern kann .... k.A.
|
|
|
|
|
Hallöle beanice,
...
> Deinen Quellcode habe ich bei mir ausgeführt und dann
> bekomme ich als Ergebnis, leider nicht das, was bei dir
> raus kommt, sondern soetwas:
> z cdf pdf
> -1 -1 -1
> 0 0 0
> 1 1 1
>
das ist aber seltsam
ich habe das an meine letzte Nachricht angehängte Notebook mal geladen und ausführen lassen. Das Ergebnis (plus ein paar weitere Eingabezeilen) kannst Du im Screenshot unten betrachten.
> Dann habe ich versucht wenigstens einen Wert für PDF zu
> bestimmen:
> μ = 0; σ = 1; x = 1;
> dist = NormalDistribution[μ, σ]
> CDF[Dist[0, 1], x]
>
Ich nehme mal an, dass Du "Dist" nirgends deklariert hast?
CDF[dist,x] an Stelle des obigen CDF[Dist[0,1],x] sollte klappen.
Alternativ geht auch CDF[NormalDistribution[0,1],x].
> Doch mein Output ist verwirrend:
> NormalDistribution[0, 1]
> CDF[Dist[0, 1], 1]
>
> Ich habe keine Idee wo der Fehler liegen soll. Meine
> Vermutung ist, dass Mathematica mit dem Befehl CDF...
> nichts anfangen kann, doch warum und wie ich es ändern kann
> .... k.A.
aber << Statistics'NormalDistribution' hast Du vor der ersten Verwendung von NormalDistribution bzw. CDF oder PDF ausführen lassen?
Keine Fehlermeldungen/Warnungen ??
Hier also der oben bereits erwähnte "Bildschirmschuss":
[Dateianhang nicht öffentlich]
Viel Erfolg,
Peter
P.S.: im Bild sind durch das Grafikprogramm in der Zeile In[4]:=... aus den Gleichheitszeichen Minuszeichen geworden.
Das sollte eigent lich so:
[Dateianhang nicht öffentlich]
aussehen.
Dateianhänge: Anhang Nr. 1 (Typ: png) [nicht öffentlich] Anhang Nr. 2 (Typ: png) [nicht öffentlich]
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 11:10 So 14.10.2007 | Autor: | beanice |
Hallo Peter Pein,
ich werde wild, anders kann ich es nicht beschreiben.
Egal welche Funktion ich aus dem Packages NormalDistribution oder ContinousDistribution aufrufe, ein Ergebnis wird mir nicht ausgegeben.
Das Beispiel, welches in der Hilfe unter der NormalDistribution angegeben ist, habe ich bei abgetippt und auch kein Ergebnis erhalten. Im Output steht dann lediglich:
Out[XX]:= NormalDistribution[0, 1]
Out[XX]:= PDF[NormalDistribution[0, 1], x]
Ich habe keine Anhung, was ich noch machen kann.
* Muss ich die Quellcode anders ausführen als mit "EVALUATE CELLS"
* Ist es ein Problem, dass ich die englische Version benutze
* Sind die Packages nicht Bestandteil von Mathematica 5.2?
Habe es nicht für möglich gehalten, dass die Ausgabe von solch "trivialen" Daten in einem so mächtigen Programm so schwer sein kann.
|
|
|
|
|
Tja beanice,
da bin ich 1. überrascht und 2. überfragt.
Aber einen haben wir noch:
Es ist absolut notwendig, vor der ersten Verwendung von NormalDistribution, PDF oder CDF das Statistik-Paket einzulesen.
Es hilft für gewöhnlich nicht, nach vergeblichen Versuchen, den oben genannten Funktionen eine Reaktion zu entlocken, <<Statistics'NormalDistribution' einzugeben.
Die kleinen "Tüddelchen" nach den Worten Statistics bzw NormalDistribution sind keine Apostrophe (wie zum Beispiel als Kurzschreibweise für die Ableitung in z.B f'[x]), sondern es handelt sich um den Akzent, den Du beispielsweise für "à propos" brauchst (gleich links neben Backspace auf einer Standardtastatur). Umschalttaste halten, Akzent-Taste kurz betätigen, Shift loslassen und man sieht nix... Jetzt noch einmal kurz auf die Leertaste tippen und der Akzent erscheint. Keine Leerzeichen zwischen Statistics und NormalDistribution und den abschließenden Akzent direkt nach NormalDistribution nicht vergessen!
Das ist etwas umständlich, hat aber seine Gründe; die hier zu erläutern, habe ich keine Lust, weil ich sehr weit ausholen müßte. Wenn's Dich interessiert, dann lies in der Hilfe von Mathematica zu den Stichworten "Package", "Needs" und vor allem "Context" bzw. "Contexts".
Wenn das alles nicht hilft, könntest Du es noch bei der deutschsprachigen Mathematica Usergroup (in der schönen Schweiz) versuchen oder falls die englische Sprache keine unüberwindliche Hürde für Dich darstellt, bei der Mathgroup des Herstellers.
Viel Glück!!
Peter
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 07:49 Mo 15.10.2007 | Autor: | beanice |
DANKE.
Es ist unglaublich, es funktioniert. Den Fehler den ich gemacht habe, war wirklich der, dass ich kontinuierlich das Package nachträglich Eingetippt habe.
Es funktioniert und ich habe meine Werte.
Nochmals, DANKE!
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 09:46 Mo 15.10.2007 | Autor: | beanice |
Super die Daten habe ich nun!
Bei meinem Versuch diese jedoch zu exportieren, musste ich feststellen, dass mir Mathematica die Daten nicht im CSV-Format ausgibt.
<< Statistics'NormalDistribution'
Mu = 0; Sigma = 1; Subscript[z, 0] = -37.7; Subscript[z, 1] = 37.7;
Export["test1.csv",
TableForm[
[mm] Table[Prepend[\(NumberForm[#1, [/mm] {10, 10},
NumberPadding -> {" ", "0"}] &/@
Through[{CDF, PDF}[NormalDistribution[Mu, Sigma, N[z]]], z],
{z, Subscript[z, 0], Subscript[z, 1\ ], 0.1}],
TableHeadings -> {None, {"z", "CDF ", "PDF "}},
TableAlignments -> {Right}], "CSV"]
Statt wie in Mathematica, in drei, werden die Daten in der CSV lediglich in einer Spalte ausgegeben.
Hat einer eine Idee woran es liegen kann?
|
|
|
|
|
Hi beanice,
wenn Du "NumberForm" bis einschließlich "/@"löschst, dann geht's. NumberForm ist nur zur Formatierung der Anzeige gut und kann (bzw. muss/sollte) beim Export weg gelassen werden.
Alles Gute,
Peter
(um Missverständnisse auszuschließen)
Dateianhänge: Anhang Nr. 1 (Typ: nb) [nicht öffentlich]
|
|
|
|