Rachunek prawdopodobieństwa i statystyka/Ćwiczenia 10: Łańcuchy Markowa: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Moskala (dyskusja | edycje)
Pitab (dyskusja | edycje)
Linia 1: Linia 1:
==Ćwiczenia i Zadania==
==Ćwiczenia==


{{cwiczenie|||
{{cwiczenie|10.1|cw 10.1|
Opiszemy symulację spaceru losowego za pomocą programu
Opiszemy symulację spaceru losowego za pomocą programu
Maple.
Maple.
Linia 11: Linia 11:
z prawdopodobieństwami <math>\displaystyle q</math>, <math>\displaystyle r</math> i <math>\displaystyle p</math>.
z prawdopodobieństwami <math>\displaystyle q</math>, <math>\displaystyle r</math> i <math>\displaystyle p</math>.


{active}{1d}{Spacer :<nowiki>=</nowiki> proc(N,p,q,sa,sb,M)}{}
  ''> Spacer :<nowiki>=</nowiki> proc(N,p,q,sa,sb,M)


{active}{1d}{local A, B, r, PA, PC, PB, stan, krok, droga:}{}
  > local A, B, r, PA, PC, PB, stan, krok, droga:


{active}{1d}{A :<nowiki>=</nowiki> -N: B :<nowiki>=</nowiki> N: r :<nowiki>=</nowiki> 1 - p - q: }{}
  > A :<nowiki>=</nowiki> -N: B :<nowiki>=</nowiki> N: r :<nowiki>=</nowiki> 1 -p - q:


{active}{1d}{PA :<nowiki>=</nowiki> empirical[0.,sa,1-sa]:
  > PA :<nowiki>=</nowiki> empirical[0.,sa,1-sa]:
PC :<nowiki>=</nowiki> empirical[q,r,p]:
  > PC :<nowiki>=</nowiki> empirical[q,r,p]:
PB :<nowiki>=</nowiki> empirical[1-sb,sb,0.]:}{}
  > PB :<nowiki>=</nowiki> empirical[1-sb,sb,0.]:


{active}{1d}{stan :<nowiki>=</nowiki> 0:
  > stan :<nowiki>=</nowiki> 0:
droga :<nowiki>=</nowiki> stan: }{}
  > droga :<nowiki>=</nowiki> stan:
 
  > from 1 to M do
{active}{1d}{from 1 to M do
  > if (A < stan  and stan < B) then
if (A < stan  and stan < B) then
  > krok :<nowiki>=</nowiki> random[PC](1) - 2
krok :<nowiki>=</nowiki> random[PC](1) - 2
  > elif
elif
  > stan <nowiki>=</nowiki> A then krok :<nowiki>=</nowiki> random[PA](1) - 2
stan <nowiki>=</nowiki> A then krok :<nowiki>=</nowiki> random[PA](1) - 2
  > elif
elif
  > stan <nowiki>=</nowiki> B then krok :<nowiki>=</nowiki> random[PB](1) - 2
stan <nowiki>=</nowiki> B then krok :<nowiki>=</nowiki> random[PB](1) - 2
  > fi:
fi:
  > stan :<nowiki>=</nowiki> stan + krok:
stan :<nowiki>=</nowiki> stan + krok:
  > droga :<nowiki>=</nowiki> droga,stan
droga :<nowiki>=</nowiki> droga,stan
  >od:}{}
od:}{}
  > plots[pointplot]([seq([i,droga[i+1]],
 
  > i <nowiki>=</nowiki> 0..nops([droga])-1)],axes<nowiki>=</nowiki>BOXED):
{active}{1d}{plots[pointplot]([seq([i,droga[i+1]],
  > end:''
i <nowiki>=</nowiki> 0..nops([droga])-1)],axes<nowiki>=</nowiki>BOXED):
end:}{}


Rysunek ze strony {ryssl} został utworzony poleceniem:
Rysunek ze strony {ryssl} został utworzony poleceniem:


{active}{1d}{Spacer(3,0.5,0.5,0.8,0.8,20);}{}
  ''> Spacer(3,0.5,0.5,0.8,0.8,20);''


Wygenerujemy teraz cztery ścieżki w spacerze
Wygenerujemy teraz cztery ścieżki w spacerze
losowym o 300 krokach. Bariery ustawiamy w punktach <math>\displaystyle -10</math> i <math>\displaystyle 10</math> oraz przyjmujemy następujące parametry:
losowym o 300 krokach. Bariery ustawiamy w punktach <math>\displaystyle -10</math> i <math>\displaystyle 10</math> oraz przyjmujemy następujące parametry:
<center><math>\displaystyle p = 0.5, \;q = 0.45, \;r = 0.05,\; sa = sb = 0.8.</math></center>
<center><math>\displaystyle p = 0.5, \;q = 0.45, \;r = 0.05,\; sa = sb = 0.8.</math></center>


Teraz wykonujemy cztery razy polecenie:
Teraz wykonujemy cztery razy polecenie:


{active}{1d}{Spacer(10,0.45,0.5,0.8,0.8,300);}{}
  ''> Spacer(10,0.45,0.5,0.8,0.8,300);''


otrzymując następujące wyniki:
otrzymując następujące wyniki:
Linia 70: Linia 71:
</center>
</center>


{{cwiczenie|||
{{cwiczenie|10.2|cw 10.2|
Przyjrzymy się jeszcze raz przykładowi [[##markov3|Uzupelnic markov3|]] przy założeniu, że
Przyjrzymy się jeszcze raz przykładowi [[Rachunek prawdopodobieństwa i statystyka/Wykład 10: Łańcuchy Markowa#przy_10.4|10.4]] przy założeniu, że
<math>\displaystyle d \ge 2</math>.
<math>\displaystyle d \ge 2</math>.
}}
}}
Linia 82: Linia 83:
spacerów losowych. Właśnie korzystając z
spacerów losowych. Właśnie korzystając z
tej niezależności, dostajemy:
tej niezależności, dostajemy:
<center><math>\displaystyle  
<center><math>\displaystyle  
{\mathbf{P}}^n_d(i)={\mathbf{P}}_d^n(i,i) = {\mathbf{P}}^n(i_1,i_1)\cdot \dots \cdot
{\mathbf{P}}^n_d(i)={\mathbf{P}}_d^n(i,i) = {\mathbf{P}}^n(i_1,i_1)\cdot \dots \cdot
Linia 87: Linia 90:
</math></center>
</math></center>


Korzystając z powyższego wzoru oraz z twierdzenia [[##101|Uzupelnic 101|]], można obliczyć  prawdopodobieństwa <math>\displaystyle {\mathbf{P}}_d^n(i)</math> oraz
 
Korzystając z powyższego wzoru oraz z twierdzenia [[Rachunek prawdopodobieństwa i statystyka/Wykład 10: Łańcuchy Markowa#tw_10.8|10.8]], można obliczyć  prawdopodobieństwa <math>\displaystyle {\mathbf{P}}_d^n(i)</math> oraz
prawdopodobieństwa powrotu w czasie skończonym <math>\displaystyle F^d_n(i)</math> dla <math>\displaystyle d = 2, 3, 4, 5, 6</math>.
prawdopodobieństwa powrotu w czasie skończonym <math>\displaystyle F^d_n(i)</math> dla <math>\displaystyle d = 2, 3, 4, 5, 6</math>.
Warto w tym przypadku znowu skorzystać z programu Maple. Okazuje się, że:
Warto w tym przypadku znowu skorzystać z programu Maple. Okazuje się, że:


;  
;  
:[:]<math>\displaystyle {\mathbf{P}}_2^n(i) \approx \infty</math>, <math>\displaystyle F_2(0) = 1</math>,
:<math>\displaystyle {\mathbf{P}}_2^n(i) \approx \infty</math>, <math>\displaystyle F_2(0) = 1</math>,


;  
;  
:[:]<math>\displaystyle {\mathbf{P}}_3^n(i) \approx 0.3932039296</math>, <math>\displaystyle F_3(0) \approx 0.2822299888</math>,
:<math>\displaystyle {\mathbf{P}}_3^n(i) \approx 0.3932039296</math>, <math>\displaystyle F_3(0) \approx 0.2822299888</math>,


;  
;  
:[:]<math>\displaystyle {\mathbf{P}}_4^n(i) \approx 0.1186363871</math>, <math>\displaystyle F_4(0) \approx  0.1060544682</math>,
:<math>\displaystyle {\mathbf{P}}_4^n(i) \approx 0.1186363871</math>, <math>\displaystyle F_4(0) \approx  0.1060544682</math>,


;  
;  
:[:]<math>\displaystyle {\mathbf{P}}_5^n(i) \approx 0.04682554981</math>, <math>\displaystyle F_5(0) \approx 0.04473099631</math>,
:<math>\displaystyle {\mathbf{P}}_5^n(i) \approx 0.04682554981</math>, <math>\displaystyle F_5(0) \approx 0.04473099631</math>,


;  
;  
:[:]<math>\displaystyle {\mathbf{P}}_6^n(i) \approx 0.02046077706</math>, <math>\displaystyle F_6(0) \approx 0.02005052768</math>.
:<math>\displaystyle {\mathbf{P}}_6^n(i) \approx 0.02046077706</math>, <math>\displaystyle F_6(0) \approx 0.02005052768</math>.
Powyższe wyniki można interpretować w sposób następujący: w przypadku jedno i dwuwymiarowym
Powyższe wyniki można interpretować w sposób następujący: w przypadku jedno i dwuwymiarowym
nie można się podczas spaceru zgubić, natomiast jest to możliwe w wyższych wymiarach, przy czym im wymiar większy,
nie można się podczas spaceru zgubić, natomiast jest to możliwe w wyższych wymiarach, przy czym im wymiar większy,
tym prawdopodobieństwo powrotu jest mniejsze.
tym prawdopodobieństwo powrotu jest mniejsze.


{{cwiczenie|||
{{cwiczenie|10.3|cw 10.3|
Rozważymy pewien spacer losowy z barierami i
Rozważymy pewien spacer losowy z barierami i
zbadamy numerycznie zachowanie się kolejnych potęg
zbadamy numerycznie zachowanie się kolejnych potęg
Linia 116: Linia 120:


Tym razem bariery ustawiamy w punktach <math>\displaystyle -2</math> oraz <math>\displaystyle 2</math>, zaś parametrami  określającymi spacer są:
Tym razem bariery ustawiamy w punktach <math>\displaystyle -2</math> oraz <math>\displaystyle 2</math>, zaś parametrami  określającymi spacer są:
<center><math>\displaystyle p = 0.5, \; q = 0.3,\; r = 0.2, \;sa = 0.9,\;sb = 0.1.</math></center>
<center><math>\displaystyle p = 0.5, \; q = 0.3,\; r = 0.2, \;sa = 0.9,\;sb = 0.1.</math></center>


Macierz przejścia ma wówczas postać:
Macierz przejścia ma wówczas postać:
<center><math>\displaystyle \mathbf{P} = \left[ \begin{array} {ccccc}  0.9& 0.1& 0.0& 0.0& 0.0
<center><math>\displaystyle \mathbf{P} = \left[ \begin{array} {ccccc}  0.9& 0.1& 0.0& 0.0& 0.0
\\\noalign{\medskip} 0.3& 0.2& 0.5& 0.0& 0.0\\\noalign{\medskip} 0.0&
\\\noalign{\medskip} 0.3& 0.2& 0.5& 0.0& 0.0\\\noalign{\medskip} 0.0&
0.3& 0.2& 0.5& 0.0\\\noalign{\medskip} 0.0& 0.0& 0.3& 0.2& 0.5
0.3& 0.2& 0.5& 0.0\\\noalign{\medskip} 0.0& 0.0& 0.3& 0.2& 0.5
\\\noalign{\medskip} 0.0& 0.0& 0.0& 0.9& 0.1\end{array}  \right], </math></center>
\\\noalign{\medskip} 0.0& 0.0& 0.0& 0.9& 0.1\end{array}  \right], </math></center>


zatem:
zatem:
<center><math>\displaystyle  
<center><math>\displaystyle  
\mathbf{P}^{10} \approx  \left[ \begin{array} {ccccc}  0.545& 0.115& 0.122& 0.145& 0.0731
\mathbf{P}^{10} \approx  \left[ \begin{array} {ccccc}  0.545& 0.115& 0.122& 0.145& 0.0731
Linia 133: Linia 145:
\right].
\right].
</math></center>
</math></center>


Widzimy więc, na przykład, że prawdopodobieństwo
Widzimy więc, na przykład, że prawdopodobieństwo
przejścia w 10 krokach z lewej bariery do niej samej
przejścia w 10 krokach z lewej bariery do niej samej
wynosi około 55,  prawdopodobieństwo
wynosi około 55,  prawdopodobieństwo
przejścia z lewej do prawej bariery --
przejścia z lewej do prawej bariery -
około 7, zaś z punktu 0 do niego
około 7, zaś z punktu 0 do niego
samego -- około 18.
samego - około 18.


{{cwiczenie|||
{{cwiczenie|10.4|cw 10.4|
Zobaczymy, jak funkcjonuje twierdzenie ergodyczne w przypadku
Zobaczymy, jak funkcjonuje twierdzenie ergodyczne w przypadku
spaceru losowego opisanego w ćwiczeniu [[##cslnum|Uzupelnic cslnum|]].
spaceru losowego opisanego w ćwiczeniu [[#cw_10.3|10.3]].
}}
}}


Macierze <math>\displaystyle \mathbf{P}^{30}</math> i <math>\displaystyle \mathbf{P}^{50}</math> wyglądają następująco:
Macierze <math>\displaystyle \mathbf{P}^{30}</math> i <math>\displaystyle \mathbf{P}^{50}</math> wyglądają następująco:
<center><math>\displaystyle \mathbf{P}^{30} \approx  \left[ \begin{array} {ccccc}  0.345& 0.103& 0.159& 0.254& 0.140
<center><math>\displaystyle \mathbf{P}^{30} \approx  \left[ \begin{array} {ccccc}  0.345& 0.103& 0.159& 0.254& 0.140
\\\noalign{\medskip} 0.309& 0.101& 0.165& 0.274& 0.152
\\\noalign{\medskip} 0.309& 0.101& 0.165& 0.274& 0.152
Linia 154: Linia 169:
\right],
\right],
</math></center>
</math></center>


<center><math>\displaystyle  \mathbf{P}^{50} \approx  \left[ \begin{array} {ccccc}  0.309& 0.101& 0.165& 0.274& 0.152
<center><math>\displaystyle  \mathbf{P}^{50} \approx  \left[ \begin{array} {ccccc}  0.309& 0.101& 0.165& 0.274& 0.152
Linia 162: Linia 178:
\right].
\right].
</math></center>
</math></center>


Widzimy, że (tak jak przewiduje twierdzenie) wiersze
Widzimy, że (tak jak przewiduje twierdzenie) wiersze
Linia 169: Linia 186:
odpowiedni układ równań postaci <math>\displaystyle Ax = b</math>. Wyznaczamy
odpowiedni układ równań postaci <math>\displaystyle Ax = b</math>. Wyznaczamy
najpierw <math>\displaystyle A</math> oraz <math>\displaystyle b</math> tak, aby układ ten był równoważny układowi występującemu
najpierw <math>\displaystyle A</math> oraz <math>\displaystyle b</math> tak, aby układ ten był równoważny układowi występującemu
w twierdzeniu ergodycznym (twierdzenie [[##markovp54|Uzupelnic markovp54|]]). Otrzymujemy:
w twierdzeniu ergodycznym (twierdzenie [[Rachunek prawdopodobieństwa i statystyka/Wykład 10: Łańcuchy Markowa#tw_10.11|10.11]]). Otrzymujemy:
 
 
<center><math>\displaystyle  
<center><math>\displaystyle  
A  = \left[ \begin{array} {ccccc} - 0.1& 0.3&0&0&0\\\noalign{\medskip} 0.1&- 0.8& 0.3&0&0\\\noalign{\medskip}0& 0.5&- 0.8& 0.3&0
A  = \left[ \begin{array} {ccccc} - 0.1& 0.3&0&0&0\\\noalign{\medskip} 0.1&- 0.8& 0.3&0&0\\\noalign{\medskip}0& 0.5&- 0.8& 0.3&0
Linia 176: Linia 195:
\end{array}  \right].
\end{array}  \right].
</math></center>
</math></center>


Łatwo obliczyć (można, oczywiście, skorzystać z programu Maple),
Łatwo obliczyć (można, oczywiście, skorzystać z programu Maple),
że przybliżonym rozwiązaniem naszego układu równań jest następujący wektor <math>\displaystyle \pi</math>:
że przybliżonym rozwiązaniem naszego układu równań jest następujący wektor <math>\displaystyle \pi</math>:


<center><math>\displaystyle  
<center><math>\displaystyle  
Linia 184: Linia 205:
0.15451\end{array}  \right].
0.15451\end{array}  \right].
</math></center>
</math></center>


Widzimy, że rzeczywiście rozkład stacjonarny niewiele różni się od wierszy macierzy
Widzimy, że rzeczywiście rozkład stacjonarny niewiele różni się od wierszy macierzy
<math>\displaystyle P^{50}</math>.
<math>\displaystyle P^{50}</math>.


{{cwiczenie|||
 
{{cwiczenie|10.5|cw 10.5|
Znajdziemy rozkłady i wartości oczekiwane zmiennych losowych <math>\displaystyle X_n</math> (dla
Znajdziemy rozkłady i wartości oczekiwane zmiennych losowych <math>\displaystyle X_n</math> (dla
niektórych wartości <math>\displaystyle n</math>), oznaczających kapitał
niektórych wartości <math>\displaystyle n</math>), oznaczających kapitał
Antoniego z przykładu [[##markov17|Uzupelnic markov17|]]. Przyjmiemy następujące założenia:
Antoniego z przykładu [[Rachunek prawdopodobieństwa i statystyka/Wykład 10: Łańcuchy Markowa#przy_10.5|10.5]]. Przyjmiemy następujące założenia:
 
 
<center><math>\displaystyle A = 8, \; B=5, \; p = 0.2,\; q = 0.4,</math></center>
<center><math>\displaystyle A = 8, \; B=5, \; p = 0.2,\; q = 0.4,</math></center>


które oznaczają, że Antoni ma większy kapitał, ale Bolesław
które oznaczają, że Antoni ma większy kapitał, ale Bolesław
Linia 201: Linia 227:
Przypominamy, że mamy tutaj 14 stanów: <center><math>\displaystyle E = \{0,1,\dots, 13\}.</math></center>
Przypominamy, że mamy tutaj 14 stanów: <center><math>\displaystyle E = \{0,1,\dots, 13\}.</math></center>


Stan "0" oznacza definitywną ruinę Adama, zaś stan "13" -- jego całkowitą wygraną,
Stan "0" oznacza definitywną ruinę Adama, zaś stan "13" - jego całkowitą wygraną,
natomiast gra startuje ze stanu "8".
natomiast gra startuje ze stanu "8".


Konstruujemy macierz przejścia <math>\displaystyle \mathbf{P}</math>:
Konstruujemy macierz przejścia <math>\displaystyle \mathbf{P}</math>:
<center><math>\displaystyle  
<center><math>\displaystyle  
\mathbf{P} =  \left[ \begin{array} {cccccccccccccc} 1&0&0&0&0&0&0&0&0&0&0&0&0&0
\mathbf{P} =  \left[ \begin{array} {cccccccccccccc} 1&0&0&0&0&0&0&0&0&0&0&0&0&0
Linia 221: Linia 249:
\\\noalign{\medskip}0&0&0&0&0&0&0&0&0&0&0&0&0&1\end{array}  \right]
\\\noalign{\medskip}0&0&0&0&0&0&0&0&0&0&0&0&0&1\end{array}  \right]
</math></center>
</math></center>


i zadajemy rozkład początkowy:
i zadajemy rozkład początkowy:
<center><math>\displaystyle  
<center><math>\displaystyle  
\mathbf{p} =  \left[ \begin{array} {cccccccccccccc} 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \end{array}  \right],
\mathbf{p} =  \left[ \begin{array} {cccccccccccccc} 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \end{array}  \right],
</math></center>
</math></center>


Można teraz łatwo obliczać kolejne rozkłady korzystając z wzoru ([[##eq:101|Uzupelnic eq:101|]]) --
 
Można teraz łatwo obliczać kolejne rozkłady korzystając z wzoru ([[Rachunek prawdopodobieństwa i statystyka/Wykład 10: Łańcuchy Markowa#10.1|10.1]]) -
tak wyglądają, obliczone przy pomocy programu Maple,
tak wyglądają, obliczone przy pomocy programu Maple,
rozkłady po zakończeniu piątej, dwudziestej i dwusetnej gry:
rozkłady po zakończeniu piątej, dwudziestej i dwusetnej gry:
<center><math>\displaystyle  
<center><math>\displaystyle  
\mathbf{p}_5 \approx  \left[ \begin{array} {c} 0 \\ 0 \\
\mathbf{p}_5 \approx  \left[ \begin{array} {c} 0 \\ 0 \\
Linia 242: Linia 276:
0.0311 \end{array}  \right],
0.0311 \end{array}  \right],
</math></center>
</math></center>


natomiast ich nadzieje matematyczne wynoszą:
natomiast ich nadzieje matematyczne wynoszą:
<center><math>\displaystyle {\Bbb E}(X_5) \approx 7.00000,\;\;
<center><math>\displaystyle {\Bbb E}(X_5) \approx 7.00000,\;\;
{\Bbb E}(X_{20}) \approx 4.157931285, \;\;
{\Bbb E}(X_{20}) \approx 4.157931285, \;\;
{\Bbb E}(X_{200}) \approx 0.4050783639.
{\Bbb E}(X_{200}) \approx 0.4050783639.
</math></center>
</math></center>


Tak więc po 200 grach mamy prawie 97 pewności, że Adam będzie bankrutem (jest też niewielka nadzieja, że wygra).
Tak więc po 200 grach mamy prawie 97 pewności, że Adam będzie bankrutem (jest też niewielka nadzieja, że wygra).
Linia 255: Linia 293:
Powyższą sytuację ilustruje także następująca animacja rozkładów prawdopodobieństwa zmiennych losowych <math>\displaystyle X_1, \dots, X_{200}</math>:
Powyższą sytuację ilustruje także następująca animacja rozkładów prawdopodobieństwa zmiennych losowych <math>\displaystyle X_1, \dots, X_{200}</math>:


'''. . .'''
===Zadanie 10.1===
 
{{cwiczenie|||
Napisz i uruchom program, który dla zadanej macierzy przejścia i zadanego rozkładu prawdopodobieństwa: (a) symuluje łańcuch Markowa, (b) wyznacza kolejne rozkłady prawdopodobieństwa tego łańcucha.
Napisz i uruchom program, który dla zadanej macierzy przejścia i zadanego rozkładu prawdopodobieństwa: (a) symuluje łańcuch Markowa, (b) wyznacza kolejne rozkłady prawdopodobieństwa tego łańcucha.



Wersja z 22:40, 23 sie 2006

Ćwiczenia

Ćwiczenie 10.1

Opiszemy symulację spaceru losowego za pomocą programu Maple.

Poniższa procedura rysuje położenie cząsteczki w zależności od czasu, podczas spaceru losowego o zadanych parametrach. Funkcja empirical[q,r,p] generuje rozkład, według którego losuje się liczby 1, 2 i 3 z prawdopodobieństwami q, r i p.

 > Spacer := proc(N,p,q,sa,sb,M)
 > local A, B, r, PA, PC, PB, stan, krok, droga:
 > A := -N: B := N: r := 1 -p - q:
 > PA := empirical[0.,sa,1-sa]:
 > PC := empirical[q,r,p]:
 > PB := empirical[1-sb,sb,0.]:
 > stan := 0:
 > droga := stan:
 > from 1 to M do
 > if (A < stan  and stan < B) then
 > krok := random[PC](1) - 2
 > elif
 > stan = A then krok := random[PA](1) - 2
 > elif
 > stan = B then krok := random[PB](1) - 2
 > fi:
 > stan := stan + krok:
 > droga := droga,stan
 >od:}{}
 > plots[pointplot]([seq([i,droga[i+1]],
 > i = 0..nops([droga])-1)],axes=BOXED):
 > end:

Rysunek ze strony {ryssl} został utworzony poleceniem:

 > Spacer(3,0.5,0.5,0.8,0.8,20);

Wygenerujemy teraz cztery ścieżki w spacerze losowym o 300 krokach. Bariery ustawiamy w punktach 10 i 10 oraz przyjmujemy następujące parametry:


p=0.5,q=0.45,r=0.05,sa=sb=0.8.


Teraz wykonujemy cztery razy polecenie:

 > Spacer(10,0.45,0.5,0.8,0.8,300);

otrzymując następujące wyniki:

<flash>file=Rp.1.102.swf|width=350|height=350</flash>

<flash>file=Rp.1.103.swf|width=350|height=350</flash>

<flash>file=Rp.1.104.swf|width=350|height=350</flash>

<flash>file=Rp.1.105.swf|width=350|height=350</flash>

Ćwiczenie 10.2

Przyjrzymy się jeszcze raz przykładowi 10.4 przy założeniu, że d2.

Niech 𝐏d oznacza macierz przejścia naszego łańcucha Markowa. Ustalmy stan i=(i1,,id)d. Zauważmy, że przejście w n krokach ze stanu i z powrotem do tego stanu podczas d-wymiarowego spaceru losowego, jest równoważne przejściom ze stanów ij do ij w n krokach podczas niezależnych od siebie jednowymiarowych spacerów losowych. Właśnie korzystając z tej niezależności, dostajemy:


𝐏dn(i)=𝐏dn(i,i)=𝐏n(i1,i1)𝐏n(id,id)=(𝐏n(0,0))d.


Korzystając z powyższego wzoru oraz z twierdzenia 10.8, można obliczyć prawdopodobieństwa 𝐏dn(i) oraz prawdopodobieństwa powrotu w czasie skończonym Fnd(i) dla d=2,3,4,5,6. Warto w tym przypadku znowu skorzystać z programu Maple. Okazuje się, że:

𝐏2n(i), F2(0)=1,
𝐏3n(i)0.3932039296, F3(0)0.2822299888,
𝐏4n(i)0.1186363871, F4(0)0.1060544682,
𝐏5n(i)0.04682554981, F5(0)0.04473099631,
𝐏6n(i)0.02046077706, F6(0)0.02005052768.

Powyższe wyniki można interpretować w sposób następujący: w przypadku jedno i dwuwymiarowym nie można się podczas spaceru zgubić, natomiast jest to możliwe w wyższych wymiarach, przy czym im wymiar większy, tym prawdopodobieństwo powrotu jest mniejsze.

Ćwiczenie 10.3

Rozważymy pewien spacer losowy z barierami i zbadamy numerycznie zachowanie się kolejnych potęg macierzy przejścia.

Tym razem bariery ustawiamy w punktach 2 oraz 2, zaś parametrami określającymi spacer są:


p=0.5,q=0.3,r=0.2,sa=0.9,sb=0.1.


Macierz przejścia ma wówczas postać:


Parser nie mógł rozpoznać (nieznana funkcja „\noalign”): {\displaystyle \displaystyle \mathbf{P} = \left[ \begin{array} {ccccc} 0.9& 0.1& 0.0& 0.0& 0.0 \\\noalign{\medskip} 0.3& 0.2& 0.5& 0.0& 0.0\\\noalign{\medskip} 0.0& 0.3& 0.2& 0.5& 0.0\\\noalign{\medskip} 0.0& 0.0& 0.3& 0.2& 0.5 \\\noalign{\medskip} 0.0& 0.0& 0.0& 0.9& 0.1\end{array} \right], }


zatem:


Parser nie mógł rozpoznać (nieznana funkcja „\noalign”): {\displaystyle \displaystyle \mathbf{P}^{10} \approx \left[ \begin{array} {ccccc} 0.545& 0.115& 0.122& 0.145& 0.0731 \\\noalign{\medskip} 0.346& 0.103& 0.159& 0.252& 0.140 \\\noalign{\medskip} 0.219& 0.0956& 0.181& 0.325& 0.180 \\\noalign{\medskip} 0.157& 0.0906& 0.195& 0.353& 0.205 \\\noalign{\medskip} 0.142& 0.0909& 0.194& 0.368& 0.205\end{array} \right]. }


Widzimy więc, na przykład, że prawdopodobieństwo przejścia w 10 krokach z lewej bariery do niej samej wynosi około 55, prawdopodobieństwo przejścia z lewej do prawej bariery - około 7, zaś z punktu 0 do niego samego - około 18.

Ćwiczenie 10.4

Zobaczymy, jak funkcjonuje twierdzenie ergodyczne w przypadku spaceru losowego opisanego w ćwiczeniu 10.3.

Macierze 𝐏30 i 𝐏50 wyglądają następująco:


Parser nie mógł rozpoznać (nieznana funkcja „\noalign”): {\displaystyle \displaystyle \mathbf{P}^{30} \approx \left[ \begin{array} {ccccc} 0.345& 0.103& 0.159& 0.254& 0.140 \\\noalign{\medskip} 0.309& 0.101& 0.165& 0.274& 0.152 \\\noalign{\medskip} 0.286& 0.0992& 0.170& 0.286& 0.159 \\\noalign{\medskip} 0.274& 0.0985& 0.172& 0.293& 0.163 \\\noalign{\medskip} 0.271& 0.0983& 0.172& 0.294& 0.164\end{array} \right], }


Parser nie mógł rozpoznać (nieznana funkcja „\noalign”): {\displaystyle \displaystyle \mathbf{P}^{50} \approx \left[ \begin{array} {ccccc} 0.309& 0.101& 0.165& 0.274& 0.152 \\\noalign{\medskip} 0.302& 0.100& 0.167& 0.277& 0.154 \\\noalign{\medskip} 0.298& 0.100& 0.167& 0.280& 0.155 \\\noalign{\medskip} 0.296& 0.0998& 0.168& 0.281& 0.156 \\\noalign{\medskip} 0.295& 0.0998& 0.168& 0.281& 0.156\end{array} \right]. }


Widzimy, że (tak jak przewiduje twierdzenie) wiersze powyższych macierzy stają się do siebie coraz bardziej podobne.

Znajdziemy teraz rozkład stacjonarny, rozwiązując odpowiedni układ równań postaci Ax=b. Wyznaczamy najpierw A oraz b tak, aby układ ten był równoważny układowi występującemu w twierdzeniu ergodycznym (twierdzenie 10.11). Otrzymujemy:


Parser nie mógł rozpoznać (nieznana funkcja „\noalign”): {\displaystyle \displaystyle A = \left[ \begin{array} {ccccc} - 0.1& 0.3&0&0&0\\\noalign{\medskip} 0.1&- 0.8& 0.3&0&0\\\noalign{\medskip}0& 0.5&- 0.8& 0.3&0 \\\noalign{\medskip}0&0& 0.5&- 0.8& 0.9\\\noalign{\medskip}0&0&0& 0.5& - 0.9\\\noalign{\medskip}1&1&1&1&1\end{array} \right], \ \ b = \left[ \begin{array} {c} 0\\\noalign{\medskip}0\\\noalign{\medskip}0\\\noalign{\medskip}0\\\noalign{\medskip}0\\\noalign{\medskip}1 \end{array} \right]. }


Łatwo obliczyć (można, oczywiście, skorzystać z programu Maple), że przybliżonym rozwiązaniem naszego układu równań jest następujący wektor π:


π[0.300370.100120.166870.278120.15451].


Widzimy, że rzeczywiście rozkład stacjonarny niewiele różni się od wierszy macierzy P50.


Ćwiczenie 10.5

Znajdziemy rozkłady i wartości oczekiwane zmiennych losowych Xn (dla niektórych wartości n), oznaczających kapitał Antoniego z przykładu 10.5. Przyjmiemy następujące założenia:


A=8,B=5,p=0.2,q=0.4,


które oznaczają, że Antoni ma większy kapitał, ale Bolesław jest lepszym graczem.

Przypominamy, że mamy tutaj 14 stanów:

E={0,1,,13}.

Stan "0" oznacza definitywną ruinę Adama, zaś stan "13" - jego całkowitą wygraną, natomiast gra startuje ze stanu "8".

Konstruujemy macierz przejścia 𝐏:


Parser nie mógł rozpoznać (nieznana funkcja „\noalign”): {\displaystyle \displaystyle \mathbf{P} = \left[ \begin{array} {cccccccccccccc} 1&0&0&0&0&0&0&0&0&0&0&0&0&0 \\\noalign{\medskip} 0.4& 0.4& 0.2&0&0&0&0&0&0&0&0&0&0&0 \\\noalign{\medskip}0& 0.4& 0.4& 0.2&0&0&0&0&0&0&0&0&0&0 \\\noalign{\medskip}0&0& 0.4& 0.4& 0.2&0&0&0&0&0&0&0&0&0 \\\noalign{\medskip}0&0&0& 0.4& 0.4& 0.2&0&0&0&0&0&0&0&0 \\\noalign{\medskip}0&0&0&0& 0.4& 0.4& 0.2&0&0&0&0&0&0&0 \\\noalign{\medskip}0&0&0&0&0& 0.4& 0.4& 0.2&0&0&0&0&0&0 \\\noalign{\medskip}0&0&0&0&0&0& 0.4& 0.4& 0.2&0&0&0&0&0 \\\noalign{\medskip}0&0&0&0&0&0&0& 0.4& 0.4& 0.2&0&0&0&0 \\\noalign{\medskip}0&0&0&0&0&0&0&0& 0.4& 0.4& 0.2&0&0&0 \\\noalign{\medskip}0&0&0&0&0&0&0&0&0& 0.4& 0.4& 0.2&0&0 \\\noalign{\medskip}0&0&0&0&0&0&0&0&0&0& 0.4& 0.4& 0.2&0 \\\noalign{\medskip}0&0&0&0&0&0&0&0&0&0&0& 0.4& 0.4& 0.2 \\\noalign{\medskip}0&0&0&0&0&0&0&0&0&0&0&0&0&1\end{array} \right] }


i zadajemy rozkład początkowy:


𝐩=[00000000100000],


Można teraz łatwo obliczać kolejne rozkłady korzystając z wzoru (10.1) - tak wyglądają, obliczone przy pomocy programu Maple, rozkłady po zakończeniu piątej, dwudziestej i dwusetnej gry:


𝐩5[0000.01020.05120.1280.2050.2300.1890.1150.05120.01600.003200.00032],𝐩20[0.1760.06200.09540.1130.1180.1120.09730.07760.05680.03780.02250.01140.004220.0165],𝐩200[0.9690.00001170.00001600.00001610.00001420.00001140.8541050.6041050.4021050.2501050.1431050.7071060.2571060.0311],


natomiast ich nadzieje matematyczne wynoszą:


𝔼(X5)7.00000,𝔼(X20)4.157931285,𝔼(X200)0.4050783639.


Tak więc po 200 grach mamy prawie 97 pewności, że Adam będzie bankrutem (jest też niewielka nadzieja, że wygra). Jednakże jest niezwykle mało prawdopodobne, że gra w ogóle będzie się toczyć (formalnie toczy się przez cały czas, tylko pozostaje w jednym ze stanów pochłaniających: "0" lub " 13").

Powyższą sytuację ilustruje także następująca animacja rozkładów prawdopodobieństwa zmiennych losowych X1,,X200:

Zadanie 10.1

Napisz i uruchom program, który dla zadanej macierzy przejścia i zadanego rozkładu prawdopodobieństwa: (a) symuluje łańcuch Markowa, (b) wyznacza kolejne rozkłady prawdopodobieństwa tego łańcucha.

}}

Ćwiczenie

Rozważmy spacer losowy po okręgu. Załóżmy, że cząsteczka może się znajdować w punktach odpowiadającym kątom k2πn, gdzie n jest ustaloną liczbą naturalną, natomiast k=0,,n1. Cząsteczka porusza się zgodnie z ruchem wskazówek zegara z prawdopodobieństwem p, przeciwnie do ruchu wskazówek zegara -- z prawdopodobieństwem q i nie zmienia położenia z prawdopodobieństwem r (p+q+r=1). Wskaż macierz przejścia odpowiedniego łańcucha Markowa.

Ćwiczenie

Znajdź macierz przejścia oraz rozkład początkowy łańcucha Markowa, który jest modelem zagadnienia opisanego w zadaniu Uzupelnic prz43|.

Ćwiczenie

Niech ξ0,,ξn będą niezależnymi zmiennymi losowymi, przyjmującymi jedynie wartości całkowite. Załóżmy, że zmienna ξ0 ma rozkład q0, natomiast zmienne ξ1,,ξn mają wspólny rozkład q. Określmy:

X0=ξ0  oraz  Xn+1=Xn+ξn+1 dla  n=0,1,2,

Sprawdź, że zmienne losowe Xn tworzą łańcuch Markowa.

Ćwiczenie

Niech 𝐏 będzie macierzą przejścia pewnego łańcucha Markowa. Wykaż, że dla wszystkich potęg k zachodzi warunek:

jE𝐏k(i,j)=1 dla każdego iE.

Ćwiczenie

Niech zmienne losowe Xn, n=0,1,2,, tworzą łańcuch Markowa. Pokaż, że zmienne X0,Xk,X2k,, gdzie k>1 jest ustaloną liczbą, także tworzą łańcuch Markowa.

Ćwiczenie

Napisz procedury, które symulują łańcuchy Markowa z przykładu Uzupelnic markov10| oraz z zadań Uzupelnic markov11| i Uzupelnic markov12|.

Ćwiczenie

Pokaż, że dla ergodycznego łańcucha Markowa oraz dla dowolnego rozkładu początkowego 𝐩, rozkłady wektorów losowych Xn są zbieżne do rozkładu stacjonarnego π, to znaczy:

limn𝐩n(i)=π(i) dla każdego iE.

Ćwiczenie

Znajdź rozkłady stacjonarne (o ile istnieją) dla łańcuchów Markowa z przykładu Uzupelnic markov10| oraz zadań Uzupelnic markov11| i Uzupelnic markov12|.

Ćwiczenie

Podaj przykład nieredukowalnego łańcucha Markowa o skończonej liczbie stanów, który nie jest ergodyczny.

Ćwiczenie

Wykaż, że ergodyczny łańcuch Markowa jest powracający.