Wie kann ich zufällige Gleitkommazahlen erzeugen, deren Wahrscheinlichkeitsfunktion linear ist? Angenommen, ich kann einheitliche Zufälle erzeugen.
Die Darstellung ist ein Beispiel für eine lineare Verteilung. f - Wahrscheinlichkeitsdichte, x - Zufallswert.
r
probability
distributions
kelin
quelle
quelle
Antworten:
Es gibt viele Methoden. Hier sind ein paar.
Sie können die Ablehnung ("Akzeptieren-Ablehnen") mit einem einheitlichen Umschlag verwenden.
könnte die inverse cdf-Methode für die Dichte verwenden, indem das cdf berechnet und invertiert wirdX=F−1(U)
Sie könnten in einen einheitlichen und einen dreieckigen Teil (dh eine endliche Mischung aus beiden) teilen . Der dreieckige Teil kann auf verschiedene Arten erzeugt werden (z. B. das von zwei Uniformen oder unter Verwendung der inversen cdf-Methode, ...) und dann auf das richtige Intervall skaliert werden, und die Uniform ist trivial (einfach nach rechts skaliert) Intervall).max
Wenn positiv ist, können Sie on als dreieckig behandeln und dann die Zurückweisung verwenden, wenn es unter . Dies funktioniert ziemlich gut, wenn klein ist (etwa ein gutes Stück weniger als die Hälfte).x1 (0,x2) x1 x1/x2
Sie könnten die Zikkurat-Methode verwenden .
Es gibt eine Reihe anderer Ansätze. Die Wahl zwischen ihnen hängt von Überlegungen ab, wie wichtig Komfort und Geschwindigkeit sind (wenn Sie nur ein paar tausend Werte benötigen, spielt Geschwindigkeit wahrscheinlich keine große Rolle; wenn Sie sie bei potenziell langen Läufen viele Male verwenden müssen, ist sie vorhanden kann viel mehr bedeuten).
quelle
Dies erinnert mich an einen anderen Beitrag über ein lineares PDF, das eine funktionale Form hatte:
(Quelle: tri.org.au )
Ich nannte dies eine "akute lineare" Verteilung oder eine niedliche lineare Verteilung.
Wenn und unabhängig sind, dann ist . .. hat eine süße lineare Verteilung.X1∼Triangular(−1,1,1) X2∼Uniform(−1,1) X∼αX1+(1−α)X2
Pseudozufallszahlengenerierung
Das cdf (innerhalb des Unterstützungsbereichs) lautet:H=14(x+1)(α(x−1)+2)
Das inverse cdf lautet:x=H−1(u)=α2−2α+4αu+1−−−−−−−−−−−−−−−√−1α
Wenn Sie durch eine Pseudozufallszeichnung aus ersetzen, erhalten Sie eine Pseudozufallszeichnung aus dem obigen niedlichen linearen PDF .u Uniform(0,1) h(x)
Wenn Sie den Maßstab ändern oder verschieben möchten, können Sie die von Ihnen generierten Daten transformieren. ..., die in der Lage sein sollten, den Reichtum der von Ihnen erstellten Struktur zu generieren Wunsch (erfordert möglicherweise ein wenig herumspielen, je nachdem, was Sie festhalten).Xdata Y=b+cXdata
quelle