एक सरल फंक्शन का इंटीग्रेशन
यह एक सरल अभ्यास है जो Monte Carlo Integration की अवधारणा से परिचय कराता है.
यहाँ हम एक सरल इंटीग्रल \( \int_0^1 x e^{x} dx\) का मान निकालेंगे. हमें पता है कि सटीक उत्तर \(1\) है, लेकिन सिम्यूलेशन हमें एक अनुमानित समाधान देगा, इसलिए हम \(1\) के क़रीब उत्तर की उम्मीद कर सकते हैं. जैसा कि आपने वीडियो में देखा, यह प्रक्रिया सरल है. एक एक-चर वाले फंक्शन \(f(x)\) के लिए:
- x-अक्ष की सीमाएँ \((x_{min}, x_{max})\) और y-अक्ष की सीमाएँ \((\max(f(x)), \min(\min(f(x)), 0))\) प्राप्त करें.
- इस बॉक्स में समान रूप से वितरित बिंदुओं की एक संख्या जनरेट करें.
- बॉक्स के क्षेत्रफल (\((\max(f(x) - \min(f(x))\times(x_{max}-x_{min})\)) को उन बिंदुओं के अंश से गुणा करें जो \(f(x)\) के नीचे आते हैं.
पूरा करने पर, आपके पास Monte Carlo Integration का उपयोग करके निश्चित इंटीग्रल्स को संभालने का एक ढांचा होगा.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में Statistical Simulation
अभ्यास निर्देश
sim_integrate()फंक्शन में,xminऔरxmaxके बीच यूनिफॉर्म रैंडम नंबर जनरेट करें और उन्हेंxमें असाइन करें.- \(\min(\min(f(x)), 0)\) और \(\max(f(x))\) के बीच यूनिफॉर्म रैंडम नंबर जनरेट करें और उन्हें
yमें असाइन करें. - उन बिंदुओं के अंश को, जो \(f(x)\) से कम हैं, क्षेत्रफल से गुणा करके रिटर्न करें (\((\max(f(x) - \min(f(x))\times(x_{max}-x_{min})\)).
- अंत में, lambda फंक्शन का उपयोग करके
funcको \(x e^{x}\) के रूप में परिभाषित करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Define the sim_integrate function
def sim_integrate(func, xmin, xmax, sims):
x = np.random.uniform(____, ____, sims)
y = np.random.uniform(____, ____, sims)
area = (max(y) - min(y))*(xmax-xmin)
result = area * sum(____(____) < abs(func(x)))/sims
return result
# Call the sim_integrate function and print results
result = sim_integrate(func = lambda x: ____, xmin = 0, xmax = 1, sims = 50)
print("Simulated answer = {}, Actual Answer = 1".format(result))