2013-01-22 16 views
5

Normal dağılımın ortalama = 0,3 ve std olduğu normal günlük dağılımından alınan 10000 rastgele sayı üretmeye çalışıyorum. dev. MATLAB'da 0.05.MATLAB'de lognormal rastgele sayılar oluşturulsun mu?

Yerleşik lognrnd işlevini kullanıyorum.

girişimim yapmaktır: Ben hist(R) kullanarak R histogram çizmek

Ancak

R = lognrnd(0.3,0.05,10000,1)

, ilişkili arsa normal günlüğe normaldir.

Neredeyim? Ortalama = 0,3 ve std. dev. = Normal dağılımın 0.05'i, oluşturulan log normal sayılar ortalama = 0.3 ve std olmalıdır. dev = 0.05?

Teşekkürler çocuklar.

cevap

6

Oluşturduğunuz sayılar aslında günlük normal dağılıma aittir. Arsa sadece parametreleriniz için benzer görünüyor. hist(log(R)) ile hist(R)'u karşılaştır - şekil hemen hemen aynı.

ortalama ve sapma gelince, lognrnd documentation bakmak:

mu and sigma are the mean and standard deviation, respectively, 
of the associated normal distribution. 

dolayısıyla sayılar farklı ortalama ve sapma olması bekleniyor üretti.

DÜZENLEME: Matlab doğrudan lognormal dağıtım parametrelerini belirlemenize izin verip vermediğinden emin değilim, ancak diğer parametrelerden birini kümeden türetebilirsiniz. Lognormal değişken M ve V istenen parametreler varsayarsak, mu ve sigma kullanılarak aşağıdaki formülleri hesaplayabilir:

x = 1 + V/M^2 
sigma = sqrt(log(x)) 
mi = log(M/sqrt(x)) 

ters dönüşüm için wikipedia bakınız.

+0

Tamam - ortalama = 0,3 ve std olan bir günlük normal dağılımından rasgele sayı üretmek istesem ne olur? dev = 0.05? – Zack

+1

Sigma'nızı arttırırsanız (örneğin, .5) ve daha rafine bir histogram “hist (R, 100)” kullanırsanız, beklediğiniz çarpık lognormal eğriye benzer bir şey görürsünüz. – RussH

+0

Kabul ettiğiniz için teşekkürler, ancak hesaplamalarda bir hata yaptım. Güncellenmiş formülleri görün (bunları test ettim ve sonuçlar doğru görünüyor). – rburny

İlgili konular