• Nie Znaleziono Wyników

Laboratorium komputerowe 6 Metoda Monte Carlo. Statystyka Zasadniczym c

N/A
N/A
Protected

Academic year: 2021

Share "Laboratorium komputerowe 6 Metoda Monte Carlo. Statystyka Zasadniczym c"

Copied!
4
0
0

Pełen tekst

(1)

Lab 6 – metoda Monte Carlo. Statystyka. Szkic M. Głowacki, L-10, PK

1

Laboratorium komputerowe 6 Metoda Monte Carlo. Statystyka

Zasadniczym celem ćwiczenia jest zastosowanie metody Monte Carlo do całkowania numerycznego (wyznaczania pola powierzchni), a w szczególności do wyznaczenia liczby 𝜋.

Ponadto w ćwiczeniu wykorzystane zostaną podstawowe funkcje statystyczne (wartość średnia, odchylenie standardowe) do zobrazowania działania tej prostej metody statystycznej.

Uwaga:

Wykonanie ćwiczenia nie wymaga żadnych dodatkowych umiejętności z zakresu metod statystycznych. Cała potrzebna wiedza jest przedstawiona poniżej.

1. Wprowadzenie – idea prostej metody Monte Carlo.

Rozważmy kwadrat o boku 𝑎 = 1. Pole takiego kwadratu jest równe 𝑃𝑘𝑤 = 𝑎2 = 1.

Lewy dolny wierzchołek kwadratu znajduje się w początku układu współrzędnych 𝑂(0,0).

W kwadrat wpisujemy ćwiartkę okręgu w taki sposób, że środek okręgu również znajduje się w początku układu współrzędnych.

Pole wycinka koła, ograniczonego dwoma bokami kwadratu i wpisaną w ten kwadrat ćwiartką okręgu (obszar czerwony) jest równe 𝑃 =1

4𝜋𝑟2 =1

4𝜋𝑎2 = 1

4𝜋. Jednak pole to możemy również obliczyć w inny sposób, korzystając z metody Monte Carlo.

Za pomocą generatora liczb pseudolosowych o rozkładzie równomiernym generujemy 𝑁 punktów wewnątrz kwadratu i następnie zliczamy ile punktów znalazło się wewnątrz obszaru ograniczonego okręgiem 𝑥2+ 𝑦2 = 1. W kolejnym kroku korzystamy z zależności:

𝑃 𝑃𝑘𝑤 = 𝑛

𝑁

gdzie 𝑛 to liczba punktów wewnątrz ćwiartki okręgu, 𝑁 to liczba wszystkich punktów, 𝑃 to szukane pole wycinka koła, a 𝑃𝑘𝑤 to pole kwadratu.

1 1

0 x

y

(2)

Lab 6 – metoda Monte Carlo. Statystyka. Szkic M. Głowacki, L-10, PK

2

2. Implementacja metody – wyznaczenie liczby 𝜋, ilustracja graficzna.

Korzystając z metody Monte Carlo opisanej we wprowadzeniu (punkt 1) napisać skrypt w Matlabie, który wyznaczy liczbę 𝜋.

Podpowiedź:

Korzystając z zależności:

𝑃 𝑃𝑘𝑤 = 𝑛

𝑁 otrzymujemy:

𝑃 = 𝑛 𝑁𝑃𝑘𝑤 1

4𝜋𝑎2 = 𝑛 𝑁𝑎2

𝜋 = 4𝑛 𝑁

Do generacji liczb pseudolosowych z przedziału (0, 1) można wykorzystać funkcję rand().

Każdy punkt 𝑃 na płaszczyźnie definiujemy za pomocą współrzędnych kartezjańskich 𝑃𝑥 oraz 𝑃𝑦, które możemy wygenerować osobno, przykładowo:

Px = rand(1);

Py = rand(1);

Sprawdzenie, czy punkt należy do obszaru ograniczonego okręgiem możemy wykonać za pomocą instrukcji warunkowej:

if Px*Px + Py*Py < 1 ...

end

Skrypt powinien mieć możliwość łatwej zmiany liczby generowanych punktów 𝑁.

Dodatkowo skrypt ma wykonywać ilustrację graficzną metody: wyświetlać ćwiartkę okręgu oraz wszystkie wygenerowane punkty z podziałem na dwa kolory – jeden kolor dla punktów znajdujących się wewnątrz obszaru ograniczonego okręgiem, a drugi dla pozostałych punktów.

Przykładowy wynik działania skryptu przedstawiono na następnej stronie (ze względu na statystyczny charakter obliczeń wyniki mogą się oczywiście różnić dla kolejnych uruchomień skryptu).

