Обчислення значення числа пі
Тепер розгляньмо класичний приклад — оцінювання значення \(\pi\).
Уявіть квадрат із стороною \(2\) та центром у початку координат \((0, 0)\). Його чотири кути мають координати \((1, 1), (1, -1), (-1, 1), (-1, -1)\). Площа цього квадрата дорівнює \(2\times 2 = 4\). Тепер уявіть коло радіуса \(1\) з центром у початку координат, яке точно вписується в цей квадрат. Площа кола буде \(\pi \times \text{radius}^2 = \pi\).
Щоб оцінити \(\pi\), ми випадково вибираємо багато точок у цьому квадраті й обчислюємо частку точок, що лежать усередині кола (\(x^2 + y^2 <= 1\)). Тоді площа кола дорівнює \(4\) помножити на цю частку, що й дає нам оцінку \(\pi\).
Після цієї вправи ви зрозумієте, як використовувати імітаційне моделювання для обчислень.
Ця вправа є частиною курсу
Статистичне моделювання в Python
Інструкції до вправи
- Перевірте точне значення \(\pi\), використавши
np.piу консолі. Ініціалізуйтеsimsзначенням 10000 іcircle_pointsзначенням 0. - У циклі
forзгенеруйте точку (координати x та y) за допомогоюnp.random.uniform()у діапазоні від -1 до 1 ізsize=2. - Перевірте, чи точка лежить у одиничному колі за рівнянням \(x^2 + y^2 <= 1\), присвойте результат у
within_circleі відповідно збільшуйтеcircle_points. - Виведіть оцінку $\pi
pi_sim` як 4, помножене на частку точок, що лежать у колі.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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))