Zufallszahlen erzeugen die einer Verteilung genügen

Neue Frage »

frustudent Auf diesen Beitrag antworten »
Zufallszahlen erzeugen die einer Verteilung genügen
Hallo,

zu meinem Problem:

Ich habe eine beliebige Verteilung gegeben (hier speziell: Schulz-Zimm-Verteilung). Nun möchte ich mit Matlab/C++/Irgendwas
Zufallsgenerierte Zahlen erzeugen, die dieser entsprechenden Verteilung genügen.
Leider weiss ich nicht, wie ich das realisieren soll.
Meine ursprüngliche Idee war es zuerst, ganz viele Zufallszahlen zu erzeugen, und dann so viele "wegzuschmeissen", bis sie der Verteilung genügen. An der Umsetzung bin ich allerdings gescheitert. Ausserdem scheint dies auch sehr den Rechner auszulasten.

Für Vorschläge wäre ich sehr dankbar!
DerJFK Auf diesen Beitrag antworten »

Du kannst dir in Matlab Zahlen gleichverteilt im Intervall [0,1] erzeugen. Jetzt berechnest du nach jeder Zahl

F(x)=z, (F ist die Verteilung) und berechnest aus dieser Gleichung x. Du kannst dir also die Umkehrfunktion deiner Verteilung berechnen und setzt und erhälst so Zahlen, verteilt gemäß der gewünschten Verteilung.
Mazze Auf diesen Beitrag antworten »

Es gibt viele Möglichkeiten, mir bekannt sind etwa

- Inversionmethode
- Samplingalgorithmen (etwa Metropolissampling)
- spezielle Algorithmen (wie etwa Box-Muller für Normalverteilung)

Für deine Verteilung fällt mir nichts spezielles ein. Die Inversionsmethode dürfte Scheitern da die Verteilungsfunktion schwierig zu invertieren sein dürfte. Wenn die Dichtefunktion einfach auszuwerten ist, dann kann man über den Metropolisalgorithmus sicher etwas in angemessenem Zeitaufwand herausbekommen, sofern man eine Beispielverteilung nimmt, die der ursprünglichen Verteilung ähnlich ist (von der Form).

edit:

Das was DerJFK vorschlägt dürfte wohl die Inversionmethode sein Augenzwinkern

edit2:

Wenn ich mich recht erinnere kannst Du in Matlab die Gleichung auch Lösen lassen, dann fällt mit unter die inversen Berechnung weg was einen Geschwindigkeitsschub bedeuten kann.
DerJFK Auf diesen Beitrag antworten »

Jop, hätte das wohl noch dazu schreiben sollen. Sollte eben auch sagen, was des eigentlich macht.
frustudent Auf diesen Beitrag antworten »

Vielen Dank, ihr habt mir weiter geholfen.
Besonders der Hinweis mit dem Sampling war besonders hilfreich, da dass Matlab von Haus aus beherrscht.
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »