用EXCEL和python 计算马尔可夫链转移矩阵

目录

[目标:用EXCEL和python 计算马尔可夫链转移矩阵](#目标:用EXCEL和python 计算马尔可夫链转移矩阵)

[1 用EXCEL计算](#1 用EXCEL计算)

[1.1 马尔可夫链的基本应用](#1.1 马尔可夫链的基本应用)

[1.2 具体计算](#1.2 具体计算)

[2 用python计算马尔可夫转移矩阵](#2 用python计算马尔可夫转移矩阵)

[2.1 py代码](#2.1 py代码)

[2.2 运行结果](#2.2 运行结果)

[3 上面2者计算结果相同](#3 上面2者计算结果相同)


目标:用EXCEL和python 计算马尔可夫链转移矩阵

1 用EXCEL计算

1.1 马尔可夫链的基本应用

  • 状态矩阵A0* 转移矩阵M=状态矩阵A1
  • 但是计算要注意
  1. 矩阵计算的数学的行数列数要求
  2. 注意左乘和右乘,不要搞错

1.2 具体计算

  • 主要将上1个状态,作为新的初始状态,就可以继续计算下一个状态
  • 如此循环loop下去(本质和写代码一回事)
  • 可以看到,一般循环多次后,状态内不同子状态的概率会趋于稳定不变,这就是马尔可夫稳定态的意思吧

2 用python计算马尔可夫转移矩阵

2.1 py代码

python 复制代码
import numpy as np
matrix = np.matrix([[0.7, 0.1, 0.2],
                    [0.2, 0.5, 0.3],
                    [0.3, 0.4, 0.3]], dtype=float)
vector1 = np.matrix([[1, 0, 0]], dtype=float)

for i in range(20):
    vector1 = np.dot(vector1, matrix)
    print('Courrent round: {}'.format(i+1))
    print(vector1)

2.2 运行结果

复制代码
Courrent round: 1
[[0.7 0.1 0.2]]
Courrent round: 2
[[0.57 0.2  0.23]]
Courrent round: 3
[[0.508 0.249 0.243]]
Courrent round: 4
[[0.4783 0.2725 0.2492]]
Courrent round: 5
[[0.46407 0.28376 0.25217]]
Courrent round: 6
[[0.457252 0.289155 0.253593]]
Courrent round: 7
[[0.4539853 0.2917399 0.2542748]]
Courrent round: 8
[[0.45242013 0.2929784  0.25460147]]
Courrent round: 9
[[0.45167021 0.2935718  0.25475799]]
Courrent round: 10
[[0.4513109  0.29385612 0.25483298]]
Courrent round: 11
[[0.45113875 0.29399234 0.25486891]]
Courrent round: 12
[[0.45105627 0.29405761 0.25488612]]
Courrent round: 13
[[0.45101675 0.29408888 0.25489437]]
Courrent round: 14
[[0.45099781 0.29410386 0.25489833]]
Courrent round: 15
[[0.45098874 0.29411104 0.25490022]]
Courrent round: 16
[[0.45098439 0.29411448 0.25490113]]
Courrent round: 17
[[0.45098231 0.29411613 0.25490156]]
Courrent round: 18
[[0.45098131 0.29411692 0.25490177]]
Courrent round: 19
[[0.45098083 0.2941173  0.25490187]]
Courrent round: 20
[[0.4509806  0.29411748 0.25490192]]

3 上面2者计算结果相同

  • 也可以看到一点,所谓的概率稳定下来,也和小数位的精确位数有关系。
  • 有时候看起来趋于稳定了,是因为小数位的精度比较小导致看起来的错觉 ^ ^
相关推荐
A__tao1 小时前
Elasticsearch Mapping 一键生成 Java 实体类(支持嵌套 + 自动过滤注释)
java·python·elasticsearch
研究点啥好呢2 小时前
Github热门项目推荐 | 创建你的像素风格!
c++·python·node.js·github·开源软件
迷藏4942 小时前
**发散创新:基于Rust实现的开源合规权限管理框架设计与实践**在现代软件架构中,**权限控制(RBAC)** 已成为保障
java·开发语言·python·rust·开源
明日清晨2 小时前
python扫码登录dy
开发语言·python
bazhange3 小时前
python如何像matlab一样使用向量化替代for循环
开发语言·python·matlab
人工干智能3 小时前
科普:python中你写的模块找不到了——`ModuleNotFoundError`
服务器·python
unicrom_深圳市由你创科技3 小时前
做虚拟示波器这种实时波形显示的上位机,用什么语言?
c++·python·c#
小敬爱吃饭3 小时前
Ragflow Docker部署及问题解决方案(界面为Welcome to nginx,ragflow上传文件失败,Docker中的ragflow-cpu-1一直重启)
人工智能·python·nginx·docker·语言模型·容器·数据挖掘
宸津-代码粉碎机3 小时前
Spring Boot 4.0虚拟线程实战调优技巧,最大化发挥并发优势
java·人工智能·spring boot·后端·python
知行合一。。。3 小时前
Python--04--数据容器(集合)
python