Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako bi napravili generator slučajnih brojeva iz Gama raspodele

[es] :: Art of Programming :: Kako bi napravili generator slučajnih brojeva iz Gama raspodele

[ Pregleda: 1403 | Odgovora: 7 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

bigguy
borisav ignjatov
zrenjanin

Član broj: 87859
Poruke: 180
212.200.180.*



Profil

icon Kako bi napravili generator slučajnih brojeva iz Gama raspodele17.03.2008. u 18:38

Rec je o sledećemda bi lakše pojasnio poslužiću se koordinatnim sistemom) U okviru koordinatnog sistema postoji osnovni oblik Gama funkcije G(2,1,) ucrtan tako da vrednosti na X-osi uzimaju vrednosti od 0 do 1 sa korakom od 0,01. Na Y-osi koordinatnog sistema nalazi se vrednosti funkcije raspodele. Svakoj vrednosti sa X-ose odgovara određena vrednost sa Y-ose.
Generator bi trebao da bude formulisan tako da bira slučajne vrednosti sa X-ose u intervalu (0,1) sa korakom od 0,01, i da na osnovu njih izračunava vrednosti koje će odgovarati Gama raspodeli oblika G(2,1,).

Nadam se da se neko bavio ovim problemom
17.03.2008. u 18:38 

mmix
Miljan Mitrovic
Software Architect
Pancevo, Srbija

SuperModerator
Član broj: 17944
Poruke: 2411
195.252.78.*

Sajt: blog.mitrovic.rs


Profil

icon Re: Kako bi napravili generator slučajnih brojeva iz Gama raspodele17.03.2008. u 19:50
To kako si opisao graf Gama funkcije indikuje da pricas o transponovanoj kumulativnoj distribuciji Gamma funkcije.

(c) Wikipedia:


Protpostavljam da radis random generator brojeva koji pretvara uniformni generator brojeva u generator "iskrivljen" gamma funkcijom, verovatno za neku MonteCarlo ili HyperCube simulaciju.

Kao prvo mislim da nemas potrebe da samplujes u koracima od 0.01 jer je CDF game kontinualna funkcija i postoji za svako x [0,1], tako da ti je sasvim ok da samplujes za bilo koji realan broj iz tog opsega. E sad , posto ovo ukljucuje reseavanje integralne jednacine :

x = cdf(y) = integral (0 do y) od pdf(a, 2, 1)*da po x, gde je pdf distribucija verovatnoce bazirana na gama funkciji, i koja je sama po sebi integral, smucice ti se zivot da sve to iskodiras. Ali, pomoc postoji. U zavisnosti od toga koji programski jezik koristis postoje vec gotove matiematicke biblioteke koje imaju funkcije za samplovanje cdf-a:

C, C++: GSL - GNU Scientific Library GPL licenca
.NET: nMath managed library - komercijalni paket, u principu managed wrapper oko BLAS i LAPACK biblioteka. Trebaju ti Core i Stats paketi.

za ostale programeske jezike ne znam, verovatno neko drugi moze da ti da vise informacija o tome.

▪ The quicker a phone is answered in sales, the slower it's answered in customer services - Brownridge's Law
▪ Democracy is a device that ensures we shall be governed no better than we deserve - George Bernard Shaw
▪ To err is human--and to blame it on a computer is even more so - Robert Orben
17.03.2008. u 19:50 

bigguy
borisav ignjatov
zrenjanin

Član broj: 87859
Poruke: 180
212.200.179.*



Profil

icon Re: Kako bi napravili generator slučajnih brojeva iz Gama raspodele17.03.2008. u 22:11
Ok. U pravu si, reč je o simulaciji :)

Čitajući forum skontao sam da se dosta pravih odgovora daje onda kada je problem postavljen baš onako kako treba, pa hajde da ga definišem u pravom obliku: potrebno je napraviti generator koji će vrednost X (npr. X=150) varirati tako da odstupanje od zadate vrednosti X odgovara Gama raspodeli.

Programski jezik koji koristim za generator je C.
17.03.2008. u 22:11 

