Monte Carlo-metoder 0 Målen för föreläsningen På datorn Bild från Monte Carlo http://en.wikipedia.org/wiki/file:real_monte_carlo_casino.jpg 1 Begrepp En stokastisk metod ger olika resultat vid upprepning med samma indata. En deterministisk metod ger alltid samma lösning givet vissa indata. Alla tidigare metoder i den här kursen (och i Bervet I) har varit deterministiska metoder. En Monte Carlo-metod är en stokastisk metod som använder samplade slumptal för att genomföra upprepade experiment och sedan ta medelvärdet av resultaten. 2 Exempel Brownsk rörelse från labben. Vid varje tidpunkt t k = k t slumpar vi fram en förflyttning som hämtas från en normalfördelning N (0, t ). Om vi har d dimensioner så använder vi d oberoende Brownska rörelser. Kör X=brown(1,[ 0 0],0.1,1) MATLAB tillhandahåller slumptal från standardnormalfördelningen. Medelvärde 0 och varians 1. N (0, 1) : f 0,1 (x) = 1 e x2 2 2π Hur får vi normalfördelade slumptal från en annan fördelning N (µ, σ 2 ) : f µ,σ 2(x) = 1 σ (x µ) 2 2π e 2σ 2 1 Rita
Om X N (0, 1) så gäller Y = µ + σx N (µ, σ 2 ) Vi skiftar och skalar x. f µ,σ 2(y) = 1 σ f (0,1)( y µ σ ) Skalningen med 1 behövs för att totala sannolikheten σ f(x)dx ska vara 1. Åter till exemplet µ = 0 och σ 2 = t. Vi ska alltså skala våra slumptal med t. Jämför brown.m Visa cool ppt-bild? MC.ppt 3 Pseudokod för MC-metod Indata: N (antal försök) for i=1:n Gör en stokastisk simulering resultat(i)=resultat av simulering ovan end slutresultat = mean(resultat) Slutresultatet är inte alltid medelvärdet. Kan vara andra funktioner av resultaten, t.ex. sannolikhet för kritisk händelse. Exempel : Ensemble-prognoser inom meteorologi Osäkerheter i indata och icke-linjära modeller gör att resultat blir osäkra. Störningar i indata kan förstärkas, dvs illa-konditionerade problem. for i=1:ensemblestorlek 1. Slumpa fram störningar av indata från lämplig fördelning. 2. Beräkna en prognos utgående från det tillståndet. Använd ensemblen av prognoser för att uppskatta osäkerheten. Ex, Sannolikheten för mer än 20 mm nederbörd under morgondagen. Kolla websida med väderprognosbild. http://www.mittvaeder.se/se/home/vaeder/ensembleprognos.html Rita bild. Kritiskt om större än visst värde. Area av detta. 4 Integralberäkning med MC-metoder Idé: I = b a f(x)dx = (b a)f medel 2 Rita bild med funktion och dess medelvärde
Medelvärden kan räknas ut med Monte Carlo-metoder. Alla funktionsvärden bidrar på samma sätt till medelvärdet Använd slumptal x från en likformig fördelning över (a, b). Beräkna ett stokastiskt värde på integralen function I=MCint(f,a,b,n); % Funktion, intervall, antal värden x = a + (b-a)*rand(n,1); % Likf (a,b) fx = feval(f,x); % Evaluera funktionen I = (b-a)*mean(fx); % Approx av I Indata: N (antal integrationer) for i=1:n Använd MC för att beräkna integralen resultat(i)=integralvärde end slutresultat = mean(resultat) Slumpvariabeln som är det uppskattade integralvärdet har väntevärde/medelvärde µ = I och det förväntade felet kan visas vara O(1/ (N)) Jämför Trapets och MC, skillnader Trapetsregeln: I = h N 1 2 (f(x 0) + 2 f(x i ) + (x N )), i=1 h = (b a)/n, x i = a + ih. Regelbundet nät. Monte Carlo: I = (b a)/n N 1 i=0 f(x i ) där x i är slumptal från likformig fördelning över (a b) Hur beror felet av N i de två fallen Beräkningskostnad i d dimensioner. Felet i trapetsmetoden: R = b a 12 h2 f (ξ) = (b a)3 12N f (ξ) 2 I en dimension avtar felet i trapetsregeln som 1/N 2 = N 2 d dimensioner M = N 1/d punkter per dimension. I d dimensioner avtar felet som (N 1/d ) 2 = N 2/d 3
d Fel 1 N 2 2 N 1 4 N 1/2 8 N 1/4 Monte Carlo-metoder konvergerar som N 1/2 i alla dimensioner. Långsamt i få dimensioner, men jämförelsevis snabbt i höga dimensioner. 5 Återkoppling till målen 0 Målen för föreläsningen 1 Definitioner En diskret stokastisk variabel kan bara anta vissa specifika värden (ändligt antal). Ex) Utfallet av ett tärningskast kan anta värdena {1, 2, 3, 4, 5, 6}. En kontinuerlig stokastisk variabel kan anta alla värden (i ett intervall). Ex) Mätfel, vikten av 2 kg potatis. En sannolikhetsfunktion p X (x) ger sannolikheten att en diskret stokastisk variabel X antar ett visst värde x. Ex) Dra ett kort ur en Kortlek. Utfall x = 1: 2,3,..., 10 Utfall x = 2: Ess Utfall x = 3: Knekt, Dam, Kung p X (x) = 9/13, x = 1 1/13, x = 2 3/13, x = 3 0 annars. En kumulativ sannolikhetsfunktion F X (x) beskriver sannolikheten att en diskret stokastisk variabel X x. Ex) Korten 0 fram till 1, 9/13 fram till 2, 10/13 fram till 3 sedan 1. En täthetsfunktion f X (x) visar hur sannolikheten för at en kontinuerlig stokastisk variabel X ska anta olika värden är fördelad. Rita en normalfördelning och en likformig fördelning (höjd). f(x)dx = 1 4 Rita spikes med olika höjd, summan 1. Rita
Sannolikheten att X hamnar i intervallet [a, b] ges av b a f(x)dx Rita in i bilden. En (kumulativ) fördelningsfunktion F X (x) beskriver sannolikheten att den kontinuerliga stokastiska variabeln X x. F X (x) = x f(t)dt lim F (x) = 0 x ingen sannolikhet lim F (x) = 1 x all sannolikhet. 0 F (x) 1 Sannolikheten att X hamnar i intervallet [a, b] ges av F X (b) F X (a). 2 Exempel Exempel : Fördelnings funktion för likformig sannolikhetsfördelning över (a b) F X (x) = x 0, x < a x 1 x a f(t)dt = a dt = (b a) 1, x > b b a, a x b 3 Deterministiska resp stokastiska modeller Samma fenomen kan ofta modelleras antingen med en stokastisk eller deterministisk modell. En deterministisk modell har en entydig lösning och oavsett vilken typ av metod man använder ska den konvergera mot den lösningen. Ex) ODEer, integraler, kemiska reaktioner med så stort antal molekyler att reaktioner alltid sker. En stokastisk modell beskriver en verklighet där utfallet inte är givet utan det blir olika realisationer varje gång. Ex) Partikelrörelse, kemiska reaktioner med så låga antal molekyler att reaktioner bara sker med en viss sannolikhet (i celler). Valet av modell kan ge kvalitativt olika resultat för samma problem. 5 Vilket svar är rätt?
4 Kort om Gillespies algoritm Kemiskt system med tre typer av molekyler. A, B, C beskriver antalet av varje sort. Reaktioner ses som enskilda händelser A + B k 1AB C A k 2A B Benägenheterna k 1 AB och k 2 A säger hur många gånger per tidsenhet händelsen förväntas inträffa. Initialt: Initialtillstånd x = x 0, t = t 0, sluttid T while t < T do Sampla τ, tid till nästa reaktion Hitta vilken reaktion r som ska hända Uppdatera tillståndet x = x + n r t = t + τ end while x = [ABC] n r beskriver förändringen av antal molekyler. n 1 = [ 1, 1, 1] Vi behöver veta hur vi ska sampla τ och r. En variabel för något som händer slumpmässigt ett visst antal ggr/tidsenhet är exponentialfördelad. Reaktionen är en diskret stokstisk variabel med given sannolikhetsfunktion. Rita system med A och B som blir C, två tillstånd t 0 och t + τ. 5 Behovet av sampling i stokastiska metoder För att kunna göra stokastiska simuleringar måste man kunna sampla slumptal från alla tänkbara sorters fördelningar. Vi har likformiga eller normalfördelade slumptal. Kan de användas i en generell algoritm? 6 Algoritmen Inverse Transform Sampling Idé: Vi vill generera slumptal med täthetsfunktion f X (x) Rita bild med icke normal bubbla till höger 0 i origo t.ex. (log-normal) Fördelningsfunktion F X (x) = x f(t)dt Rita bild 0 vid origo blending upp till 1 asymptotiskt. Sannolikheten att hamna i intervallet [a,b] är F X (b) F X (a). 6
Rita på x-axeln och visar hur det motsvarar y-axeln. Om vi slumpar likformigt fördelade y så får vi motsvarande x för aktuell täthetsfunktion genom att lösa y = F X (x) Om den inversa funktionen känd, x = F 1 (y) (därav namnet). Ex) Generera likformigt fördelade slumptal i [a,b] Rita fördelningsfunktionen igen. x a b a = y x = a + (b a)y Ex) Nu ska vi göra samma sak för kortleksexemplet Rita igen 0 fram till 1, 9/13 fram till 2, 10/13 fram till 3 och sedan 1. Visa på y-axeln intervallen. Hitta F X (i 1) < y F X (i) Det diskreta utfallet i motsvarar det samplade y:et 7