Bu üreteç ne işe yarar?
Bu araç, log-normal dağılıma uyan bir sözde rastgele sayı listesi oluşturur. Bir X rastgele değişkeni, doğal logaritması \(\ln(X)\) normal dağılıyorsa log-normaldir. Üreteç önce klasik Box-Muller dönüşümü ile standart normal değerler üretir, bunları hedef \(N(\mu, \sigma^2)\) normal dağılımına ölçekler ve ardından üstel fonksiyonla kesinlikle pozitif log-normal değerlere dönüştürür.
Önemli: mu ve sigma neyi ifade eder?
\(\mu\) ve \(\sigma\) parametreleri, \(\ln(X)\) değişkeninin altta yatan normal dağılımını tanımlar — bunlar X'in kendisinin ortalaması ve standart sapması değildir. X'in gerçek ortalaması, medyanı ve varyansı şöyle hesaplanır:
$$\begin{aligned} \text{Mean} &= \exp\!\left(\mu + \tfrac{1}{2}\sigma^{2}\right) \\ \text{Median} &= \exp\!\left(\mu\right) \\ \text{Var} &= \left(e^{\sigma^{2}} - 1\right) e^{\,2\mu + \sigma^{2}} \end{aligned}$$Bu referans değerler, çıktınızı doğrulayabilmeniz için örneğinizle birlikte gösterilir.
Nasıl kullanılır?
\(\mu\) (herhangi bir gerçel sayı), \(\sigma\) (sıfır veya pozitif) ve kaç sayı istediğinizi (1 ile 1000 arası) girin. Kaç anlamlı basamak gösterileceğini seçin. Her çalıştırmada yeni düzgün (uniform) rastgele sayılar çekilir, dolayısıyla değerler her seferinde değişir. Box-Muller yöntemi her düzgün sayı çiftinden iki normal değer ürettiği için, tek sayıda adet girdiğinizde fazla kalan bir değer basitçe atılır.
Formülün açıklaması
(0,1] aralığındaki \(U_1, U_2\) düzgün sayıları için:
$$Z = \sqrt{-2\ln U_1}\,\cos(2\pi U_2)$$ifadesi \(Z \sim N(0,1)\) verir. Ardından \(Y = \mu + \sigma\, Z\) değeri \(N(\mu, \sigma^2)\) dağılımına sahiptir ve \(X = \exp(Y)\) log-normaldir. \(\ln(0)\) durumuna karşı \(U_1\)'i çok küçük bir epsilon değeriyle sınırlandırırız.
Çözümlü örnek
\(\mu = 1\), \(\sigma = 2\) için \(U_1 = 0{,}5\) ve \(U_2 = 0{,}25\) alalım. Bu durumda \(R = \sqrt{-2\ln 0{,}5} = 1{,}17741\) olur. \(Z_1 = R\cdot\cos(\pi/2) = 0\) ve \(Z_2 = R\cdot\sin(\pi/2) = 1{,}17741\). Böylece \(X_1 = \exp(1) = 2{,}71828\) ve \(X_2 = \exp(1 + 2\cdot 1{,}17741) = \exp(3{,}35482) \approx 28{,}64\) elde edilir. Teorik ortalama \(\exp(3) = 20{,}0855\) ve medyan \(\exp(1) = 2{,}71828\) ile sonuçlar tutarlıdır.
Sık sorulan sorular
Değerlerim neden her çalıştırmada farklı? Bu, Math.random() kullanan stokastik bir üreteçtir; sabit bir tohum (seed) verilmediğinden her çalıştırma farklı sonuç verir.
sigma = 0 olursa ne olur? Dağılım dejenere hale gelir ve her değer \(\exp(\mu)\) değerine eşit olur.
Bir değer negatif olabilir mi? Hayır — log-normal dağılımın tanım aralığı \((0, \infty)\) olduğundan tüm çıktılar kesinlikle pozitiftir.