Maxwell-Boltzmann-Geschwindigkeit PDF zu CDF [geschlossen]

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:

F ( v ) = M 2 π k T × e X P ( M v 2 2 k T )

Mir wurde gesagt, dass wir die CDF aus dem PDF finden, das wir ausführen:

C D F ( X ) = X P D F ( X ) D X

Nach der Integration F ( v ) Ich bekomme:

C D F ( v ) = M 2 π k T × ( π × e R F ( M v 2 π k T ) 2 × ( M 2 k T ) )

C D F ( v ) = X [ M 2 π k T × ( π × e R F ( M v 2 π k T ) 2 × ( M 2 k T ) ) ]

  1. Nachdem ich diesen Punkt erreicht habe, kann ich nicht fortfahren, da ich nicht weiß, wie ich etwas dazwischen bewerten soll X Und .

  2. Ich habe auch Bedenken, dass ich die Integration nicht richtig durchgeführt habe.

  3. 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 X Zu 0 anstatt da wir 0 Kelvin nicht unterschreiten.

Würde dies dann die CDF machen:

C D F ( v ) = M 2 π k T × ( π × e R F ( M v 2 π k T ) 2 × ( M 2 k T ) )

als e R F ( 0 ) = 0

Ist das richtig?

Hallo RRs_Ghost – Ich vermute, dass derjenige, der gesagt hat, diese Frage hierher zu stellen, falsch lag. Ich glaube nicht, dass es für uns ein Thema ist. Obwohl die Funktion, die Sie integrieren, aus der Physik stammt, fragen Sie immer noch nur, wie eine Integration durchgeführt wird, was selbst ein reines mathematisches Problem ist. Ich werde dies nicht sofort schließen, damit andere Leute die Möglichkeit haben, Einwände zu erheben, aber wir schicken Sie möglicherweise einfach zurück zu Mathematik . (Als zukünftige Referenz: Sie sollten eine Frage nicht auf mehreren SE-Sites posten. Bitten Sie darum, dass sie migriert wird, wenn sie an der ersten Stelle, an der Sie sie gestellt haben, nicht zum Thema gehört.)

Antworten (1)

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 k T / M .

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.

C D F ( X ) = 1 2 × [ 1 + e R F ( X μ 2 σ 2 ) ]

GSL implementiert hier gsl_cdf_ugaussian_P (doppeltes x).