Calcularea valorii lui pi
Acum lucrăm printr-un exemplu clasic – estimarea valorii lui \(\pi\).
Imagine-ți un pătrat cu latura \(2\), centrat în originea \((0, 0)\), ale cărui colțuri au coordonatele \((1, 1), (1, -1), (-1, 1), (-1, -1)\). Aria acestui pătrat este \(2\times 2 = 4\). Acum imaginează-ți un cerc cu raza \(1\), centrat în origine, care se încadrează perfect în interiorul pătratului. Aria cercului va fi \(\pi \times \text{radius}^2 = \pi\).
Pentru a estima \(\pi\), eșantionăm aleatoriu mai multe puncte în interiorul pătratului și calculăm fracția de puncte care se află în interiorul cercului (\(x^2 + y^2 <= 1\)). Aria cercului este atunci de \(4\) ori această fracție, ceea ce ne oferă estimarea lui \(\pi\).
După acest exercițiu, vei înțelege cum să folosești simularea pentru calcule numerice.
Acest exercițiu face parte din cursul
Simulare statistică în Python
Instrucțiuni pentru exercițiu
- Examinează valoarea reală a lui \(\pi\) folosind
np.piîn consolă. Inițializeazăsimsla 10000 șicircle_pointsla 0. - În interiorul buclei
for, generează un punct (coordonatele x și y) folosindnp.random.uniform()între -1 și 1, cusize=2. - Verifică dacă punctul se află în interiorul cercului unitar cu ecuația \(x^2 + y^2 <= 1\), atribuie rezultatul variabilei
within_circleși incrementeazăcircle_pointscorespunzător. - Afișează estimarea lui \(\pi\),
pi_sim, ca de 4 ori fracția de puncte aflate în interiorul cercului.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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))