2013-01-22 10 views
5

मैं सामान्य वितरण से जुड़े 10000 यादृच्छिक संख्याओं को उत्पन्न करने की कोशिश कर रहा हूं जो सामान्य वितरण से जुड़े हैं = 0.3 और std। देव। MATLAB में = 0.05।MATLAB में लॉगनोर्मल यादृच्छिक संख्याएं उत्पन्न करें?

मैं lognrnd फ़ंक्शन में निर्मित का उपयोग कर रहा हूं।

मेरे प्रयास करना है:

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

हालांकि, जब मैं hist(R) का उपयोग कर R की हिस्टोग्राम साजिश, जुड़े साजिश सामान्य है, सामान्य प्रवेश नहीं।

मैं कहां गड़बड़ कर रहा हूं? यदि माध्य = 0.3 और std। देव। = सामान्य वितरण के 0.05, जेनरेट किए गए लॉग सामान्य संख्याओं का मतलब नहीं होना चाहिए = 0.3 और std। देव = 0.05?

धन्यवाद दोस्तों।

उत्तर

6

आपके द्वारा जेनरेट की गई संख्या वास्तव में लॉग-सामान्य वितरण से हैं। प्लॉट बस आपके पैरामीटर के लिए समान दिखता है। hist(log(R)) के साथ तुलना करें - आकार काफी समान है।

मतलब और विचलन का सवाल है, lognrnd documentation पर एक नज़र डालें:

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

इसलिए उत्पन्न संख्या अलग अलग मतलब और विचलन की संभावना है।

संपादित करें: मुझे यकीन नहीं है कि क्या मैटलैब आपको सीधे असामान्य वितरण पैरामीटर निर्दिष्ट करने देता है, लेकिन आप दूसरे से पैरामीटर के एक सेट को प्राप्त कर सकते हैं। मान लिया जाये कि lognormal चर के एम और वी वांछित रहे हैं मानकों, आप mu और sigma निम्नलिखित सूत्रों का उपयोग गणना कर सकते हैं:

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

विपरीत रूपांतरण के लिए wikipedia देखें।

+0

ठीक है - अगर मैं लॉग सामान्य वितरण से यादृच्छिक संख्या उत्पन्न करना चाहता हूं जिसका अर्थ = 0.3 और std है। देव = 0.05? – Zack

+1

मैं यह जोड़ना चाहता हूं कि अगर आप अपनी सिग्मा (कहें, कहें, .5) बढ़ाएं और अधिक परिष्कृत हिस्टोग्राम 'हिस्ट (आर, 100) का उपयोग करें, तो आप कुछ और अधिक दिखाई देंगे जो आपके द्वारा अपेक्षित स्क्वॉइड लॉन्गॉर्मल वक्र की तरह दिखेंगे। – RussH

+0

स्वीकार करने के लिए धन्यवाद, लेकिन मैंने गणना में गलती की। अद्यतन सूत्र देखें (मैंने उनका परीक्षण किया है और परिणाम सही प्रतीत होते हैं)। – rburny