matlab

2012-03-09 18 views
5

में अपनी खुद की संभाव्यता वितरण फ़ंक्शन को परिभाषित करना क्या MATLAB या Octave में अपनी खुद की संभाव्यता घनत्व फ़ंक्शन को परिभाषित करना संभव है और इसे यादृच्छिक संख्या उत्पन्न करने के लिए का उपयोग करना संभव है?matlab

MATLAB और ऑक्टेव में एक समान, या सामान्य वितरण से यादृच्छिक रूप से अंक खींचने के लिए निर्मित रैंड, रैंडन जैसे डिफ़ॉल्ट कार्य होते हैं, लेकिन ऐसा लगता है कि मेरे स्वयं के प्रोबिलिटी घनत्व फ़ंक्शन को परिभाषित करने का कोई दस्तावेज नहीं है।

उत्तर

8

मनमाने ढंग से यादृच्छिक वितरण से नमूना हमेशा तुच्छ नहीं होता है। अच्छी तरह से ज्ञात वितरण के लिए उन्हें लागू करने के लिए चाल हैं और उनमें से अधिकतर आंकड़े टूलबॉक्स में लागू किए गए हैं क्योंकि ओली ने कहा।

यदि आपकी रुचि का वितरण कठिन रूप है, तो कई नमूना एल्गोरिदम हैं जो आपकी मदद कर सकते हैं, जैसे rejection sampling, स्लाइस नमूनाकरण, Metropolis–Hastings algorithm

यदि आपका वितरण अलग है, या एक अलग वितरण द्वारा अनुमानित रूप से अनुमानित किया जा सकता है, तो आप randsamp का उपयोग करके बहुआयामी नमूनाकरण कर सकते हैं।

+0

एमसीएमसी उत्तर के लिए +1। – YBE

1

यदि आपके पास आंकड़े टूलबॉक्स हैं, तो आप random() का उपयोग कर सकते हैं, क्योंकि इसमें बहुत उपयोगी पीडीएफ अंतर्निहित हैं।

1

मुझे हाल ही में कुछ बार ऐसा करना पड़ा है, और यह पूरा करने के लिए बिल्कुल आसान नहीं है। मेरी पसंदीदा तकनीक Inverse transform sampling का उपयोग करना था।

विचार काफी सरल है:

  1. एक CDF
  2. बनाने एक समान यादृच्छिक संख्या जनरेटर का उपयोग करें।
  3. आरवी की पहचान करें जो आपके सीडीएफ मूल्य पर मानचित्र करता है।