Programmieraufgabe 4: Konvergenz ins Gleichgewicht

Wichtig: Damit alle benötigten Pakete richtig eingebunden werden, führen Sie die nächste Zelle einmal aus, sobald Sie das Notebook neu öffnen.

In [ ]:
# some setup
%matplotlib inline
import numpy as np # makes numpy routines and data types available as np.[name ouf routine or data type]
import matplotlib.pyplot as plt # makes plotting command available as plot.[name of command]

from ipywidgets import interactive
import random

Wir betrachten eine Markov-Kette $(X_n)_{n\geq 0}$ mit Zustandsraum $S=\{0,1,\ldots,N-1\}$, $N\geq2$, und Übergangsmatrix \begin{equation} P=\begin{bmatrix} 0 & 1 & 0 & \cdots & 0 \\ q & 0 & p & \ddots & \vdots \\ 0 & \ddots & \ddots & \ddots & 0 \\ \vdots & \ddots & q & \ddots & p\\ 0 & \cdots & 0 & 1 & 0 \end{bmatrix}\end{equation} für $0\leq p\leq1$ und $q=1-p$. Im folgenden identifizieren wir eine Wahrscheinlichkeitsverteilung $\mu$ auf $S$ stets mit ihrer Massenfunktion $m$, die wir durch ein array (einen Zeilenvektor) $m=(m(x))_{0\leq x\leq N-1}$ darstellen.

Die Massenfunktion $m_{inv}$ der Gleichgewichtsverteilung von $P$ ist proportional zu $\nu=(\nu (0),\dotsc, \nu ({N-1}))$ mit $$\nu (0)=1,\quad\nu (i)=p^{i-1}/q^{i}\text{ für }1\leq i \leq N-2,\quad\text{und}\quad\nu (N-1)=p^{N-2}/q^{N-2}.$$

a) Definieren Sie eine Funktion $\texttt{minv}$ mit Input $N$ und $p$, die $m_{inv}=(m_{inv}(x))_{0\leq x\leq N-1}$ ausgibt.

b) Erstellen Sie Plots von $m_{inv}$ für $N=50,p=1/2$ und $N=50,p=0.55$.

In [ ]:
#(a)

# Fuegen Sie hier Ihre Loesung ein.

#(b)

# Fuegen Sie hier Ihre Loesung ein.

c) Definieren Sie eine Funktion $\texttt{Transition}$, deren Input $N,p$ und die Verteilung $m0$ der Markov-Kette zu einem bestimmten Zeitpunkt sind, und die die Verteilung der Markov-Kette nach einem weiteren Schritt ausgibt. Testen Sie Ihre Funktion für $N=50$ und $p=0.55$ mit $\texttt{print(minv(N,p)-Transition(N,p,minv(N,p)))}$ (sie sollten bis auf Rundungsfehler $0$ erhalten).

In [ ]:
#(c)

# Fuegen Sie hier Ihre Loesung ein.

d) Definieren Sie für die Anfangsbedingung $\mathbb P[X_0=0]=1$ eine Funktion mit einer Schrittzahl $t$ als Input und einem Plot der Verteilung der Markov-Kette nach $t$ Schritten als Output.

Erstellen Sie für $N=50$, $p=.55$ und $T=1000$ einen interaktiven Plot der Verteilung von $X_t$ für $t=0,1,\ldots ,T$. Was beobachten Sie? Scheint die Verteilung zu konvergieren?

In [ ]:
#(d)

# Fuegen Sie hier Ihre Loesung ein.

(e) Sei $\varepsilon=0.1$. Wir betrachten nun eine modifizierte Markov-Kette, die mit Wahrscheinlichkeit $\varepsilon$ in $0$ bzw. $N-1$ bleibt, und mit Wahrscheinlichkeit $1-\varepsilon$ nach $1$ bzw. $N-2$ springt. Definieren Sie analog zu oben eine Funktion $\texttt{TransitionEps}$, die die Übergänge der modifizierten Markov-Kette berechnet.

Ist die Verteilung $\texttt{minv(N,p)}$ noch invariant?

Wiederholen Sie (d) mit der modifizierten Markov-Kette. Was können Sie zu der Konvergenz sagen?

In [ ]:
#(e)

# Fuegen Sie hier Ihre Loesung ein.

(f) Berechnen Sie für $t=0,1,\ldots 2000$ die totale Variationsdistanz $$D(t)\ =\ \frac 12\sum_{j=0}^{N-1} |minv (j)- m_t(j)|$$ zwischen der Verteilung $m_t$ der modifizierten Kette zur Zeit $t$ und der Gleichgewichtsverteilung.

Erstellen Sie Plots von $(t,D(t))$ und $(t,\log(D(t)))$ für ${t\le 2000}$.

Was können Sie über die Konvergenzgeschwindigkeit zur Gleichgewichtsverteilung aussagen?

In [ ]:
#(f)

# Fuegen Sie hier Ihre Loesung ein.
In [ ]: