Opracowanie:
Symulacje

Symulacje

Zweryfikowane

Symulacjami w matematyce nazywamy przedstawienie jakiegoś problemu matematycznego za pomocą modelu, który często bazuje na pewnym elemencie losowości. Symulacje są często przeprowadzane za pomocą programów komputerowych, które mogą przeprowadzić miliony operacji w sekundę. Symulacje mają zastosowanie w przypadku problemów, które bardzo trudno rozwiązać za pomocą metod analitycznych, obliczeń czy wzorów na kartce. W niniejszym wypracowaniu przedstawię jedną z najbardziej popularnych i najciekawszych symulacji, a mianowicie symulację estymacji liczby Pi metodą Monte Carlo.

Przypomnijmy sobie najpierw podstawowe informacje o liczbie Pi. Jest to stała matematyczna, której wartość większość osób zna w postaci 3,14 – jednak jest to jedynie przybliżenie. Wiemy również z lekcji matematyki w podstawówce, że liczby Pi możemy użyć do obliczenia pola i obwodu koła. Wzory P = π * r2 oraz Ob = 2 * π * r to dwa podstawowe wzory matematyczne. Natomiast wyznaczenie dokładnej wartości liczby Pi jest bardzo ciężkie, i spędzało sen z powiek matematykom przez wiele wieków. My możemy natomiast użyć bardzo prostej symulacji algorytmu komputerowego, aby z dużą dokładnością wyznaczyć wartość liczby Pi.

Narysujmy sobie kwadrat o boku długości 2 i wpiszmy w nie koło.

Pole takiego kwadratu to 2 * 2 = 4
Pole koła wpisanego w ten kwadrat to π * r2 =π * 1 =π
Możemy więc powiedzieć, że stosunek pola koła do pola kwadratu to π/4

Wyobraźmy sobie teraz, że kwadrat to tarcza, w którą rzucamy rzutkami. Wszystkie rzutki trafiają wewnątrz kwadratu. Część rzutek trafi do środka koła, a część poza koło. Wiemy, że jeśli stosunek pola koła do pola kwadratu wynosi π/4, to π/4 * 100% rzutek powinno trafić wewnątrz koła.

W tym momencie możemy użyć podstawowej wiedzy programistycznej w wybranym przez nas języku, aby napisać następujący algorytm:

Losujemy współrzędne punktu wewnątrz kwadratu, w który „trafiła” nasza rzutka.
x = random (-1,1)
y = random (-1,1)

Sprawdzamy, czy punkt ten leży wewnątrz koła. Możemy to sprawdzić obliczając sumę x2+y2. Jeśli
x2+y2 = 1, to punkt leży na obwodzie koła. Jeśli x2+y2 > 1, to punkt leży poza kołem, a jeśli x2+y2 < 1, to leży wewnątrz koła.
if (x2+y2 > 1), countoutside = countoutside + 1
if (x2+y2 <= 1), countinside = countinside + 1
Gdzie countinside to liczba rzutek wewnątrz lub na obwodzie koła, a countoutside to liczba rzutek poza kołem.
Taką symulację przeprowadzamy bardzo dużą liczbę razy, przykładowo 4 miliony.
Możemy to zrobić za pomocą pętli, która spowoduje, że algorytm zostanie wykonany i razy:
for (i = 1, i<=4000000, i++).

Po wykonaniu symulacji określoną liczbę razy, podliczamy liczbę „rzutek” poza kołem i w kole.
Jeśli nasz program poprawnie generuje liczby losowe między -1 a 1, okaże się, że na 4 miliony prób najprawdopodobniej około 3.14 miliona rzutek wyląduje w środku okręgu.
Porównując to ze wzorem, że π/4 rzutek powinno trafić wewnątrz koła, będziemy mogli określić wartość π jako 3.14 – lub jakakolwiek liczba, która wyjdzie nam w symulacji. Czym większa liczba powtórzeń, tym większa będzie dokładność naszego algorytmu.
Okazuje się, że tym sposobem posiadając minimalną wiedzę matematyczną i informatyczną, możemy dość dokładnie określić wartość liczby Pi, co przed erą komputerów było ekstremalnie ciężkim zadaniem.

Powyższe zadanie zostało zweryfikowane przez nauczyciela
To top