MulaiMulai sekarang secara gratis

Menghitung nilai pi

Sekarang kita akan mengerjakan contoh klasik — mengestimasi nilai \(\pi\).

Bayangkan sebuah persegi dengan panjang sisi \(2\) dan titik asal \((0, 0)\) sebagai pusatnya, serta keempat sudutnya memiliki koordinat \((1, 1), (1, -1), (-1, 1), (-1, -1)\). Luas persegi ini adalah \(2\times 2 = 4\). Sekarang bayangkan sebuah lingkaran berjari-jari \(1\) dengan pusat di titik asal yang pas berada di dalam persegi ini. Luas lingkaran tersebut adalah \(\pi \times \text{radius}^2 = \pi\).

Untuk mengestimasi \(\pi\), kita mengambil sampel acak sejumlah titik di dalam persegi ini dan menghitung fraksi titik yang berada di dalam lingkaran (\(x^2 + y^2 <= 1\)). Luas lingkaran kemudian adalah \(4\) kali fraksi ini, yang memberikan estimasi \(\pi\).

Setelah latihan ini, Anda akan memahami cara menggunakan simulasi untuk komputasi.

Latihan ini adalah bagian dari kursus

Simulasi Statistik di Python

Lihat Kursus

Petunjuk latihan

  • Periksa nilai sebenarnya dari \(\pi\) menggunakan np.pi di konsol. Inisialisasi sims ke 10000 dan circle_points ke 0.
  • Di dalam for loop, hasilkan sebuah titik (koordinat x dan y) menggunakan np.random.uniform() antara -1 dan 1, dengan size=2.
  • Periksa apakah titik tersebut berada di dalam lingkaran satuan dengan persamaan \(x^2 + y^2 <= 1\), simpan pada within_circle, dan tambahkan circle_points sesuai.
  • Cetak estimasi $\pipi_sim` sebagai 4 kali fraksi titik yang berada di dalam lingkaran.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# 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))
Edit dan Jalankan Kode