Wykład nr 11
Transkrypt
Wykład nr 11
Metody numeryczne Wykład nr 11 Dr Piotr Fronczak Metody Monte Carlo Nazwa „Metody Monte Carlo” pochodzi od metod próbkowania statystycznego znanego z gier losowych granych w kasynach np. w Monte Carlo. Choć nazwa “Monte Carlo” została ukuta niedawno (1949) i związana jest z wykorzystaniem komputerów, metody próbkowania statystycznego są znaczne starsze. W czasach, gdy obliczenia numeryczne wykonywano na kartce papieru, metody te wykorzystywano do obliczania całek, których nie moŜna policzyć analitycznie. 1.0 RozwaŜmy funkcję 0.8 1 f ( x) = sin x 2 f(x) Zatem całka 0.6 x I ( x) = ∫ f ( x' )dx' 0.4 0.2 0 mająca sens pola pod funkcją przybiera wartości skończone. 0.0 -2 Jeśli wylosujemy na wykresie punkt (a,b) leŜący wewnątrz pokazanego prostokąta, to prawdopodobieństwo, Ŝe punkt ten leŜy poniŜej krzywej f(x) wyniesie P(↓) = I ( x) S prostokata -1 0 1 x I ( x) = x ⋅1 Zatem PoniewaŜ I ( x) = x ⋅ P(↓) liczba punktów, dla których b < f(a) M = lim N →∞ N →∞ N liczba wszystkich punktów M I ( x ) = lim x ⋅ otrzymujemy N →∞ N P (↓) = lim 2 Igła Buffona – prawdopodobnie najbardziej znany przykład zastosowania metod Monte Carlo Eksperyment w którym wartość π jest przybliŜana poprzez wielokrotne rzucanie igły na powierzchnię pokrytą równoległymi liniami W 1777 Georges-Louis Leclerc, Comte de Buffon pokazał, Ŝe jeśli igła o długości L jest rzucana przypadkowo na równoległe odległe o d linie, to prawdopodobieństwo, Ŝe igła upadnie na jedną z linii jest równe 2L P (×) = πd ( d ≥ L) Laplace w 1820 zaproponował ekperyment, w którym P(x) oszacowane jest jako stosunek rzutów, w których igła przecięła linię do wszystkich rzutów. 2L M P (×) = = lim πd N →∞ N Czyli 2 NL N →∞ Md π = lim Wśród najbardziej znanych eksperymentatorów był Mario Lazzarini, który w 1901 roku ogłosił, Ŝe obliczył wartość PI=3.1415929 z eksperymentu, w którym 2,5 cm igłę rzucał 3408 razy na kartkę papieru o liniach odległych o 3 cm. Dokładność rzędu milionowych! Inny sposób obliczenia liczby PI: 1 1 S o = S[] N lim N →∞ o= N π (1 2 )2 1 = π 4 Oszacowanie błędów Metoda prostokątów (przypomnienie z wykładu 7) N I ( f ) ≈ h∑ f ( xi ) i =1 Błąd wynikał z rozwinięcia w szereg Taylora funkcji f(x) w podobszarze o szerokości h (ta część miała błąd O(h2) ) i uwzględnienia duŜej liczby podobszarów (ta część dawała błąd O(h-1). Ogółem błąd wynosił O(h2)xO(h-1) = O(h) PoniewaŜ liczba podprzedziałów N ~ h-1, N I ( f ) ≈ h∑ f ( xi ) + O( N −1 ) i =1 h a b Metoda prostokątów w dwóch wymiarach Dzielimy powierzchnię na N kwadratów o boku h. Powierzchnia krzywej A jest równa A = Nh 2 Błąd wynika z powierzchni kwadratu na krawędzi krzywej, h2, (ta część daje wkład O(h2)) i z liczby kwadratów na krawędzi krzywej (ta część daje wkład O(h-1) O(h 2 ) × O(h −1 ) = O (h) PoniewaŜ liczba kwadratów N ~ h-2 A = Nh 2 + O( N −1/ 2 ) Metoda prostokątów w trzech wymiarach Wypełniamy trójwymiarowy obszar N sześcianami o boku h. Objętość obszaru V jest równa V = Nh 3 Błąd wynika z objętości kwadratu na powierzchni obszaru, h3, (ta część daje wkład O(h3)) i z liczby kwadratów na powierzchni obszaru (ta część daje wkład O(h-2) O(h 3 ) × O(h −2 ) = O(h) PoniewaŜ liczba kwadratów N ~ h-3 V = Nh3 + O( N −1/ 3 ) W ogólności objętość d-1 hiperpowierzchni w d wymiarach V = Nh d + O( N −1/ d ) Czyli dla ustalonej liczby komórek N wraz ze wzrostem wymiaru wzrasta rozmiar podprzedziałów oraz błąd obliczeń. Błąd metody Monte Carlo RozwaŜmy powierzchnię A leŜącą wewnątrz prostego obszaru o powierzchni A’. Wybierzmy w sposób losowy N’ punktów leŜących wewnątrz obszaru A’. N z nich leŜy wewnątrz powierzchni A. Zatem oszacowanie pola powierzchni: A= N A' N' KaŜdy punkt ma prawdopodobieństwo znajdowania się w obszarze A: p= A A' Zatem, określenie, czy dany punkt leŜy wewnątrz obszaru A jest jak pomiar zmiennej losowej mającej dwie moŜliwe wartości: 1 (punkt leŜy wewnątrz obszaru A) z prawdopodobieństwem p 0 (punkt leŜy poza obszarem a) z prawdopodobieństwem 1-p Jeśli przeprowadzimy N’ pomiarów zmiennej losowej x, to liczba punktów leŜących w obszarze A wynosi N' N =∑x i =1 Średnia wartość N' N = ∑ x = N'x i =1 gdzie czyli x = 1× p + 0 × (1 − p ) = p A N = N' p = N' A' Zatem pomiar N prowadzi średnio do właściwego wyniku. Wariancja Dla niezaleŜnych zmiennych losowych wariancja sumy zmiennych równa jest sumie wariancji pojedynczej zmiennej δ 2 (∑ x ) = ∑ (δ 2 ( x) ) Zatem: N' N' 2 δ (N ) = δ ∑ x = ∑ δ ( x) = N ' δ 2 ( x) i =1 i =1 2 2 δ 2 ( x ) = ( x − x ) 2 = x 2 − 2 xx + x 2 = x 2 − 2 x x + x 2 = x 2 − x 2 x 2 = 12 ⋅ p + 0 2 ⋅ (1 − p ) = p δ 2 (x ) = p − p 2 δ 2 ( N ) = N ' p(1 − p) N= N' A ± N ' p (1 − p ) A' N= N' A ± N ' p (1 − p ) A' A' N A' = A± N ' p (1 − p ) N' N' A' N A' A= ± N' N' p (1 − p ) Czyli błąd pomiaru powierzchni skaluje się jak N’(-1/2) Nasze rozumowanie dotyczyło powierzchni, ale nic nie stoi na przeszkodzie, by podobnie rozwaŜać przestrzenie d-wymiarowe. W dalszym ciągu dysponując N’ losowo wybranymi punktami otrzymujemy to samo skalowanie się błędu. W metodzie prostokątów O( N −1/ d ) Zatem dla d > 2 błąd w metodzie Monte Carlo będzie mniejszy niŜ w metodzie tradycyjnej. Wniosek: Metoda Monte Carlo nadaje się do całkowania całek wysokowymiarowych. Obliczmy obiema metodami objętość d-wymiarowej kuli (d = 2, 3, 4) o promieniu = 1. Obszarem obejmującym kulę jest d-wymiarowy sześcian. d=4 d=3 d=2 Metoda prostokątów Metoda Monte Carlo Trochę historii Stanisław Marcin Ulam (ur. 1909 we Lwowie, zm. 1984 w Santa Fe) Współtwórca bomby wodorowej, członek projektu Manhattan “Pomysł ten, nazwany później metodą Monte Carlo, wpadł mi do głowy, kiedy podczas choroby stawiałem pasjanse. ZauwaŜyłem, ze znacznie praktyczniejszym sposobem oceniania prawdopodobieństwa ułoŜenia pasjansa jest wykładanie kart, czyli eksperymentowanie z tym procesem i po prostu zapisywanie procentu wygranych, niŜ Próba obliczenia wszystkich moŜliwości kombinatorycznych, których liczba rośnie wykładniczo” “Jest to zaskakujące z intelektualnego punktu widzenia, I choć moŜe nie całkiem upokarzające, to jednak zmusza do skromności i pokazuje granice tradycyjnego, racjonalnego rozumowania. Jeśli problem jest wystarczająco złoŜony, próbowanie jest lepszym sposobem niŜ badanie wszystkich łańcuchów moŜliwości.” THE JOURNAL OF CHEMICAL PHYSICS VOLUME 21, NUMBER 6 JUNE, 1953 Equation of State Calculations by Fast Computing Machines NICHOLAS METROPOLIS, ARIANNA W. ROSENBLUTH, MARSHALL N. ROSENBLUTH, AND AUGUSTA H. TELLER, Los Alamos Scientific Laboratory, Los Alamos, New Mexico AND EDWARD TELLER, * Department of Physics, University of Chicago, Chicago, Illinois (Received March 6, 1953) A general method, suitable for fast computing machines, for investigating such properties as equations of state for substances consisting of interacting individual molecules is described. The method consists of a modified Monte Carlo integration over configuration space. Results for the two-dimensional rigid-sphere system have been obtained on the Los Alamos MANIAC and are presented here. These results are compared to the free volume equation of state and to a four-term virial coefficient expansion. 1087 Jeden z najczęściej cytowanych artykułów naukowych w historii (ok. 12,500 cytowań w bazie Web of Knowledge do roku 2010) Podstawy równowagowych symulacji Monte Carlo Celem symulacji Monte Carlo jest obliczenie wartości oczekiwanej pewnej wielkości mechanicznej <Q>. Najlepiej zrobić to uśredniając badaną wielkość po wszystkich stanach µ układu, waŜąc składniki średniej przez odpowiadające im prawdopodobieństwo Boltzmanna: Q = ∑µ Qµ e ∑µ e − βE µ − βE µ W duŜych układach moŜemy uśredniać badaną wielkość tylko po pewnym podzbiorze wszystkich dostępnych stanów. Zatem mamy dany estymator M QM = ∑ Qµi e i =1 M ∑e j =1 Gdy M ∞, to QM = 〈Q〉. − βEµi − βEµ j Weźmy na przykład trójwymiarowy model Isinga 10x10x10 spinów. Liczba dostępnych stanów 21000 ~ 10300 Liczba stanów, które moŜemy wziąć pod uwagę przy niezłym komputerze 108. Estymator moŜe zawieść (szczególnie w niskich temperaturach) Gdybyśmy wiedzieli, które stany są waŜne, a które moŜna pominąć, dostalibyśmy dobry estymator QM juŜ dla małych M. Oto właśnie chodzi w metodach Monte Carlo: W jaki sposób wybierać stany do naszego estymatora, by pojawiały się one w nim zgodnie z ich prawdopodobieństwem boltzmannowskim. MoŜe losować stan zupełnie losowo i akceptować go lub odrzucać z prawdopodobieństwem proporcjonalnym do e-βE ? Lepiej skorzystać z silnika do generowania właściwych stanów – procesu Markowa. Procesy Markowa • • Proces stochastyczny – Ruch poprzez szereg dobrze zdefiniowanych stanów w sposób, który zawiera pewien element losowości Proces Markowa – Proces stochastyczny bez pamięci – Wybór następnego stanu zaleŜy tylko od aktualnego stanu, nie zaleŜy od poprzednich – Proces jest całkowicie zdefiniowany poprzez zbiór prawdopodobieństw przejść πij • π ij = prawdopodobieństwo wyboru następnego stanu j, będąc obecnie w stanie i. • Macierz prawdopodobieństw przejść Π - elementy πij Przykład: układ z trzema stanami: Układ w stanie 1 pozostanie w stanie 1 z prawdopodobieństwem 0.1 π 11 π 12 π 13 0.1 0.5 0.4 Π ≡ π 21 π 22 π 23 = 0.9 0.1 0.0 π 31 π 32 π 33 0.3 0.3 0.4 Układ w stanie 1 przejdzie do stanu 3 z prawdopodobieństwem 0.4 Układ w stanie 2 nigdy nie przejdzie do stanu 3 Warunki macierzy prawdopodobieństw przejść: – Wszystkie elementy są nieujemne i nie większe niŜ 1 – Suma elementów w wierszu równa się 1 – Prawdopodobieństwo pozostania w danym stanie moŜe być niezerowe. Rozkład częstości odwiedzin stanów • • • RozwaŜmy proces, w którym przechodzimy ze stanu do stanu zgodnie z macierzą Π – 1→ 2 → 2 → 1 → 3 → 2 → 2 → 3 → 3 → 1 → 2 → 3 → itd. Histogram odwiedzin kaŜdego stanu – n1 = 3 π1 = 0.33 – n2 = 5 π2 = 0.42 – n3 = 4 π3 = 0.25 1 2 3 Po wielu krokach otrzymujemy rozkład graniczny • RozwaŜmy iloczyn dwóch takich samych macierzy Π π 11 π 12 π 13 π 11 π 12 π 13 Wszystkie sposoby przejścia Π 2 ≡ π 21 π 22 π 23 × π 21 π 22 π 23 ze stanu 1 do stanu 2 w π π π π π π dwóch krokach 31 32 33 31 32 33 π 11π 11 + π 12π 21 + π 13π 31 π 11π 12 + π 12π 22 + π 13π 32 etc. = π 21π 11 + π 22π 21 + π 23π 31 π 21π 12 + π 22π 22 + π 23π 32 etc. π π + π π + π π 31 11 32 21 33 31 π 31π 12 + π 32π 22 + π 33π 32 etc. Prawdopodobieństwo przejścia ze stanu 3 do stanu 2 w dwóch krokach W ogólności Πn jest macierzą prawdopodobieństw przejść między stanami w n krokach (n) ( n) ( n) π 11 π12 π13 (n) ( n) ( n) n Π ≡ π 21 π 22 π 23 (n) ( n) ( n) π 31 π 32 π 33 •Zdefiniujmy π i (0) jako wersor stanu π1(0) = (1 0 0 ) π 2(0) = ( 0 1 0 ) π 3(0) = ( 0 0 1) •Zatem π i = π i Π jest wektorem prawdopodobieństw znalezienia się w danym stanie po n krokach zaczynając od stanu i (n) π1( n) • (0) n ( n) ( n) ( n) π 11 π12 π13 (0) n ( n) ( n) ( n) ( n) ( n) (n) = π 1 Π ≡ (1 0 0 ) π 21 π 22 π 23 = π 11 π 12 π 13 ( n) ( n) ( n) π 31 π 32 π 33 ( ) Rozkład graniczny dla n → ∞ - niezaleŜny od stanu początkowego π1(∞ ) = π 2(∞ ) = π 3(∞ ) ≡ π • Własność stacjonarności rozkładu granicznego p π = lim π i(0)Π n n →∞ ( ) = lim π i(0)Π n −1 Π n →∞ = πΠ π jest lewostronnym wektorem własnym macierzy Π z wartością włąsną równą 1 Taki wektor własny zawsze istnieje dla macierzy, w których elementy w wierszach sumują się do jedności Równanie na elementy wektora rozkładu granicznego π i = ∑ π jπ ji j 0.1 0.5 0.4 e.g . Π = 0.9 0.1 0.0 0.3 0.3 0.4 π1 = 0.1π 1 + 0.9π 2 + 0.3π 3 π 2 = 0.5π 1 + 0.1π 2 + 0.3π 3 π 3 = 0.4π1 + 0.0π 2 + 0.4π 3 π1 + π 2 + π 3 = π1 + π 2 + π 3 Nie są niezaleŜne Równanie na elementy wektora rozkładu granicznego π i = ∑ π jπ ji j Wystarczający (ale nie konieczny) warunek na rozwiązanie π iπ ij = π jπ ji Warunek równowagi szczegółowej Odwracalność mikroskopowa 0.1 Π = 0.9 0.3 0.5 0.1 0.3 0.4 0.0 0.4 Dla danej macierzy Π nie zawsze moŜna spełnić warunek równowagi szczegółowej, np.: π 3π 32 ≠ π 2π 23 zero • • • • Odwróćmy problem …mając dany rozkład graniczny π, jakie prawdopodobieństwa przejścia doprowadzą do uzyskania tego rozkładu? NaleŜy skonstruować prawdopodobieństwa, które spełniają warunek równowagi szczegółowej Jest wiele moŜliwości π = ( 0.25 0.5 0.25 ) 0.97 0.02 0.01 Π = 0.01 0.98 0.01 0.01 0.02 0.97 Najmniej wydajna 0 1 0 Π = 0.5 0 0.5 0 1 0 0.0 0.5 0.5 Π = 0.25 0.5 0.25 0.5 0.5 0.0 Metropolis Najbardziej wydajna Algorytm Metropolisa Będąc w stanie i… – Z prawdopodobieństwem τij, wybierz następny stan j (τij = τji) – jeśli πj > πi, zaakceptuj j jako nowy stan – Jeśli πj ≤ πi, zaakceptuj stan j z prawdopodobieństwem πj/πi • Wylosuj liczbę R z rozkładu jednorodnego (0,1); akceptuj, gdy R < πj/πi – Jeśli nie zaakceptowałeś j jako nowego stanu, następnym stanem będzie znowu stan i (π ii ≠ 0 ) Najprostszy wybór prawdopodobieństw τij wyboru stanu spośród N dostępnych stanów 1 τ ij = N Metropolis, Rosenbluth, Rosenbluth, Teller and Teller, J. Chem. Phys., 21 1087 (1953) • Jakie są prawdopodobieństwa przejść w tym algorytmie? – Niech i będzie stanem o większym prawdopodobieństwie π i > π j πj π ij = τ ij × πi π ji = τ ji π ii = 1 − ∑ π ij π j general: W ści π ij = τ ij min ,1 inogólno πi j ≠i • Czy jest spełniony warunek równowagi szczegółowej? ? π iπ ij = π jπ ji πj ? π iτ ij = π jτ ji πi τ ij = τ ji • Tak, pod warunkiem, Ŝe macierz T prawdopodobieństw wyboru stanu jest symetryczna – Jeśli tak nie jest, to trzeba zmienić prawdopodobieństwa akceptacji W klasycznych układach równowagowych prawdopodobieństwo (Boltzmanna) zaistnienia stanu i W algorytmie mamy 1 − β Ei πi = e Z jeśli πj > πi, zaakceptuj j jako nowy stan Jeśli πj ≤ πi, zaakceptuj stan j z prawdopodobieństwem πj/πi Zatem π j e − βE / Z −β ( E = − βE =e πi e / Z j j − Ei ) i WyraŜenie zaleŜy tylko od zmiany energii. Zmiany zwiększające energię akceptujemy z danym prawdopodobieństwem. 1.0 Pakcept Zmiany, które prowadzą do zmniejszenia energii zawsze akceptujemy. = e − β∆E 0.5 0.0 -4 -2 0 ∆E 2 4 Model Isinga Model opisuje prosty materiał magnetyczny składający się ze zbioru spinów na siatce regularnej. MoŜliwe wartości spinów si = ±1 S N or S +1 N -1 Energia układu zdefiniowana jest poprzez Hamiltonian H = − J ∑ si s j + h∑ si i, j i Zewnętrzne pole magnetyczne Energia oddziaływań międzyspinowych Stan podstawowy (o najniŜszej energii) H = − J ∑ (1) ⋅ (1) i, j lub H = − J ∑ (−1) ⋅ (−1) i, j Model Isinga - implementacja Macierz N zmiennych ±1 Warunki brzegowe periodyczne – wszystkie spiny mają tę samą liczbę sąsiadów (symetria translacyjna). Wybieramy temperaturę (czyli β) Wybieramy warunki początkowe Uruchamiamy symulację Wybieramy losowo jeden spin i liczymy zmianę energii układu przy odwróceniu spinu Eυ − Eµ = − J ∑ siυ sυj + J ∑ siµ s µj <i , j > <i , j > Uwaga: większość par sisj nie zmienia się – tylko sąsiedztwo wybranego spinu. Eυ − Eµ = − J ∑ s µ (sυ − s µ ) i k k i∈S ( k ) siυ = siµ Jesli skµ = +1 to sυk = −1 Jesli skµ = −1 to sυk = +1 ⇒ ⇒ sυk − skµ = −2 sυk − skµ = +2 ⇒ sυk − skµ = −2 skµ sυk − skµ = −2skµ Eυ − Eµ = − J ∑ s µ (sυ − s µ ) = 2 J ∑ s µ s µ = 2 Js µ ∑ s µ i k k i i∈S ( k ) k k i∈S ( k ) e − β ( Eυ − Eµ ) P( µ → υ ) = 1 jesli i i∈S ( k ) Eυ − Eµ > 0 w przeciwnym wypadku Wylosuj liczbę R z rozkładu jednorodnego [0,1) i zaakceptuj zmianę stanu, gdy R<e − β ( Eυ − E µ ) Uwaga: liczba kombinacji Eυ - Eµ jest skończona. Dla siatki kwadratowej ↑ ↑ sk ↑ ↑ ∑ sµ = i 4 ↑ ↑ sk ↓ ↑ 2 ↑ ↑ sk ↓ ↑ ↓ sk ↓ ↓ ↓ ↓ 0 -2 -4 i∈S (k ) Zatem Eυ − Eµ = 2 J (±1)(4 ∨ 2 ∨ 0 ∨ −2 ∨ −4) Wartości ∆E > 0: ↓ ↓ sk 2J 4 ∨ 2J 2 Czyli musimy zapamiętać dwa wykładniki: e −2 βJ 4 i e −2 βJ 2 ↓ Wyniki http://www.pha.jhu.edu/~javalab/ising/ising.html Model elektroforezy Chrom&Elpho.swf E=0 π( ) π( ) =1 E>0 π( ) π( ) eE / 2 = −E / 2 e ZaleŜność prędkości dryftu od natęŜenia pola elektrycznego i długości łańcucha DNA Symulacje Monte Carlo Eksperyment