马尔可夫链

徘徊边缘 提交于 2021-02-20 05:59:01

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

# -*- 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源创计划”,欢迎正在阅读的你也加入,一起分享。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!