from __future__ import division import numpy as np from scipy.stats import binom import matplotlib.pyplot as plt from mc_tools import mc_compute_stationary, mc_sample_path from quantecon.mc_tools import MarkovChain import quantecon as qe %matplotlib inline def KMR_2x2_P_simultaneous(N, p, epsilon): P = np.empty((N+1, N+1), dtype=float) for x in range(N+1): if x/N < p: P[x,:] = binom.pmf(range(N+1), N, epsilon/2) elif x/N == p: P[x,:] = binom.pmf(range(N+1), N, 1/2) else: P[x,:] = binom.pmf(range(N+1), N, 1-epsilon/2) return P #Parameter p = 1/3 N = 6 epsilon = 0.1 kmr_simul=KMR_2x2_P_simultaneous(N, p, epsilon) print(kmr_simul) def KMR_2x2_P_sequential(N, p, epsilon): P = np.zeros((N+1, N+1), dtype=float) P[0, 0], P[0, 1] = 1 - epsilon * (1/2), epsilon * (1/2) P[N, N-1], P[N, N] = epsilon * (1/2), 1 - epsilon * (1/2) for x in range(1, N): if x/N >p: P[x, x-1] = (x/N)*epsilon * (1/2) P[x, x+1] = (1-(x/N))*(1 - epsilon*(1/2)) P[x, x] = 1 - P[x, x-1] - P[x, x+1] elif x/N