(3)

Lab 6 – metoda Monte Carlo. Statystyka. Szkic M. Głowacki, L-10, PK

3 Podpowiedź:

Do narysowania punktu można wykorzystać funkcję plot() z odpowiednim parametrem formatującym wyświetlanie, przykładowo:

plot(Px,Py, 'r*') % kolor punktu: czerwony

% styl punktu: gwiazdka

Każdy punkt może być rysowany osobno – w zmiennych Px i Py trzeba w takiej sytuacji zapisać pojedyncze wartości, tak jak na poprzedniej stronie. Po pierwszym użyciu funkcji plot trzeba pamiętać o instrukcji hold on.

3. Implementacja metody – uśrednianie i rozrzut wyników.

Przerobić skrypt przygotowany w poprzednim punkcie na funkcję obliczającą liczbę 𝜋 w zależności od podanej liczby generowanych punktów 𝑁. W tym przypadku należy pominąć część graficzną, a funkcja ma tylko zwracać liczbę. Przykładowy nagłówek funkcji:

function liczbaPI = metodaMonteCarloPI(N)

Napisać nowy skrypt, który z wykorzystaniem własnej funkcji do wyznaczania liczby 𝜋 wykona wielokrotnie powtórzenia dla kilku wybranych wartości 𝑁, a następnie dla każdego przypadku obliczy z uzyskanych wyników wartość średnią i odchylenie standardowe.

Przyjąć:

𝑁 = 10, 100, 1000, 10000 liczba generowanych punktów

𝑚 = 20 liczba powtórzeń dla każdej wartości 𝑁

(4)

Lab 6 – metoda Monte Carlo. Statystyka. Szkic M. Głowacki, L-10, PK

4

Narysować wykres, który będzie prezentował uzyskane wyniki. Na wykresie wyświetlić wartość średnią wraz z odchyleniem standardowym dla każdej wartości 𝑁 (odchylenie standardowe potraktować jako niepewność wyniku). Dla porównania narysować również prostą przedstawiającą wartość ścisłą 𝜋. Oś poziomą narysować w skali logarytmicznej.

Przydatne funkcje:

mean(a) % obliczenie wartości średniej dla

% elementów w wektorze a

std(a) % obliczenie odchylenia standardowego

errorbar(x,y,err) % rys. punktów wraz niepewnościami,

% liczba elementów w wektorze err

% musi być taka sama jak w x i y semilogx(x,y) % rys. wykresu, oś OX układu

% współrzędnych w skali logarytmicznej

Przykładowy wykres znajduje się poniżej.

4. Obliczanie całek oznaczonych – uwagi.

W podobny sposób możemy obliczać całki oznaczone funkcji, korzystając z interpretacji graficznej mówiącej, że pole pod wykresem funkcji jest równe odpowiedniej całce oznaczonej:

𝑃 = ∫|𝑓(𝑥)|𝑑𝑥

𝑏

𝑎

Losowo generujemy punkty w odpowiednim obszarze prostokątnym, a następnie zliczamy ile punktów znalazło się pod krzywą 𝑦 = |𝑓(𝑥)|.

Cytaty

Powiązane dokumenty

Przy czym możemy odwołać się albo do jednego elementu, albo do wielu elementów naraz (w szczególności do całego wiersza/całej kolumny czy wybranej podmacierzy).. W drugim

Dodatkowo skrypt ma wykonywać ilustrację graficzną metody: wyświetlać ćwiartkę okręgu oraz wszystkie wygenerowane punkty z podziałem na dwa kolory – jeden kolor dla punktów

Funkcja obliczająca

Założono, że kryterium oceny jakości rozwiązania jest minimalna liczba oraz sposób rozmieszczenia punktów dostępowych pozwalające na uzyskanie ustalonego, zgodnie

Simulation of growth processes A challenge to perform such growth simulations is the large range of relevant length and time scales. The features interesting for device

Growth of rough surfaces – Stochastic differential equations The simplest time-dependent description of a stochastic surface is afforded by the Edwards–Wilkinson (EW) equation

Zdaniem autora najprostszym i najprędzej prowadzącym do celu wyborem jest przyjęcie jako funkcji tworzącej funkcji wykładniczej ułamkowej, zwanej też funkcją Mittag

Rozwiązania nadal poszukujemy generując łańcuch (ciąg) sfer z jednoczesnym szacowaniem wartości potencjału w środku każdej sfery, czyli:. Zauważmy, że potencjał w środku