• Nie Znaleziono Wyników

Laboratorium komputerowe 7 Zadania zad. 1. Zastosować metodę Monte Carlo do wyznaczenia liczby

N/A
N/A
Protected

Academic year: 2021

Share "Laboratorium komputerowe 7 Zadania zad. 1. Zastosować metodę Monte Carlo do wyznaczenia liczby "

Copied!
3
0
0

Pełen tekst

(1)

Lab 7 – zadania M. Głowacki, L-10, PK

1

Laboratorium komputerowe 7

Zadania

zad. 1.

Zastosować metodę Monte Carlo do wyznaczenia liczby 𝜋 .

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 𝑃 = 14𝜋𝑟2 =14𝜋𝑎2 =14𝜋. 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 7 – zadania M. Głowacki, L-10, PK

2

Implementacja metody – wyznaczenie liczby 𝜋, ilustracja graficzna

Korzystając z metody Monte Carlo opisanej we wprowadzeniu napisać skrypt w Octave/Matlab, 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.

(3)

Lab 7 – zadania M. Głowacki, L-10, PK

3

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

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.

zad. 2.

Napisać funkcję, która dla dowolnego n tworzy macierz kwadratową 𝐴𝑛 × 𝑛 wypełnioną kolejnymi liczbami naturalnymi zgodnie z podanymi schematami (przykłady dla n = 4):

a) b) c)

[

1 2 3 4

5 6 7 8

9 10 11 12

13 14 15 16

] [

1 5 9 13

2 6 10 14 3 7 11 15 4 8 12 16

] [

1 2 3 4

8 7 6 5

9 10 11 12

16 15 14 13 ]

Cytaty

Powiązane dokumenty

Dodatkowo, zamiast wykonywania operacji w dwóch etapach (krok w przód, krok wstecz), będą wykonywane operacje dla całych kolumn.. Chętni mogą oczywiście zapisać

[r]

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

Trzeba zdać sobie sprawę, że powtórze- nie doświadczenia może dać wynik o odwrotnym znaku, to, czy w symulacji natrafiliśmy na domenę bardziej „białą”, czy

(5pkt/80pkt) Napisać wzór na obecną wartość 20-letniej renty życiowej, która płaci na koniec każdego z 10 pierwszych lat 3 jp oraz 4 jp na koniec każdego z kolejnych 10

Innym przykładem związanym z analizowaniem i odszumianiem obrazów cy- frowych jest wykorzystanie metod MCMC w obróbce obrazów otrzymanych w tomografii komputerowej SPECT i PET

[r]

ZauwaŜyłem, ze znacznie praktyczniejszym sposobem oceniania prawdo- podobieństwa ułoŜenia pasjansa jest wykładanie kart, czyli eksperymentowanie z tym procesem i po prostu