Pi değerini hesaplama
Şimdi klasik bir örnek üzerinden ilerleyelim: \(\pi\) değerini tahmin etmek.
Köşeleri \((1, 1), (1, -1), (-1, 1), (-1, -1)\) olan ve merkezi orijin \((0, 0)\) olan, kenar uzunluğu \(2\) olan bir kare hayal et. Bu karenin alanı \(2\times 2 = 4\). Şimdi, merkezi orijinde olan ve yarıçapı \(1\) olan bir çemberin bu karenin içine tam olarak oturduğunu düşün. Çemberin alanı \(\pi \times \text{yarıçap}^2 = \pi\) olacaktır.
$\pi$’yi tahmin etmek için bu kare içinde rastgele noktalar örnekler ve çemberin içinde kalan noktaların payını buluruz (\(x^2 + y^2 <= 1\)). Çemberin alanı bu payın \(4\) katıdır ve bu da bize \(\pi\) için tahminimizi verir.
Bu egzersizden sonra, hesaplama için benzetimi (simülasyonu) nasıl kullanacağına dair sağlam bir fikir edinmiş olacaksın.
Bu egzersiz
Python'da İstatistiksel Benzetim
kursunun bir parçasıdırEgzersiz talimatları
- Konsolda
np.pikullanarak $\pi$’nin gerçek değerine bak.sims’i 10000 vecircle_points’i 0 olarak başlat. fordöngüsünün içinde,size=2olacak şekildenp.random.uniform()ile -1 ile 1 arasında bir nokta (x ve y koordinatları) üret.- Noktanın birim çember içinde olup olmadığını \(x^2 + y^2 <= 1\) denklemiyle kontrol et, sonucu
within_circle’a ata vecircle_points’i buna göre artır. - Çember içinde kalan noktaların payının 4 katı olarak
pi_sim\(\pi\) tahminini yazdır.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# Initialize sims and circle_points
sims, circle_points = ____, ____
for i in range(sims):
# Generate the two coordinates of a point
point = ____
# if the point lies within the unit circle, increment counter
within_circle = point[0]**2 + point[1]**2 <= 1
if ____ == True:
circle_points +=1
# Estimate pi as 4 times the avg number of points in the circle.
pi_sim = ____
print("Simulated value of pi = {}".format(pi_sim))