Začněte nyníZačněte zdarma

Výpočet hodnoty čísla pí

Teď si vyzkoušíme klasický příklad – odhad hodnoty \(\pi\).

Představ si čtverec se stranou délky \(2\), jehož střed leží v počátku souřadnic \((0, 0)\) a jehož rohové body mají souřadnice \((1, 1), (1, -1), (-1, 1), (-1, -1)\). Obsah tohoto čtverce je \(2\times 2 = 4\). Dovnitř čtverce je dokonale vepsána kružnice s poloměrem \(1\) se středem v počátku. Obsah kruhu je \(\pi \times \text{poloměr}^2 = \pi\).

Pro odhad \(\pi\) náhodně generujeme body uvnitř čtverce a sledujeme, jaký podíl z nich leží uvnitř kružnice (\(x^2 + y^2 <= 1\)). Obsah kruhu pak odpovídá \(4\)-násobku tohoto podílu – a to je náš odhad \(\pi\).

Po dokončení tohoto cvičení budeš vědět, jak simulaci využít k numerickým výpočtům.

Toto cvičení je součástí kurzu

Statistické simulace v Pythonu

Zobrazit kurz

Pokyny k cvičení

  • Podívej se na skutečnou hodnotu \(\pi\) pomocí np.pi v konzoli. Inicializuj proměnnou sims na hodnotu 10000 a circle_points na 0.
  • Uvnitř cyklu for vygeneruj bod (souřadnice x a y) pomocí np.random.uniform() v rozsahu od -1 do 1 s parametrem size=2.
  • Ověř, zda bod leží uvnitř jednotkové kružnice podle rovnice \(x^2 + y^2 <= 1\), výsledek ulož do proměnné within_circle a podle toho aktualizuj hodnotu circle_points.
  • Vypiš odhad \(\pi\) jako pi_sim – tedy 4-násobek podílu bodů ležících uvnitř kružnice.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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))
Upravit a spustit kód