Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
Monte Carlo integrálás
Bevezetés Egyszerű mintavétel Talál – nem talál módszer Fontossági mintavétel
2
Számítógépes modellezés
Bevezetés Integrálok hatékony kiszámítása számos anyagtudományi problémánál lényeges. Egy közelítő integrálkiszámítási módszert fogunk megismerni, mely véletlen számokat használ az algoritmus során. innen ered a neve is („szerencsejáték”) Dr. Erdélyi Zoltán Számítógépes modellezés
3
Számítógépes modellezés
Bevezetés Minden olyan szimulációt (nem feltétlen számítógépes) Monte Carlo szimulációnak nevezünk, mely véletlen számokat használ az algoritmus során. Sztochasztikus szimulációnak is nevezik, mert nem eleve elrendelt (determinisztikus) a végeredmény. Az ötlet maga sokkal régebbi, mint a számítógép. Buffon ( ) : Egy 𝑑 távolságban vonalazott lapra ha ráejtünk egy 𝑙 hosszúságú tűt. Mekkora a valószínűsége, hogy a tű keresztez egy vonalat? Dr. Erdélyi Zoltán Számítógépes modellezés
4
Számítógépes modellezés
Bevezetés 𝑑 𝑙 𝑃= 2𝑙 𝜋𝑑 Dr. Erdélyi Zoltán Számítógépes modellezés
5
Számítógépes modellezés
Bevezetés Lazzarini (1901) meghatározta 𝜋-t 3408 dobásból.* 𝜋= = Monte Carlo lépés szimulált válasz válasz kívánt válasz MC lépés * Dr. Erdélyi Zoltán Számítógépes modellezés
6
Számítógépes modellezés
Bevezetés A „Numerikus számolás alapjai” anyagrészben tárgyaltuk a határozott integrálok kiszámításának numerikus közelítő módszerét. A legegyszerűbben az integrálközelítő összeget használhatjuk erre a célra, azaz Dr. Erdélyi Zoltán Számítógépes modellezés
7
Számítógépes modellezés
Bevezetés az [a, b] intervallumot n elemi intervallumra osztjuk n-1 tetszőlegesen választott x1, x2, ..., xn-1 ponttal. Választunk egy 𝜉 𝑖 pontot minden intervallumban vagy annak a szélén. Ebben az esetben az f(x) függvény [a, b] intervallumon vett határozott integrálja: 𝐼= 𝑖=1 𝑛 𝑓 𝜉 𝑖 Δ 𝑥 i ahol Δ 𝑥 𝑖 = 𝑥 𝑖 − 𝑥 𝑖−1 . Dr. Erdélyi Zoltán Számítógépes modellezés
8
Számítógépes modellezés
Bevezetés Ha a beosztás egyenközű, akkor Δ 𝑥 𝑖 = 𝑏−𝑎 𝑛 bármely i-re. Azaz 𝐼= 𝑏−𝑎 𝑛 𝑖=1 𝑛 𝑓 𝜉 𝑖 Dr. Erdélyi Zoltán Számítógépes modellezés
9
Számítógépes modellezés
Bevezetés Ez az integrálszámítás kiterjeszthető 𝑀 dimenzióra is ekkor 𝑀 db intervallumunk van [a1, b1], [a2, b2], …, [aM, bM] és az eljárás ugyanaz, mint 1D-ben, így 𝐼= 𝑏 1 − 𝑎 1 𝑏 2 − 𝑎 2 … 𝑏 𝑀 − 𝑎 𝑀 𝑛 1 𝑛 2 … 𝑛 𝑀 𝑖 1 =1 𝑛 1 𝑖 2 =1 𝑛 2 … 𝑖 𝑀 =1 𝑛 𝑀 𝑓 𝜉 𝑖 ahol 𝜉 𝑖 =( 𝜉 1 , 𝜉 2 ,…, 𝜉 𝑀 ) Dr. Erdélyi Zoltán Számítógépes modellezés
10
Számítógépes modellezés
Bevezetés Kicsit tömörebben: 𝐼= 𝑉 𝑀 𝑖 1 =1 𝑛 1 𝑖 2 =1 𝑛 2 … 𝑖 𝑀 =1 𝑛 𝑀 𝑓 𝜉 𝑖 𝑛 = 𝑉 𝑀 𝑓 𝜉 𝑖 ahol 𝑛≡ 𝑛 1 𝑛 2 … 𝑛 𝑀 az összes pontok száma 𝑉 𝑀 ≡ 𝑏 1 − 𝑎 1 𝑏 2 − 𝑎 2 … 𝑏 𝑀 − 𝑎 𝑀 az 𝑀 dimenziós intervallumdoboz térfogata 𝑓 𝜉 𝑖 ≡ 𝑖 1 =1 𝑛 1 𝑖 2 =1 𝑛 2 … 𝑖 𝑀 =1 𝑛 𝑀 𝑓 𝜉 𝑖 𝑛 ≡ 𝑖=1 𝑛 𝑓 𝜉 𝑖 𝑛 , azaz 𝑓 𝜉 𝑖 átlaga Dr. Erdélyi Zoltán Számítógépes modellezés
11
Számítógépes modellezés
Bevezetés Mindez még tovább egyszerűsíthető, ha a 𝜉 𝑖 pontokat sem tetszőlegesen választjuk az intervallumokban, hanem egyenközűen, a Δ𝑥 intervallumok közepére. Dr. Erdélyi Zoltán Számítógépes modellezés
12
Számítógépes modellezés
Egyszerű mintavétel A Monte Carlo integrálás alapötlete, hogy egyenközű intervallumok, vagy egyenközűen elosztott 𝜉 𝑖 -k helyett válasszuk ki véletlenszerűen (egyenletes eloszlású véletlen számokkal) a 𝜉 𝑖 pontokat – jelöljük ezeket 𝑥 𝑖 -vel 𝜉 𝑖 =( 𝜉 1 , 𝜉 2 ,…, 𝜉 𝑀 ) vektorokat 𝑀 dimenzió esetén – jelöljük ezeket 𝑥 𝑖 =( 𝑥 1 , 𝑥 2 ,…, 𝑥 𝑀 )-vel és így Dr. Erdélyi Zoltán Számítógépes modellezés
13
Számítógépes modellezés
Egyszerű mintavétel 𝐼≈ 𝑏−𝑎 𝑛 𝑖=1 𝑛 𝑓 𝑥 𝑖 vagy 𝐼≈ 𝑉 𝑀 𝑓 𝑥 𝑖 Dr. Erdélyi Zoltán Számítógépes modellezés
14
Számítógépes modellezés
Egyszerű mintavétel 0 𝜋 𝑒 −𝑥 cos(𝑥) 𝑑𝑥 mc1d.sci clear(); //Az MC intergral algoritmus function ii = mc1d(f,a,b,n) x = a + (b-a)*rand(1,n) //veletlen szamok [a,b]-ben fx = f(x) //f(x) kiszamolasa minden x-ben ii = (b-a)*sum(fx)/n // <f(x)> szamolasa endfunction Dr. Erdélyi Zoltán Számítógépes modellezés
15
Egyszerű mintavétel: példa
//Hasznalat function y = f(x) y = exp(-x).*cos(x) //integralni kivant fuggveny endfunction I=mc1d(f,0, %pi,1e5); //MC integral algoritmus hivasa disp(I) Dr. Erdélyi Zoltán Számítógépes modellezés
16
Számítógépes modellezés
Talál – nem talál „Talált – nem talált” módszer Az előző, mintavételezős módszernél még egyszerűbb. Lényegében a felületi valószínűséget használjuk ki f(x) A0 𝐴= 𝐴 0 + 𝐴 ∗ = 𝑏−𝑎 ℎ h A* a b x Dr. Erdélyi Zoltán Számítógépes modellezés
17
Számítógépes modellezés
Talál – nem talál Az integrál, azaz az 𝐴 ∗ terület és az 𝐴 terület aránya egyenlő az [a,b] és [0,h] intervallumokon generált véletlen számokból alkotott (x,y) koordinátájú pontok közül 𝐴 ∗ területbe eső ( 𝑛 ∗ ) per az összes véletlen számok számával (𝑛): 𝐴 ∗ 𝐴 = 𝑛 ∗ 𝑛 Tehát az integrál 𝐼= 𝐴 ∗ =𝐴 𝑛 ∗ 𝑛 Dr. Erdélyi Zoltán Számítógépes modellezés
18
Számítógépes modellezés
Talál – nem talál 𝑀 dimenzióra 𝐼= 𝑉 ∗ 𝑖=1 𝑛 𝑓( 𝑥 𝑖 ) 𝑛 ahol 𝑉 ∗ az érdekes térfogat mérete 𝑓 𝑥 𝑖 = 1 ha 𝑥 𝑖 az érdekes térfogatban van 0 egyébként Dr. Erdélyi Zoltán Számítógépes modellezés
19
Talál – nem talál: példa
Egységsugarú kör területe clear(); //egysegsugaru kor terulete function ii = korterulet(n) summa = 0 for i = 1:n x = rand(1,1) y = rand(1,1) if (x^2 + y^2 <= 1) then summa = summa + 1 end ii = 4 * summa/n // fentiek csak ¼ körre endfunction // ezért 4* //hivas A = korterulet(1e5); disp(A) az analitikus eredmény éppen 𝜋 ezt jó közelítéssel adja az algoritmus Dr. Erdélyi Zoltán Számítógépes modellezés
20
Fontossági mintavétel
Egy függvény az [a,b] intervallumon nem minden szakaszon ugyanolyan súllyal járul az integrálhoz farok rész kicsi járulék nagy értékeknél, nagy járulék f(x) a b x Dr. Erdélyi Zoltán Számítógépes modellezés
21
Fontossági mintavétel
így az egyenletes eloszlású véletlen számok használata igazán akkor hatékony, ha a függvény nem változik sokat az [a,b] intervallumon Ötlet: ha erősen változik a függvény az [a,b] intervallumon, akkor válasszunk sűrűbben véletlen számokat ott, ahol nagyobb a függvény (abszolút) értéke másként fogalmazva: transzformáljuk olyanná, ami nem nagyon változik és úgy integráljunk Dr. Erdélyi Zoltán Számítógépes modellezés
22
Fontossági mintavétel
𝐼= 𝑎 𝑏 𝑓 𝑥 𝑑𝑥 = 𝑎 𝑏 𝑓 𝑥 𝑔 𝑥 𝑔 𝑥 𝑑𝑥 = 𝑎 𝑏 𝑓 𝑥 𝑔 𝑥 𝑑𝐺 𝑥 ahol 𝐺 𝑥 = 𝑎 𝑥 𝑔 𝑥 𝑑𝑥 bevezetve 𝑟=𝐺(𝑥) Dr. Erdélyi Zoltán Számítógépes modellezés
23
Fontossági mintavétel
𝐼= 𝐺(𝑎) 𝐺(𝑏) 𝑓 𝐺 −1 (𝑟) 𝑔 𝐺 −1 (𝑟) 𝑑𝑟 ahol az integrandus már egy „lapos” függvény, ha jól választottuk meg 𝑔(𝑥)-et. Így 𝐼≈ 1 𝑁 𝑖=1 𝑁 𝑓 𝐺 −1 ( 𝑟 𝑖 ) 𝑔 𝐺 −1 ( 𝑟 𝑖 ) Dr. Erdélyi Zoltán Számítógépes modellezés
24
Fontossági mintavétel
ahol 𝑟 𝑖 már egyenletes eloszlású véletlen számok azaz az integrálást úgy végezhetjük, ahogyan már láttuk A probléma a 𝑔(𝑥) kiválasztása. általános recept nincs Dr. Erdélyi Zoltán Számítógépes modellezés
25
Számítógépes modellezés
Előnyök A Monte Carlo módszer akkor előnyös, ha a hagyományos integrálközelítő összegek kiszámítása nagyon számolásigényes. pl. sokdimenziós esetben a dimenziónkénti elemi intervallumok számának a szorzata adja az összegzések számát, ami óriási lehet a Monte Carlo módszerrel az összegzendő tagok száma független a dimenziótól Dr. Erdélyi Zoltán Számítógépes modellezés
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.