Programmieraufgabe 4

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 [25]:
# 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

Evolution der Verteilungsfunktion einer Markov Kette

Betrachten Sie die Markov Kette $(X_n)_{n\geq 1}$ von Übungsblatt 7, Übung 3, mit $N\geq 2$ und $p$ beliegig, wobei die Zustände von $0$ nach $N-1$ statt von $1$ nach $N$ definiert sind (d.h., wir machen eine Verschiebung von $1$).

a) Definiere eine Funktion (Lösen zuerst ÜB7,3), $\texttt{Minv}$, die als Input $N,p$ nimmt und als Output die stationäre Verteilung $M_{inv}=(M_{inv}(x))_{0\leq x\leq N-1}$ gibt.

b) Erstellen Sie einen Plot von $M_{inv}$ für $N=20,p=1/2$ und $N=20,p=1/3$.

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

c) Definiere eine Funktion $\texttt{Transition}$, die als Input $n,p$ und ein Vektor mit einer Wahrscheinlichkeitsverteilung der Markovkette hat, und als Output die Wahrscheinlichkeitsverteilung nach eine Zeiteinheit wiedergibt. Testen Sie es in dem für $N=20$ und $p=1/3$ mit $\texttt{print(Minv(N,p)-Transition(N,p,Minv(N,p)))}$ (es sollte $0$ ergeben, bis auf Numerische Rundungen)

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

d) Für die Anfangsbedingung $P(X_0=0)=1$, definiere eine Funktion, die als Input $t$ und als Output ein Plot der Wahrscheinlichkeitsverteilung der Markov Kette zur Zeit $t$.

Für $N=10$, $p=1/2$ und $T=50$, erstellen Sie mithilfe von 𝚒𝚗𝚝𝚎𝚛𝚊𝚌𝚝𝚒𝚟𝚎 ein entsprechendes Histogramm für Wahrscheinlichkeitsverteilung der Markov Kette in den Zeitintervall $[0,T]$. Was beobachten Sie? Scheint die Wahrscheinlichkeitsverteilung zu konvergieren?

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

(e) Setze jetzt $\varepsilon=0.1$ fest. Betrachten wir die eine modifizierte Markov Kette, wobei wenn man auf $0$ (bzw. $N-1$) bleibt man dort with Wahrscheinlichkeit $\varepsilon$ und spring beim Nachbarn mit Wahrscheinlichkeit $1-\varepsilon$. Definiere eine Funktion $\texttt{TransitionEps}$, die als Input $n,p$ und ein Vektor mit einer Wahrscheinlichkeitsverteilung dieser neue Markovkette hat, und als Output die Wahrscheinlichkeitsverteilung nach eine Zeiteinheit wiedergibt.

Ist $\texttt{Minv(N,p)}$ noch invariant?

Wiederhole (d) mit dieser neue Markovkette in der Zeitintervall $[0,T]$ mit $T=1000$. Wie sieht mit der Kongergenz aus?

(f) Speichere für jedes $t\in [0,T]$, den $L^2$ Abstand zur stationäre Verteilung: $D(t)=N^{-1}\sum_{j=0}^{N-1} (Minv(N,p)_j-Mass(\textrm{Zeit }t)_j)^2$

Erstellen Sie den plot $(t,D(t))_{t\in [0,T]}$ und $(t,np.log(D(t)))_{t\in [0,T]}$. Sehen Sie, dass die $L^2$ konvergent zur stationäre Verteilung ist exponential schnell?

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