simBinTree/mcSim.py

41 lines
947 B
Python
Raw Normal View History

2017-10-15 17:36:19 +00:00
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Mon May 8 16:02:18 2017
@author: eddie
"""
from mcMatrix import markovTreeMatrix as mc
from totalVariationNorm import totalVariation1 as TV
import numpy as np
import matplotlib.patches as mpatches
import matplotlib.pyplot as plt
np.random.seed(666)
arity = 2 # arity of tree
depth = 3 # depth of tree
P = mc(depth,arity) # mc(depth of tree, arity of tree 2 by default)
pi = np.random.randn(len(P)) # the initial randomly generated vector, to show
# that in fact pi will converge to stationary.
stat = []
for x in range(0,len(P)): # uniform distribution of the tree
stat.append(1/arity)
near = []
for x in range(100):
pi = P.dot(pi)
near.append(TV(pi,stat))
red_patch = mpatches.Patch(color='red', label='TV convergence to stationary dist')
plt.legend(handles=[red_patch])
plt.plot(near,'ro', ms='0.8')
plt.show()