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