马尔可夫链

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
练习题
在英国,工党成员的第二代加入工党的几率为 0.5,加入保守党的几率为 0.4, 加入自由党的几率为 0.1。而保守党成员的第二代加入保守党的几率为 0.7,加入工党的 几率为 0.2,加入自由党的几率为 0.1。而自由党成员的第二代加入保守党的几率为 0.2, 加入工党的几率为 0.4,加入自由党的几率为 0.4。求自由党成员的第三代加入工党的概 率是多少?在通过较长的时间后,各党成员的后代加入各党派的几率分布是否具备稳定 性? python

# -*- coding: utf-8 -*-
""" Created on Thu Jan 12 10:42:13 2017 @author: DaiPuWei """
""" 这是练习题一: 在英国,工党成员的第二代加入工党的几率为 0.5,加入保守党的几率为 0.4, 加入自由党的几率为 0.1。而保守党成员的第二代加入保守党的几率为 0.7,加入 工党的 几率为 0.2,加入自由党的几率为 0.1。而自由党成员的第二代加入保守党的几率 为 0.2, 加入工党的几率为 0.4,加入自由党的几率为 0.4。求自由党成员的第三代加入 工党的概 率是多少?在通过较长的时间后,各党成员的后代加入各党派的几率分布是否具 有稳定性? """

import pandas as pd
import numpy as np

def run_main():
    """ 这是主函数 """

    #党派名称
    party_name = ['工人党','保守党','自由党']

    #党派下一代的转移矩阵
    p = np.array([0.5,0.4,0.1,0.7,0.2,0.1,0.2,0.4,0.4]).reshape((3,3))
    party_transition_matrix = pd.DataFrame(p,index = party_name,columns = party_name)

    #第一次几率分布
    probility = [0.,0.,0.]
    sumall = sum(p)    
    for i in range(3):
        probility[i] = sumall[i]/sum(sumall)
    first_probility = pd.Series(probility,index = party_name)

    #自由党成员第三代计入工人党的几率
    tmp = first_probility * party_transition_matrix
    print('自由党成员第三代计入工人党的几率为:%f' %tmp['工人党']['自由党'])    

    #各党派成员的后代假如各党派的几率分布
    a,b = np.linalg.eig(party_transition_matrix)
    finally_probility = []
    for i in range(len(b)):s
        if all(b[i]>0):
            finally_probility = b[i]
            break
    finally_probility = finally_probility / sum(finally_probility)
    Finally_probility = pd.Series(finally_probility,index = party_name)
    print('各党派成员的后代假如各党派的几率分布以下:')
    print(Finally_probility)


if __name__ == '__main__':
    run_main()

这里写图片描述

本文分享 CSDN - 追梦者_AIer。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。web

相关文章
相关标签/搜索