एक छोटे आकार पैरामीटर पर विचार करें 0 के पास, इस तरह के रूप α = 1 / 100 । 0 और बीच की श्रेणी में α , ई - α लगभग है 1 , तो गामा पीडीएफ लगभग है x α - 1 डी एक्स / Γ ( α ) । यह एक अनुमानित CDF, F α ( x ) = x α से एकीकृत किया जा सकता हैαα=1/100αe−α1xα−1dx/Γ(α) । इसे पलटते हुए, हम एक1/αशक्तिदेखते हैं: एक विशाल घातांक। के लिएα=1/100इस अधःप्रवाह के कुछ मौका (एक डबल परिशुद्धता मूल्य से कम का कारण बनता है10-300, कम या ज्यादा)। यहाँαके बेस-दस लघुगणक के कार्य के रूप में अंडरफ्लो होने की संभावना का एक प्लॉट है:Fα(x)=xααΓ(α)1/αα=1/10010−300α
लॉग (गामा) चर उत्पन्न करने के लिए इस सन्निकटन का उपयोग करने के लिए एक समाधान है: वास्तव में, एक गामा संस्करण उत्पन्न करने का प्रयास करें और यदि यह बहुत छोटा है, तो इस अनुमानित बिजली वितरण से अपना लघुगणक उत्पन्न करें (जैसा कि नीचे दिखाया गया है)। (इसे तब तक बार-बार करें जब तक कि लॉग अंडरफ्लो रेंज के भीतर न हो, ताकि यह मूल अंडरफ्लोिंग वैरिएबल के लिए एक वैध विकल्प हो।) डिर्चिलेट गणना के लिए, लॉग के प्रत्येक मान से सभी लॉगरिथम की अधिकतम घटाएं - यह सभी को स्पष्ट रूप से बचाता है। गामा परिवर्तन करता है इसलिए यह डिरिचलेट मूल्यों को प्रभावित नहीं करेगा। किसी भी परिणामी लॉग को समझो जो कि बहुत छोटा है (कहते हैं, -100 से कम) एक सच्चे शून्य के लॉग होने के रूप में। अन्य लॉग का घातांक करें। अब आप अंडरफ्लो के बिना आगे बढ़ सकते हैं।
यह पहले की तुलना में अधिक समय लेने वाला है, लेकिन कम से कम यह काम करेगा!
आकृति पैरामीटर साथ एक अनुमानित लॉग गामा संस्करण उत्पन्न करने के लिए , C = log ( Γ ( α ) ) + लॉग ( α ) पूर्ववर्ती करें । यह आसान है, क्योंकि लॉग गामा के मूल्यों को सीधे गणना करने के लिए एल्गोरिदम हैं । 0 और 1 के बीच एक समान यादृच्छिक फ्लोट उत्पन्न करें, इसका लघुगणक लें, α द्वारा विभाजित करें , और इसमें C जोड़ें ।αC=log(Γ(α))+log(α)αC
क्योंकि स्केल पैरामीटर केवल वैरिएबल को बचाता है, इन प्रक्रियाओं में इसे समायोजित करने में कोई समस्या नहीं है। यदि सभी स्केल पैरामीटर समान हों तो भी आपको इसकी आवश्यकता नहीं है।
संपादित करें
एक अन्य उत्तर में ओपी एक विधि का वर्णन करता है जिसमें की एक समान चर (एक बी ( α ) चर) की शक्ति को एक Γ ( α + 1 ) चर से गुणा किया जाता है । यह काम करता है क्योंकि इन दो वेरिएंट के संयुक्त वितरण का पीडीएफ ( α x α - 1 ) ( y α e - y d y / Γ ( α + 1 ) ) है । Z = x y का pdf खोजने के लिए1/αबी ( α )Γ ( α + 1 )( α xα - 1) ( yαइ- yघy/ Γ(α+1) )z= एक्स वाईहम स्थानापन्न करते हैं, याकूब x द्वारा विभाजित करते हैं , और x को एकीकृत करते हैं । अभिन्न को z से ∞ तक होना चाहिए क्योंकि 0 ≤ y wh 1 , whencey→ z/ एक्सएक्सएक्सz∞0 ≤ y≤ १
pdf(z)=αΓ(α+1)∫∞z(xα/x)e−x(z/x)α−1dxdz=1Γ(α)zα−1e−zdz,
जो एक वितरण की पीडीएफ है ।Γ(α)
पूरे मुद्दे यह है कि जब , से तैयार एक मूल्य के Γ ( α + 1 ) underflow की संभावना नहीं है और है अपने लॉग और संक्षेप द्वारा 1 / α एक की लॉग बार एक स्वतंत्र वर्दी variate का लॉग हम होगा Γ ( α ) variate। लॉग बहुत नकारात्मक होने की संभावना है, लेकिन हमने इसके एंटीलॉग के निर्माण को दरकिनार कर दिया है, जो कि अस्थायी फ्लोटिंग प्रतिनिधित्व में बह जाएगा।0<α<1Γ(α+1)1/αΓ(α)