暂时实在想不出来怎么写马尔可夫链的标准函数,先存一个简单的示例demo吧

这玩意儿只能描述两个变量之间的概率迭代后的转移关系,基本上就是个废品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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值