这玩意儿只能描述两个变量之间的概率迭代后的转移关系,基本上就是个废品5555~直接累积代码,简直毫无意义……依然是手写确定的函数关系……完全没有直接封装的扩展性
如果有大佬能给点提示怎么在矩阵里快速识别下一步的优雅形式代码,请不吝赐教。
5555555~~~
import numpy as np
import matplotlib.pyplot as plt
asrc = 100
bsrc = 100
def markov(a,b,paa,pab,pba,pbb):
Pa = lambda a : {'a':a*paa,'b':a*pab}
Pb = lambda b : {'b':b*pba,'a':b*pbb}
a = sum([i['a'] for i in (Pa(a),Pb(b))])
b = sum([i['b'] for i in (Pa(a),Pb(b))])
return a,b
alist ,blist = [asrc],[bsrc]
a,b = markov(asrc,bsrc,0.6,0.4,0.9,0.1)
for i in range(10):
a,b= markovChains(a,b,0.6,0.4,0.9,0.1)
alist.append(a)
blist.append(b)
print(alist,blist)
plt.bar(range(len(alist)),alist)
plt.show()
plt.close()
plt.bar(range(len(blist)),blist)
plt.show()
plt.close()