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: 6155 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

bigguy
borisav ignjatov
nista
zrenjanin

Član broj: 87859
Poruke: 267
212.200.180.*



+1 Profil

icon Kako bi napravili generator slučajnih brojeva iz Gama raspodele17.03.2008. u 18:38 - pre 196 meseci
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
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: Kako bi napravili generator slučajnih brojeva iz Gama raspodele17.03.2008. u 19:50 - pre 196 meseci
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.

Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

bigguy
borisav ignjatov
nista
zrenjanin

Član broj: 87859
Poruke: 267
212.200.179.*



+1 Profil

icon Re: Kako bi napravili generator slučajnih brojeva iz Gama raspodele17.03.2008. u 22:11 - pre 196 meseci
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.
 
Odgovor na temu

srki
Srdjan Mitrovic
Auckland, N.Z.

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



+3 Profil

icon Re: Kako bi napravili generator slučajnih brojeva iz Gama raspodele18.03.2008. u 06:33 - pre 196 meseci
Pogledaj ovde.
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: Kako bi napravili generator slučajnih brojeva iz Gama raspodele18.03.2008. u 10:53 - pre 196 meseci
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

Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

Jesenjin

Član broj: 35183
Poruke: 33
93.86.88.*



Profil

icon Re: Kako bi napravili generator slučajnih brojeva iz Gama raspodele23.07.2008. u 16:02 - pre 191 meseci
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 :)
 
Odgovor na temu

EArthquake

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



+67 Profil

icon Re: Kako bi napravili generator slučajnih brojeva iz Gama raspodele24.07.2008. u 11:57 - pre 191 meseci
ako se ja dobro secam gama raspad se statisticki ponasa u okviru poasonove ili gausove raspodele , u zavisnosti od broja raspada
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

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



+2790 Profil

icon Re: Kako bi napravili generator slučajnih brojeva iz Gama raspodele25.07.2008. u 16:33 - pre 191 meseci
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.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

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

[ Pregleda: 6155 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

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