srki
Srdjan Mitrovic
Auckland, N.Z.

Član broj: 2237
Poruke: 3643
*.xdsl.xnet.co.nz.



Profil

icon Re: Kako bi napravili generator slučajnih brojeva iz Gama raspodele18.03.2008. u 06:33
Pogledaj ovde.
18.03.2008. u 06:33 

mmix
Miljan Mitrovic
Software Architect
Pancevo, Srbija

SuperModerator
Član broj: 17944
Poruke: 2411
195.252.78.*

Sajt: blog.mitrovic.rs


Profil

icon Re: Kako bi napravili generator slučajnih brojeva iz Gama raspodele18.03.2008. u 10:53
Hmm, sve zavisi od toga kako hoces da "mapiras" okolinu broja X sa G(a,b), to bi trebalo da ti je u postavci zadatka.

funkcije za sve ovo imas u GSL - GNU Scientific Library. Tu imas i funkciju gsl_ran_gamma (const gsl_rng * r, double a, double b) koja vraca random broj iz gama distribucije.

Medjutim pretpostavljam da kad bi umesto standardne gama distribucije G(shape, scale) koristio opstu gama distribuciju G(location, shape, scale) uz location=X da bi iz njenog CDF-a direktno samplovanjem dobio brojeve koji ti trebaju, ali nigde nisam video biblioteku koja to direktno odradjuje, a adaptacija CDF formule po lokaciji nekako prevazilazi moje matematicke skilove

▪ The quicker a phone is answered in sales, the slower it's answered in customer services - Brownridge's Law
▪ Democracy is a device that ensures we shall be governed no better than we deserve - George Bernard Shaw
▪ To err is human--and to blame it on a computer is even more so - Robert Orben
18.03.2008. u 10:53 

Jesenjin

Član broj: 35183
Poruke: 30
93.86.88.*



Profil

icon Re: Kako bi napravili generator slučajnih brojeva iz Gama raspodele23.07.2008. u 16:02
Pozdrav.

Evo ovako, potreban mi je Generator saobracaja (paketa) sa Poasonovom raspodelom, kako bih odradio jednu simulaciju mreze (nekog rutera). Elem, problem je u tome sto mi je to prvi put da se srecem sa tako necim, i sa simulacijom i sa generatorom saobracaja. Sta je uopste generator saobracaja? Neka petlja koja se vrti i isporucuje pakete?
Koliko sam video, na netu postoje gotova resenja tog generatora u C++, medjutim, kod je strahovito nerazumljiv.
Da li neko zna nesto vise o tome, bilo kakva info ce dobro doci, jer se opasno dvoumim da batalim taj rad i pokusam sa nekim drugim.
Pozdrav :)
23.07.2008. u 16:02 

EArthquake
Aleksandar Nikolic
Novi Sad

Član broj: 20684
Poruke: 655
*.eunet.rs.

Sajt: www.phearless.org


Profil

icon Re: Kako bi napravili generator slučajnih brojeva iz Gama raspodele24.07.2008. u 11:57
ako se ja dobro secam gama raspad se statisticki ponasa u okviru poasonove ili gausove raspodele , u zavisnosti od broja raspada
www.phearless.org
foundation.phearless.org
www.matematiranje.com
24.07.2008. u 11:57 

Nedeljko
Nedeljko Stefanovic

Član broj: 314
Poruke: 2954
*.dynamic.sbb.rs.



Profil

icon Re: Kako bi napravili generator slučajnih brojeva iz Gama raspodele25.07.2008. u 16:33
Ako imas generator za bilo koju apsolutno neprekidnu raspodelu, od njega mozes napraviti generator za bilo koju drugu raspodelu. No, posto je to matematicko pitanje, neka se tema preseli na odgovarajuci forum, pa da tamo odgovorim.
25.07.2008. u 16:33 

[es] :: Art of Programming :: Kako bi napravili generator slučajnih brojeva iz Gama raspodele

[ Pregleda: 1403 | Odgovora: 7 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.