układ jest w stanie X. Do jakiego stanu przejdzie? wybieramy losowo stan próbny X p z pewnego otoczenia stanu X X p :=X+( x 1, x 2,..., x n ) – x i losowane z przedziału [-d,d] z rozkładem równomiernym możliwości: 1) X p mniej prawdopodobne liczymy r=w(X p )/w(X) jeśli r 1 [ w(X p ) w(X) ] – akceptujemy stan próbny X:=X p jeśli r<1 [w(X p )<w(X) ] akceptujemy punkt próbny z prawdopodobieństwem r losujemy liczbę losową q z przedziału [0,1] jeśli q < r – akceptujemy stan próbny X:=X p jeśli q r – odrzucamy Algorytm Metropolisa zawsze akceptujemy bardziej prawdopodobny punkt punkt mniej prawdopodobny akceptujemy z pstwem w(X p )/w(X) X XpXp w(X) [rozkład pstwa] X XpXp w(X) X XpXp 2) X p bardziej prawdopodobne
N= wędrowców. rozkład w(x)=C exp(-50x 2 ) kropki: liczba wędrowców w przedziale x-dx/2, x+dx/2 dx=0.01 równowaga w schemacie Metropolisa start: rozkład równomierny niebieska linia łączy punkty dane
obliczenia całek MC 3)użycie niejednorodnego rozkładu pstwa g(x) 0 taka aby g(x) mogło być gęstością prawdopodobieństwa wtedy: I = g(x) dla zmiennej losowej x opisanej rozkładem g(x) jeśli g(x) tak wybrana, aby h(x) słabo zmienna w przedziale (a,b) - mamy szanse na niski błąd uwaga: jeśli h(x i )=const – błąd będzie 0 / N
Przykład liczenia całek z użyciem a. Metropolisa h(x)=sqrt(5*pi) cos(x) liczba kroków a.Metropolisa start – wędrowcy rozmieszczeni wg rozkładu równomiernego z przedziału [-5,5] czerwona kreska: = niebieska kreska: dokładna wartość całki (1.1355) -5 5 N=1000 wędrowców : amplituda fluktuacji maleje z N C (gdzie C bliskie jedynce)
na brzegu u=0 Schemat Metropolisa a równania różniczkowe - wariacyjna metoda MC rozwiązywania równania Poissona x=+1 y=-1 y=+1 x=-1 pokażemy (w swoim czasie), że dla u - rozwiązania r.Poissona minimalna jest całka: rozwiązanie próbne: r. dokładne: C,a – parametry wariacyjne należy wybrać tak aby S - optymalne
Aby wyznaczyć stałą normalizacji E: funkcjonał: średnia z ułamka dla zbioru punktów (x,y) o rozkładzie -wariacyjna metoda MC rozwiązywania równania Poissona rozkład pstwa wyznaczony przez rozwiązanie próbne – generowany przy pomocy algorytmu Metropolisa
-wariacyjna metoda MC rozwiązywania równania Poissona wyniki: policzone dla a=2.2, C=0.018 (w pobliżu minimum S) – analityczna wartość S= -5.2e-4 dla wybranej funkcji próbnej (wartość dla rozwiązania dokładnego S=-6.27e-4) iteracje M „chwilowa wartość S” średnia wartość S od iteracji 200 (gdy osiągnięta równowaga w rozkładzie wędrowców) błąd (niepewność ) do oszacowania z zakresu fluktuacji wartości chwilowej względem średniej = np. odchylenie standardowe od 200 iteracji N=100
zakres fluktuacji = funkcja 1/sqrt(N) iteracje M N=100 N=1000 N=10 000
wyniki w funkcji parametrów wariacyjnych -wariacyjna metoda MC rozwiązywania równania Poissona N=1000 a=2.2, C=0.018 N=1000 a=2*2.2, C=2*0.018
-wariacyjna metoda MC rozwiązywania równania Poissona r.dokładne (dokładna S=-6.27e-4) S= -5.2e-4 1)„pik” niższy 2)słabiej zlokalizowany przy tej funkcji próbnej lepiej być nie może trzeba ją poprawić
Algorytm Metropolisa jako generator liczb losowych zaleta: pozwala wygenerować zmienną losową o dowolnym rozkładzie prawdopodobieństwa w dowolnej liczbie wymiarów wada:rozkład musi zostać wyhodowany algorytm, który posiada tę samą zaletę, a nie wymaga hodowli rozkładu: metoda von Neumanna
Generacja liczb losowych o zadanym rozkładzie metoda von Neumanna (rejection method) (ze stałą obwiednią) g(x)=[sin(x)/x] 2 / h= 1/ : fcja obwiedni (pomocnicza) g(x) h h losujemy x liczbę losową z przedziału [-10:10] rozkładem równomiernym. dla danego x: losujemy drugą liczbę - y z rozkładem równomiernym z [0,1] Jeśli y < g(x)/h akceptujemy punkt x sposób prosty, lecz bywa kosztowny. w naszym przypadku – wydajność 15% [pole pod czerwoną krzywą do pola pod czarną]
losowań x 1500 zmiennych x zaakceptowanych liczba zliczeń / 1500 w przedziale dx=0.01 oczekiwana liczba zliczeń / 1500
losowań x zmiennych x zaakceptowanych losowań x zmiennych x zaakceptowanych metoda von Neumanna ze zmienną obwiednią wada – bywa niskowydajna u nas – 15% metoda odwróconej dystrybuanty – wydajność 100%
x y(x) x-losowany równomiernie gęstość – g(y) tak dobrać y(x), aby odzyskać zadane g(y) metoda odwróconej dystrybuanty g(y) = pożądany rozkład pstwa y(x) = szukana zależność
metoda odwróconej dystrybuanty tak dobrać y(x), aby odzyskać zadane g(y) zamiast nieoznaczonej odpada stała całkowania x 1 0 ( x – losowa z rozkładem jednorodnym [0,1])
x– losowane równomiernie z przedziału [0,1] chcemy dostać g(y)=exp(-y) dla y od 0 do nieskończoności bierzemy c=1
względna częstość zliczeń (częstość zliczeń / częstość losowań) w przedziale o dx=0.01 niebieska-wynik oczekiwany dla exp(-x) [np dla x=0 : około dx ] losowań generacja rozkładu exponencjalnego – metodą odwróconej dystrybuanty - przykład
wydajność = 1 (jedna liczba losowa o zadanym rozkładzie na jedno rand() : metoda odwróconej dystrybuanty g(x) G(x) rozkład prawdopodobieństwa g(x) (na rysunku g(x)=exp(-x), dla x>0, 0 dla x<0) dystrybuanta rozkładu na rysunku G(x)=1-exp(-x) x – zmienna losowa o rozkładzie g i ściśle rosnącej i łatwo odwracalnej dystrybuancie G R–losowana z rozkładem równomiernym na odcinku (0,1) R=G(x) x=G -1 (R) uzyskamy generator o rozkładzie g G(x)=1-exp(-x) =y x= - log (1-y) = log ( 1/(1-y)) wylosujemy y z równomiernego x wyliczymy, podlegać będzie rozkładowi exp(-x)
inny przykład: generujemy zmienną losową x o rozkładzie g(x)=cos(x), dla x od 0 do pi/2. G(x)=sin(x) N-względna częstość zliczeń w przedziale o dx=0.01 y=arcsin(x)
Metoda = nie nadaje się do zastosowania dla rozkładu którego dystrybuanta nie jest odwracalna g(x)G(x)
g(x)=[sin(x)/x] 2 /pi ? Problem z odwracaniem funkcji. Przykład czy możemy zastosować metodę odwróconej dystrybuanty do generacji zmiennej o rozkładzie nie bardzo, bo całka z sin(x)/x jest funkcją specjalną [sine integral], -dostępna w bibliotekach numerycznych, ale trudno odwrócić podobny problem z rozkładem normalnym: metoda odwróconej dystrubuanty – ograniczona stosowalność - metoda wydajna i stosowalna szerzej
Generacja liczb losowych o zadanym rozkładzie metodą von Neumanna ze zmienną obwiednią [konwerter rozkładów pstwa (z jednego rozkładu – drugi)] g(x)=[sin(x)/x] 2 /pi h(x)=C f(x) obwiednia rozkład pstwa, który potrafimy wygenerować h(x) g(x)
Generacja liczb losowych o zadanym rozkładzie metodą von Neumanna ze zmienną obwiednią [konwerter rozkładów pstwa, z jednego-drugi]. g(x)=[sin(x)/x] 2 /pi h(x)=C f(x) obwiednia rozkład pstwa 1)losujemy x z rozkładem f(x) [musimy mieć odpowiedni generator]. 2)liczymy r=g(x)/h(x) 3)losujemy q z [0,1] jeśli q<r – akceptujemy punkt [g(x)/h(x)] f(x)=g(x)/C generacja tym bardziej efektywna, im g(x) bliższa wybranej obwiedni
Generacja liczb losowych o zadanym rozkładzie metodą von Neumanna ze zmienną obwiednią [ z jednego rozkładu – drugi]. metody ze stała i zmienną obwiednią różnią się użytym generatorem ze stałą = generator równomierny dwa razy użyty zmienną = generator równomierny oraz generator z rozkładem f g(x)=[sin(x)/x] 2 /pi h(x)=C f(x)
h(x)=1.5 f(x) 1) wygenerować f(x) 2) wyliczyć r=g(x)/h(x) 3) wylosować q z [0,1], jeśli q<r – bierzemy x Generacja liczb losowych o zadanym rozkładzie metodą von Neumanna ze zmienną obwiednią losowa [0:1] losowa z rozkładem f(x) od –10 do 10 g(x)=[sin(x)/x] 2 /pi
N= – zaakceptowanych N= – zaakceptowanych wydajność metody von Neumanna podnieśliśmy 5-krotnie stosując zmienną obwiednią
Generacja rozkładu normalnego: centralne twierdzenie graniczne f(x, ) – dowolny rozkład pstwa o wartości średniej 0 i wariancji x dla N – nieskończonego rozkład g(y) dąży do normalnego o wariancji x=rand()-0.5 : średnia 0 wariancja 2= 1/12 [najbardziej prawdopodobne znoszenie x do zera, ogony – tylko gdy x-wartości maxymalne] sqrt(N)
Podsumowanie – generatory liczb losowych o zadanych rozkładach Algorytm Metropolisa zaleta: pozwala wygenerować zmienną losową o dowolnym rozkładzie prawdopodobieństwa w dowolnej liczbie wymiarów wada:rozkład musi zostać wyhodowany metoda von Neumanna ze stałą obwiednią wada: niska wydajność odwróconej dystrybuanty – ograniczona stosowalność (dystrybuanta musi dać się odwrócić) metoda von Neumanna ze zmienną obwiednią same zalety, wymagany podobny do poszukiwanego rozkład prawdopodobieństwa
Równania różniczkowe: równania opisujące relacje spełniane przez pochodne nieznanej (poszukiwanej) funkcji cząstkowe: funkcja więcej niż jednej zmienna, np.: czas i położenie u x t t+dt np. wychylenie u(x,t) struny w położeniu x i czasie t równania cząstkowe: nie zawsze jedną ze zmiennych jest czas, ale zawsze opisują obiekty rozciągłe druga zasada dynamiki Newtona dla struny
równania różniczkowe zwyczajne: jedna zmienna niezależna np. czas dla elementów punktowych, nierozciągłych v(t) RC L napięciowe prawo Kirchoffa równanie liniowe drugiego rzędu r=(x,y) układ równań: ruch w polu centralnym (nieliniowe) równania Lotki-Volterry z – populacja zajęcy, w– wilków naturalne tempo wzrostu pop. zajęcy (pod nieobecność w), – zaniku wilków bez z parametry oddziaływania populacji układ równań nieliniowych 2 rzędu – problem początkowy po zadaniu x(t=0),y(t=0), x’(t=0), y’(t=0). układ r. 1 rzędu nieliniowe
zwyczajne zagadnienie brzegowe (zamiast czasu, położenie w 1D -element rozciągły opisany jedną współrzędną) np. równanie Eulera-Bernoulliego: wygięcie jednorodnego elastycznego pręta pod wpływem rozłożonego obciążenia w(x) lewy koniec: zamocowany i podparty prawy koniec: swobodny zwyczajne rzędu drugiego lub wyższego + warunki na funkcje i pochodne na końcach przedziału
Zaczynamy od rozwiązywania równań zwyczajnych 1)prostsza analiza niż dla cząstkowych 2)wprowadzimy pojęcia zbieżności, dokładności, stabilności itd. przydatne do metod rozwiązywania równań cząstkowych 3)jedna z metod rozwiązywania równań cząstkowych (metoda linii) - sprowadzamy równanie cząstkowe do układu równań zwyczajnych
Metoda linii: układy równań różniczkowych zwyczajnych - po dyskretyzacji przestrzennej cząstkowego równania różniczkowego równanie adwekcji (konwekcji) x x 1 x 2 x 3 x 4 x 5 centralny iloraz na pochodną przestrzenną u n (t)=u(x n,t) xx układ N równań zwyczajnych t
Metoda linii: układy równań różniczkowych zwyczajnych - po dyskretyzacji przestrzennej cząstkowego równania różniczkowego równanie adwekcji (konwekcji) x x 1 x 2 x 3 x 4 x 5 centralny iloraz na pochodną przestrzenną u n (t)=u(x n,t) xx układ N równań zwyczajnych t
zwyczajne równania różniczkowe rzędu pierwszego [oraz ich układy] warianty: liniowe (układy równań liniowych rozwiązuje się analitycznie) inna forma – nieliniowe =0 –jednorodne jeśli f=f(t) (nie zależy od y) rozwiązanie – całka nieoznaczona jeśli f=f(y) (nie zależy od t) równanie autonomiczne (nie podlega zaburzeniom zależnym od t)
zagadnienie początkowe: równanie różniczkowe + warunek początkowy jeśli f=f(t) rozwiązanie: całka oznaczona
Równanie różniczkowe zwyczajne dowolnego rzędu można sprowadzić do układu równań pierwszego rzędu wystarczy jeśli potrafimy efektywnie rozwiązać układ równań rzędu pierwszego Przykład: Zmiana oznaczeń Definicja traktowana jako jedno z równań do rozwiązania Równanie na najwyższą pochodną - jedyne „niedefinicyjne” Układ równań do rozwiązania
O konieczności numerycznego rozwiązywania RRZ 1R: analitycznie rozwiązać można układ równań liniowych. nieliniowe: na ogół nie. V2V2 V1V1 r1r1 r2r2 V3V3 r3r3 Układ 2 ciał oddziaływujących grawitacyjnie - analitycznie rozwiązany przez Newtona Układ 3: ciał – nie posiada analitycznego rozwiązania ponadto: automaty mające reagować na otoczenie nie znają postaci analitycznej f : ta jest brana z pomiarów bez wzoru na f skazani jesteśmy na rachunki numeryczne zazwyczaj nie znamy rozwiązań analitycznych równań nieliniowych
Numeryczne rozwiązywanie problemu początkowego jeśli potrafimy rozwiązać układ równań rzędu pierwszego -rozwiążemy każdy różniczkowy problem początkowy
Dobra metoda ma zapewnić zadaną dokładność przy pomocy minimalnej liczby wywołań f (przy maksymalnym kroku czasowym) przy dyskusji metod– zakłada się, że wyliczenie f jest kosztowne – [jeśli nie jest kosztowne – nie ma problemu] Dyskretyzacja zmiennej czasowej t t n+1 t n+2 n n+1 n+2 itd. Numeryczne rozwiązywanie problemu początkowego dyskretyzacja zmiennej czasowej sprowadza równania różniczkowe do różnicowych (metoda różnic skończonych)
im więcej znamy pochodnych w punkcie t tym większe otoczenie t możemy dobrze przybliżyć obciętym rozwinięciem Taylora tw. Taylora - między t a t istnieje taki punkt , że ograniczenie na resztę: maksymalna wartość czwartej pochodnej u w okolicy t stąd O( t 4 )
u=exp(-t 2 /2) Rząd błędu obcięcia w rozwinięciu Taylora u(0)=1u=exp(-t 2 /2) rozwijane wokół t=0 [w roz.T. t=t]
błąd lokalny schematu różnicowego: odchylenie wyniku numerycznego od dokładnego uzyskane w pojedynczym kroku Jawny schemat Eulera można wyliczyć bo znamy t i u(t) błąd lokalny jawnego Eulera w kroku t n-1 t n wg tw. Taylora ln =ln = przepis na pojedynczy krok z u(t) do u(t+ t )
Jawny schemat Eulera... krok wcale nie musi być taki sam dla każdego n, ale tak przyjmiemy do analizy stosowany wielokrotnie:
u t u0u0 jawny Euler krok wykonywany wg nachylenia (wartości f) z początku przedziału t+ t każdy krok wykonywany z nachyleniem branym z chwili, w której krok się zaczyna Zmniejszamy krok t: Błąd lokalny zmaleje, ale wykonamy więcej kroków. W każdym kroku wprowadzamy nowy błąd. Błędy się akumulują. Czy opłaca się zmniejszać kroki czasowe? Definicja: Błąd globalny e=rozwiązanie dokładne w chwili t minus rozwiązanie numeryczne w chwili t „Czy się opłaca” znaczy: Czy błąd globalny maleje gdy t maleje ? a jeśli tak - czy maleje do zera? (czy możliwe jest dokładne rozwiązanie równania różniczkowego uzyskane jako granica schematu różnicowego) Jawny schemat Eulera dokładny u(t)=exp(t) dla du/dt=u
Jawny schemat Eulera Czy błąd całkowity maleje gdy t maleje ? Czy maleje do zera? eksperyment numeryczny problem początkowy: u’= u, u(0)=1 z rozwiązaniem dokładnym u(t)=exp( t) t=0.001 dokładny jawny Euler e (błąd globalny) = dokładny - numeryczny
Jawny schemat Eulera Czy błąd globalny maleje gdy t maleje ? Czy maleje do zera? eksperyment numeryczny problem początkowy: u’= u, u(0)=1 z rozwiązaniem dokładnym u(t)=exp( t) zmniejszajmy krok czasowy, jaki wynik w chwili t=0.01 ? [1/e= ] n t u n exp( ) u n błąd globalny w chwili t=0.01 wydaje się zmieniać liniowo z krokiem czasowym interpretacja: błąd lokalny rzędu t 2 popełniony n = t/ t razy daje błąd globalny rzędu t
Definicja: Metody różnicowa jest zbieżna jeśli błąd globalny znika do zera w chwili T gdy z t do 0 zmniejszajmy krok czasowy, jaki wynik w chwili t=0.01 ? [1/e= ] n t u n exp( ) u n błąd globalny w chwili t=0.01 wydaje się zmieniać liniowo z krokiem czasowym
czy jawny schemat Eulera jest zbieżny? sprawdźmy analitycznie propagacje błędu (błąd globalny) dla ogólniejszego problemu modelowego. problem modelowy: ogólne liniowe niejednorodne o stałych współczynnikach zmiana y proporcjonalna do wartości y i niejednorodności rozwiązanie analityczne: warunek początkowy wzmacniany z czynnikiem exp( t) ten sam czynnik [tzw. propagator] wzmacnia niejednorodność niejednorodność wchodzi do rozwiązania tak jak warunek początkowy – z opóźnieniem odpowiadającym chwili w której się pojawia Zasada Duhamel t=0 t
oznaczenia y n = rozwiązanie równania różnicowego w chwili t n = t n y(t n ) = rozwiązanie dokładne r. różniczkowego schemat Eulera: odpowiedni wzór dla rozwiązania dokładnego z równania różniczkowego Aby wyliczyć błąd globalny e n+1 =y(t n+1 )-y n+1 odejmujemy stronami podkreślone wzory
e n+1 =y(t n+1 )-y n+1 gdzieś między t n a t n+1 błąd globalny w kroku n+1= błąd globalny w kroku n wzmocniony o czynnik (1+ t) i powiększony o nowy błąd lokalny cofnijmy się do chwili początkowej wnwn w n-1 (Euler) (dokładny)
dyskretna zasada Duhamel: błąd początkowy wzmacniany jak (1+ t) liczba kroków błąd który pojawia się w kroku i-tym wzmacniany w ten sam sposób, co początkowy Rozwiązanie dokładne równania przybliżonego:
Czy metoda zbieżna? ? załóżmy, że potrafimy wstawić warunek początkowy bezbłędnie : e 0 = 0 Zakładamy, że arytmetyka jest dokładna
pierwsze dwa wyrazy r.T. reszta + t 2 | |^2 /2 exp( n ) ? Pokazaliśmy, że metoda Eulera zbieżna dla problemu modelowego. Można pokazać, że zbieżna jest dla każdej f (ciągłej w sensie Lipschitza) Jej rząd zbieżności (dokładności) pierwszy
rząd zbieżności (dokładności) określa jakość metody: jak szybko błąd globalny dla chwili T zmierza do zera w funkcji t jawna metoda Eulera = pierwszy rząd dokładności O( t) jest to minimalny rząd dokładności dla użytecznej metody zmniejszajmy krok czasowy, jaki wynik w chwili t=0.01 ? [1/e= ] n t u n exp( ) u n 10 -5