Monte Carlo सिमुलेशन क्या है?

Python में Monte Carlo Simulations

Izzy Weber

Curriculum Manager, DataCamp

सिमुलेशन और Monte Carlo सिमुलेशन

सिमुलेशन:
  • ऐसे प्रयोग जो वास्तविकता की नकल करने की कोशिश करते हैं
  • अक्सर कंप्यूटर प्रोग्राम इस्तेमाल करते हैं

 

Monte Carlo सिमुलेशन:
  • विभिन्न नतीजों की संभावना का अनुमान लगाने के लिए, जहाँ random variables का असर होता है
  • संख्यात्मक नतीजे पाने के लिए बार-बार random sampling पर निर्भर करते हैं
  • नतीजे stochastic होते हैं क्योंकि मॉडल random sampling पर टिका है
Python में Monte Carlo Simulations

सिमुलेशन उदाहरण

छह-पहलू वाली पासा फेंकना
  • Tom एक निष्पक्ष छह-पहलू पासा $n$ बार फेंकता है
  • हर बार के बाद, वह परिणाम दर्ज करता है
  • फिर वह पासा बैग में रखता है और अगली बार के लिए नया पासा चुनता है

प्रश्न

  1. $n$ बार के बाद Tom कितने पासे इकट्ठा करेगा?
  2. $n$ बार के बाद औसत परिणाम क्या होगा?

 

एक हाथ पासा फेंकते हुए

Python में Monte Carlo Simulations

Tom के नतीजों का सिमुलेशन

  • total_dice: $n$ बार के बाद Tom के बैग में पासों की संख्या
  • mean_point_dice: $n$ बार के बाद सभी परिणामों का औसत
import random
import numpy as np

def roll_dice(n, seed): random.seed(seed) total_dice = 0 point_dice = []
for i in range(n): total_dice += 1 point_dice.append(random.randint(1, 6))
mean_point_dice = np.mean(point_dice)
return([total_dice, mean_point_dice])
Python में Monte Carlo Simulations

सिमुलेशन नतीजे

सिमुलेशन एक:

seed=1231

print(roll_dice(10, seed))
print(roll_dice(100, seed))
print(roll_dice(1000, seed))
print(roll_dice(10000, seed))

सिमुलेशन दो:

seed=3124
print(roll_dice(10, seed))
print(roll_dice(100, seed))
print(roll_dice(1000, seed))
print(roll_dice(10000, seed))

नतीजे:

[10, 3.6]

[100, 3.5]
[1000, 3.495]
[10000, 3.503]

नतीजे:

[10, 3.8]
[100, 3.28]
[1000, 3.474]
[10000, 3.5508]
Python में Monte Carlo Simulations

Law of Large Numbers

जैसे-जैसे समान-वितरित, यादृच्छिक रूप से जनरेट किए गए variables की संख्या बढ़ती है, उनका sample mean उनके सैद्धांतिक mean के करीब पहुँचता है.

सिमुलेशन तीन (seed = 3124):

print(roll_dice(100000, seed))
print(roll_dice(500000, seed))
print(roll_dice(1000000, seed))

नतीजे:

[100000, 3.51344]
[500000, 3.50428]
[1000000, 3.501995]
Python में Monte Carlo Simulations

अभ्यास करते हैं!

Python में Monte Carlo Simulations

Preparing Video For Download...