Ich habe bei Math.SE nachgefragt und mir wurde geraten, es stattdessen hier zu versuchen.
Ich muss aus einer Maxwell-Boltzmann-Geschwindigkeitsverteilung ziehen, um eine Molekulardynamiksimulation zu initialisieren. Ich habe das PDF, aber ich habe Schwierigkeiten, das richtige CDF zu finden , damit ich zufällige Ziehungen daraus machen kann.
Das von mir verwendete PDF lautet:
Mir wurde gesagt, dass wir die CDF aus dem PDF finden, das wir ausführen:
Nach der Integration Ich bekomme:
Nachdem ich diesen Punkt erreicht habe, kann ich nicht fortfahren, da ich nicht weiß, wie ich etwas dazwischen bewerten soll Und .
Ich habe auch Bedenken, dass ich die Integration nicht richtig durchgeführt habe.
Ich möchte das CDF am Ende in C++ implementieren, damit ich daraus schöpfen kann. Weiß jemand, ob es wegen der erf ein Problem dabei geben wird, oder werde ich mit dieser GSL-Implementierung zurechtkommen ?
Vielen Dank für Ihre Zeit.
@bryansis2010 auf Math.SE sagt, dass ich im Bereich auswerten kann Zu anstatt da wir 0 Kelvin nicht unterschreiten.
Würde dies dann die CDF machen:
als
Ist das richtig?
Die Lösung besteht darin, zu erkennen, dass diese Funktion lediglich eine Gaußsche Funktion ist. Tatsächlich hat jede Komponente des Geschwindigkeitsvektors eine Normalverteilung mit Mittelwert = 0 und st-dev .
Alles, was an diesem Punkt noch zu tun ist, ist, die Gaußsche CDF (allgemein bekannt) zu erhalten und davon eine Probe zu nehmen, wobei wir sicherstellen müssen, dass wir unsere Masse und Temperatur einstecken.
GSL implementiert hier gsl_cdf_ugaussian_P (doppeltes x).
David z