Z Skrypty dla studentów Ekonofizyki UPGOW
(→Schemat Eulera dla układu równań stochastycznych) |
(→Schemat Milsteina) |
||
(Nie pokazano 70 wersji pomiędzy niniejszymi.) | |||
Linia 1: | Linia 1: | ||
+ | [[Category:MKZR]] | ||
==Stochastyczne równania różniczkowe== | ==Stochastyczne równania różniczkowe== | ||
W tym rozdziale zostaną opisane metody numeryczne, które służa do rozwiązywania [[PIZL:Stochastyczne_równania_różniczkowe|stochastycznych równań różniczkowych]] typu: | W tym rozdziale zostaną opisane metody numeryczne, które służa do rozwiązywania [[PIZL:Stochastyczne_równania_różniczkowe|stochastycznych równań różniczkowych]] typu: | ||
- | <math>\frac{dX(t)}{dt} = F(X(t), t) + G(X(t), t)\Gamma(t)</math> | + | :<math>\frac{dX(t)}{dt} = F(X(t), t) + G(X(t), t)\Gamma(t)</math> |
gdzie F i G to dowolne funkcje, a <math>\Gamma(t)</math> jest procesem losowym. | gdzie F i G to dowolne funkcje, a <math>\Gamma(t)</math> jest procesem losowym. | ||
Linia 9: | Linia 10: | ||
Dlatego poprawne jest zapisanie równanie Ito w postaci: | Dlatego poprawne jest zapisanie równanie Ito w postaci: | ||
- | <math>dX(t)= F(X(t), t)dt + G(X(t), t) dW(t)\;</math> | + | :<math>dX(t)= F(X(t), t)dt + G(X(t), t) dW(t)\;</math> |
Nie zmienia to ogólności, gdyż jak wiadomo każde równanie zapisane w interpretacji Stratonowicza ma swój odpowiednik Ito. Dla potrzeb metod numerycznych będziemy rozpatrywać zawsze równania Ito, a jeśli pojawią się równania Stratonowicza to będziemy je transpormować do postaci Ito. | Nie zmienia to ogólności, gdyż jak wiadomo każde równanie zapisane w interpretacji Stratonowicza ma swój odpowiednik Ito. Dla potrzeb metod numerycznych będziemy rozpatrywać zawsze równania Ito, a jeśli pojawią się równania Stratonowicza to będziemy je transpormować do postaci Ito. | ||
Linia 16: | Linia 17: | ||
- | === Schemat Eulera dla równań stochastycznych === | + | === Schemat Eulera-Maruyamy dla równań stochastycznych === |
Najprostszą metodą aproksymacji numerycznej równania stochastycznego jest podobnie jak w przypadku równań różniczkowych zwyczajnych jest schemat Eulera. Część deterministyczną równania stochastycznego traktujemy w taki sam sposób jak w schemacie Eulera dla równań różniczkowych zwyczajnych. Niech h oznacza krok całkowania i oś czasowa będzie zdyskretyzowana na przedzialy <math>t_{i-1},t_{i},t_{i+1}</math> oraz <math>h=t_{i}-t_{i-1}</math>. Wtedy część deterministyczna równania stochastycznego przyjmuje postać: | Najprostszą metodą aproksymacji numerycznej równania stochastycznego jest podobnie jak w przypadku równań różniczkowych zwyczajnych jest schemat Eulera. Część deterministyczną równania stochastycznego traktujemy w taki sam sposób jak w schemacie Eulera dla równań różniczkowych zwyczajnych. Niech h oznacza krok całkowania i oś czasowa będzie zdyskretyzowana na przedzialy <math>t_{i-1},t_{i},t_{i+1}</math> oraz <math>h=t_{i}-t_{i-1}</math>. Wtedy część deterministyczna równania stochastycznego przyjmuje postać: | ||
- | <math>X(t_i) = X(t_{i-1}) + \int_{t_{i-1}}^{t_{i}} F(X(t), t) dt \simeq X(t_{i-1}) + F(X(t_{i-1}, t_{i-1}) h </math> | + | :<math>X(t_i) = X(t_{i-1}) + \int_{t_{i-1}}^{t_{i}} F(X(t), t) dt \simeq X(t_{i-1}) + F(X(t_{i-1}, t_{i-1}) h </math> |
Aby całkować część stochastyczną potrzebujemy formuły na przyrost skończony procesu Wienera: | Aby całkować część stochastyczną potrzebujemy formuły na przyrost skończony procesu Wienera: | ||
- | <math> \int_{t_{i-1}}^{t_{i}} \Gamma(t) dt =\;\int_{t_{i-1}}^{t_{i}} dW(t) = W(t_{i})-W(t_{i-1})</math> | + | :<math> \int_{t_{i-1}}^{t_{i}} \Gamma(t) dt =\;\int_{t_{i-1}}^{t_{i}} dW(t) = W(t_{i})-W(t_{i-1})</math> |
Wiemy, że proces Wienera jest procesem o [[PIZL:Proces_Wienera_i_proces_dyfuzji#PROCES_WIENERA_W.28t.29|przyrostach niezależnych]], które są gaussowską zmienna losową o zerowej wartości średniej i wariancji | Wiemy, że proces Wienera jest procesem o [[PIZL:Proces_Wienera_i_proces_dyfuzji#PROCES_WIENERA_W.28t.29|przyrostach niezależnych]], które są gaussowską zmienna losową o zerowej wartości średniej i wariancji | ||
Linia 32: | Linia 33: | ||
Tak więc widać, że w schemacie Eulera całkę typu <math> \int_{t_{i-1}}^{t_{i}} \Gamma(t) dt </math> należy zastąpić w każdym kroku całkowania gaussowską zmienną losową o wariancji proporcjonalnej do kroku całkowania h. Ponieważ z reguły dysponujemy gaussowskich generatorem liczb losowych o jednostkowej wariancji N(0,1), można zapisać: | Tak więc widać, że w schemacie Eulera całkę typu <math> \int_{t_{i-1}}^{t_{i}} \Gamma(t) dt </math> należy zastąpić w każdym kroku całkowania gaussowską zmienną losową o wariancji proporcjonalnej do kroku całkowania h. Ponieważ z reguły dysponujemy gaussowskich generatorem liczb losowych o jednostkowej wariancji N(0,1), można zapisać: | ||
- | <math> \int_{t_{i-1}}^{t_{i}} \Gamma(t) dt = \sqrt{2 h} N(0,1) </math> | + | :<math> \int_{t_{i-1}}^{t_{i}} \Gamma(t) dt = \sqrt{2 h} N(0,1) </math> |
Ten zapis pokazuje też ważną cechę przy obliczaniu aproksymacji rozwiązań stochastycznych - najniższy rząd w h jest nie O(h) ale <math>O(h^{1/2})</math>. | Ten zapis pokazuje też ważną cechę przy obliczaniu aproksymacji rozwiązań stochastycznych - najniższy rząd w h jest nie O(h) ale <math>O(h^{1/2})</math>. | ||
Linia 39: | Linia 40: | ||
- | Korzystając w powyższych faktów, możemy zapisać pełny schemat Eulera dla równania stochastycznego (Ito): | + | Korzystając w powyższych faktów, możemy zapisać pełny schemat Eulera-Maruyamy dla równania stochastycznego (Ito): |
- | + | :<math>X(t_i) = X(t_{i-1}) + F(X(t_{i-1}, t_{i-1}) h + \sqrt{h}G(X(t_{t-1}), t_{t-1}) N(0,1)</math>. | |
Gaussowskie zmienne losowe możemy otrzymać np. korzystając z [[MKZR:Liczby_losowe#Algorytm_Boxa-Mullera|algorytmu Box-a Mullera]]. | Gaussowskie zmienne losowe możemy otrzymać np. korzystając z [[MKZR:Liczby_losowe#Algorytm_Boxa-Mullera|algorytmu Box-a Mullera]]. | ||
- | === Schemat Eulera dla układu równań stochastycznych === | + | === Schemat Eulera-Maruyamy dla układu równań stochastycznych === |
- | Schemat Eulera można uogólnić na układy równań stochastycznych. Niech <math>\mathbf X(t)</math> będzie wektorem o składowych | + | Schemat Eulera-Maruyamy można uogólnić na układy równań stochastycznych. Niech <math>\mathbf X(t)</math> będzie wektorem o składowych |
:<math>\mathbf X(t)=( X^1(t),X^2(t),...,X^n(t))</math>. | :<math>\mathbf X(t)=( X^1(t),X^2(t),...,X^n(t))</math>. | ||
Układ równań stochastycznych (Ito) można zapisać w ogólnej postaci: | Układ równań stochastycznych (Ito) można zapisać w ogólnej postaci: | ||
- | :<math>d X^i(t)= | + | :<math>d X^i(t)= F^i(\mathbf X(t), t)dt + \sum_{j=1}^{n} G^{i,j}(\mathbf X(t), t) dW^j(t)\;</math>\; j=1,2,...,n, |
gdzie <math>W^i(t),\;W^j(t)</math> są niezależnymi procesami Wienera dla <math>i\neq j</math>, | gdzie <math>W^i(t),\;W^j(t)</math> są niezależnymi procesami Wienera dla <math>i\neq j</math>, | ||
- | <math>F^i</math> oznacza wektor | + | <math>F^i</math> oznacza wektor dryftu a <math>G^{i,j}</math> jest macierzą <math>n \times n</math> funkcji. |
- | Wtedy schemat Eulera ma postać: | + | Wtedy schemat Eulera-Maruyamy ma postać: |
- | <math> X^j(t_i) = X^j(t_{i-1}) + F^j (\mathbf X(t_{i-1}), t_{i-1}) h + \sqrt{h} \sum_{k=1}^{n} G^{j,k}(\mathbf X(t), t) N^k(0,1)\; </math> | + | :<math> X^j(t_i) = X^j(t_{i-1}) + F^j (\mathbf X(t_{i-1}), t_{i-1}) h + \sqrt{h} \sum_{k=1}^{n} G^{j,k}(\mathbf X(t), t) N^k(0,1)\; </math> |
- | === | + | === Schemat Milsteina === |
- | + | Schemat Milsteina jest dany wzorem interacyjnym: | |
- | <math> | + | :<math>\displaystyle X(t_i) = X(t_{i-1}) + F(X(t_{i-1}, t_{i-1}) h - </math> |
+ | :<math> | ||
+ | \frac{1}{2}G(X(t_{i-1},t-1)G'(X(t_{i-1},t-1) h + \sqrt{h}G(X(t_{t-1}), t_{t-1}) N(0,1)</math>. | ||
+ | W stosunku do schematy Eulera-Maruyamy zawiera on dodatkowy składnik, proporcjonalny do O(h): | ||
- | + | :<math>- \frac{1}{2}G(X(t_{i-1},t-1)G'(X(t_{i-1},t-1) h</math>. | |
- | + | ||
- | + | Ta poprawka powoduje, że powyższy schemat jest pierwszego rzędu w sensie silnym w przeciwieństwie do schematu Eulera-Maruyamy, ktry jest rzędu 1/2. |
Aktualna wersja na dzień 20:35, 31 mar 2016
Spis treści |
Stochastyczne równania różniczkowe
W tym rozdziale zostaną opisane metody numeryczne, które służa do rozwiązywania stochastycznych równań różniczkowych typu:
\[\frac{dX(t)}{dt} = F(X(t), t) + G(X(t), t)\Gamma(t)\]
gdzie F i G to dowolne funkcje, a \(\Gamma(t)\) jest procesem losowym. Najczęstszym przypadek to taki w którym \(\Gamma(t)\) to biały szum Gaussowski. Tak zapisane równanie nie jest precyzyjnie określone ze względu na dylemat Stratonowicza-Ito. Dlatego poprawne jest zapisanie równanie Ito w postaci:
\[dX(t)= F(X(t), t)dt + G(X(t), t) dW(t)\;\]
Nie zmienia to ogólności, gdyż jak wiadomo każde równanie zapisane w interpretacji Stratonowicza ma swój odpowiednik Ito. Dla potrzeb metod numerycznych będziemy rozpatrywać zawsze równania Ito, a jeśli pojawią się równania Stratonowicza to będziemy je transpormować do postaci Ito.
Schemat Eulera-Maruyamy dla równań stochastycznych
Najprostszą metodą aproksymacji numerycznej równania stochastycznego jest podobnie jak w przypadku równań różniczkowych zwyczajnych jest schemat Eulera. Część deterministyczną równania stochastycznego traktujemy w taki sam sposób jak w schemacie Eulera dla równań różniczkowych zwyczajnych. Niech h oznacza krok całkowania i oś czasowa będzie zdyskretyzowana na przedzialy \(t_{i-1},t_{i},t_{i+1}\) oraz \(h=t_{i}-t_{i-1}\). Wtedy część deterministyczna równania stochastycznego przyjmuje postać:
\[X(t_i) = X(t_{i-1}) + \int_{t_{i-1}}^{t_{i}} F(X(t), t) dt \simeq X(t_{i-1}) + F(X(t_{i-1}, t_{i-1}) h \]
Aby całkować część stochastyczną potrzebujemy formuły na przyrost skończony procesu Wienera:
\[ \int_{t_{i-1}}^{t_{i}} \Gamma(t) dt =\;\int_{t_{i-1}}^{t_{i}} dW(t) = W(t_{i})-W(t_{i-1})\]
Wiemy, że proces Wienera jest procesem o przyrostach niezależnych, które są gaussowską zmienna losową o zerowej wartości średniej i wariancji \(2(t_{i} − t_{i-1})=2 h\).
Tak więc widać, że w schemacie Eulera całkę typu \( \int_{t_{i-1}}^{t_{i}} \Gamma(t) dt \) należy zastąpić w każdym kroku całkowania gaussowską zmienną losową o wariancji proporcjonalnej do kroku całkowania h. Ponieważ z reguły dysponujemy gaussowskich generatorem liczb losowych o jednostkowej wariancji N(0,1), można zapisać:
\[ \int_{t_{i-1}}^{t_{i}} \Gamma(t) dt = \sqrt{2 h} N(0,1) \]
Ten zapis pokazuje też ważną cechę przy obliczaniu aproksymacji rozwiązań stochastycznych - najniższy rząd w h jest nie O(h) ale \(O(h^{1/2})\).
Ponadto z takiego sformułowania widać też, że zmiany procesu Wienera w stosunku do przyrostów czasu są rozbieżne w granicy \(h\to 0\).
Korzystając w powyższych faktów, możemy zapisać pełny schemat Eulera-Maruyamy dla równania stochastycznego (Ito):
\[X(t_i) = X(t_{i-1}) + F(X(t_{i-1}, t_{i-1}) h + \sqrt{h}G(X(t_{t-1}), t_{t-1}) N(0,1)\].
Gaussowskie zmienne losowe możemy otrzymać np. korzystając z algorytmu Box-a Mullera.
Schemat Eulera-Maruyamy dla układu równań stochastycznych
Schemat Eulera-Maruyamy można uogólnić na układy równań stochastycznych. Niech \(\mathbf X(t)\) będzie wektorem o składowych \[\mathbf X(t)=( X^1(t),X^2(t),...,X^n(t))\]. Układ równań stochastycznych (Ito) można zapisać w ogólnej postaci:
\[d X^i(t)= F^i(\mathbf X(t), t)dt + \sum_{j=1}^{n} G^{i,j}(\mathbf X(t), t) dW^j(t)\;\]\; j=1,2,...,n,
gdzie \(W^i(t),\;W^j(t)\) są niezależnymi procesami Wienera dla \(i\neq j\), \(F^i\) oznacza wektor dryftu a \(G^{i,j}\) jest macierzą \(n \times n\) funkcji.
Wtedy schemat Eulera-Maruyamy ma postać:
\[ X^j(t_i) = X^j(t_{i-1}) + F^j (\mathbf X(t_{i-1}), t_{i-1}) h + \sqrt{h} \sum_{k=1}^{n} G^{j,k}(\mathbf X(t), t) N^k(0,1)\; \]
Schemat Milsteina
Schemat Milsteina jest dany wzorem interacyjnym:
\[\displaystyle X(t_i) = X(t_{i-1}) + F(X(t_{i-1}, t_{i-1}) h - \] \[ \frac{1}{2}G(X(t_{i-1},t-1)G'(X(t_{i-1},t-1) h + \sqrt{h}G(X(t_{t-1}), t_{t-1}) N(0,1)\].
W stosunku do schematy Eulera-Maruyamy zawiera on dodatkowy składnik, proporcjonalny do O(h):
\[- \frac{1}{2}G(X(t_{i-1},t-1)G'(X(t_{i-1},t-1) h\].
Ta poprawka powoduje, że powyższy schemat jest pierwszego rzędu w sensie silnym w przeciwieństwie do schematu Eulera-Maruyamy, ktry jest rzędu 1/2.