8.(Python数模)(预测模型一)马尔科夫链预测

Python实现马尔科夫链预测

马尔科夫链原理

马尔科夫链是一种进行预测的方法,常用于系统未来时刻情况只和现在有关,而与过去无关
用下面这个例子来讲述马尔科夫链。
在这里插入图片描述
如何预测下一时刻计算机发生故障的概率?
当前状态只存在0(故障状态)和1(正常状态)两种,每种状态下各存在两个未来状态(00,01,11,10),那么统计出这整个序列中00,01,11,10出现的次数。即求得转移矩阵
在这里插入图片描述
进而求得转移概率矩阵
在这里插入图片描述
如果当前是0,那么下一个是0的概率为30.77%,下一步为1的概率为69.23%。
对当前数据,最后一个为1,那么预测下一步,有74.3%的概率不发生故障。

上面的方法不仅限于两个类别0和1,多类别也是可以预测的
比如
在这里插入图片描述
str = “4321431123212344331113321222442323112431”
用同样的方法计算转移概率矩阵
在这里插入图片描述

问题描述

在这里插入图片描述

源代码

计算转移矩阵部分

def str_count(str, sub):count = 0for i in range(0, len(str) - 1):if str[i:i+2] == sub:count = count + 1return countdef data_to_matrix():str = "1110010011111110011110111111001111111110001101101111011011010111101110111101111110011011111100111"count00 = str_count(str, "00")count01 = str_count(str, "01")count10 = str_count(str, "10")count11 = str_count(str, "11")print("count00:", count00)print("count01:", count01)print("count10:", count10)print("count11:", count11)
if __name__ == '__main__':data_to_matrix()

问题解决部分

import numpy as np
p1 = np.array([0.2, 0.4, 0.4])
p = np.array([[0.8, 0.1, 0.1],[0.5, 0.1, 0.4],[0.5, 0.3,0.2]
])
p3 = np.linalg.matrix_power(p, 3)
p4 = np.dot(p1, p3)
print(p4)

1、np.linalg.matrix_power(p, 3) 是一个用来计算矩阵 p 的 3 次幂的函数。它使用 NumPy 库中的 linalg 子模块来执行矩阵乘法运算。这个函数的返回值是将矩阵 p 自乘 3 次后得到的新矩阵。

2、dot指的是两个向量之间的点积运算

结果

在这里插入图片描述在这里插入图片描述

参考博文

数学建模入门-python实现简单的马尔可夫链
马尔科夫链预测,Python实现

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/69948.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

虚拟机扩容

系统环境centos8,分两步,第一步先在vmware扩容,第二部在虚拟机内部扩容 1.vmware分配磁盘空间 2.虚拟机内部扩容 查看当前磁盘信息,这个是扩容之前的,扩容完成才会显示新的 df -h查看系统分区信息 fdisk -l查看目录…

C语言基础知识理论版(很详细)

文章目录 前述一、数据1.1 数据类型1.2 数据第一种数据:常量第二种数据:变量第三种数据:表达式1、算术运算符及算术表达式2、赋值运算符及赋值表达式3、自增、自减运算符4、逗号运算符及其表达式(‘顺序求值’表达式)5…

Spring Boot日志基础使用 设置日志级别

然后 我们来说日志 日志在实际开发中还是非常重要的 即可记录项目状态和一些特殊情况发生 因为 我们这里不是将项目 所以 讲的也不会特别深 基本还是将Spring Boot的日志设置或控制这一类的东西 相对业务的领域我们就不涉及了 日志 log 初期最明显的作用在于 开发中 你可以用…

深入浅出了解BeanFactory 和 ApplicationContext

一.区别 BeanFactory和ApplicationContext是Spring的两大核心接口,都可以当做Spring的容器。其中ApplicationContext是BeanFactory的子接口。 1.依赖关系 BeanFactory:是Spring里面最底层的接口,包含了各种Bean的定义,读取bean…

Mac 手动安装 sshpass

1. 下载安装包 https://sourceforge.net/projects/sshpass/ 解压并进入到安装包目录 tar -zxvf sshpass-xx.xx.tar.gz cd sshpass-xx.xx2. 检验环境,编译源码安装 ./configuremake&&make install3. 检测安装是否成功 ▶ sshpass Usage: sshpass [-f|-…

Golang专题精进

Golang专题精进 Golang单元测试Golang错误处理Golang正则表达式Golang反射Golang验证码Golang日期时间处理库CarbonGolang发送邮件库emailGolang log日志Golang log日志框架logrusGolang加密和解密应用Golang访问权限控制框架casbinGolang使用swagger生成api接口文档Golang jwt…

Vue + Element UI 实现权限管理系统 前端篇(十四):菜单功能实现菜

Vue Element UI 实现权限管理系统 前端篇(十四):菜单功能实现 菜单功能实现 菜单接口封装 菜单管理是一个对菜单树结构的增删改查操作。 提供一个菜单查询接口,查询整颗菜单树形结构。 http/modules/menu.js 添加 findMenu…

uniapp 解决跨域的问题

uniapp 解决跨域的问题 我真的是个 沙雕 找对了解决办法 写错了地方 "h5" : {"devServer" : {"disableHostCheck" : true,"https": false,"proxy" : {"/app" : {"target" : "https://192.16…

MRI多任务技术及应用

目录 一、定量心血管磁共振成像(CMR)的改进方法二、磁共振多任务三、磁共振多任务的成像框架四、磁共振多任务的图像模型和采样和重建策略五、利用MR多任务进行快速三维稳态CEST(ss-CEST)成像5.1 利用MR多任务进行快速三维稳态CEST(ss-CEST)成像介绍5.2 …

Java调用Web Service接口

方法1. 用IDEA生成相关代码调用方法。 在IDEA插件商店下载插件 然后新建一个Java项目 创建一个包来存放生成的代码,(点击一下)选中这个包,点击Tools 填入接口url,记住后面拼接“?wsdl”,选择生成方法,然后OK即可生…

超详解| Yolov8模型手把手调参 | 配置 | 模型训练 | 验证 | 推理

YOLOv8是一款前沿、最先进(SOTA)的模型,基于先前YOLO版本的成功,引入了新功能和改进,进一步提升性能和灵活性。 然而,要充分发挥Yolov8的潜力,合理的参数配置是至关重要的。本文将带您深入了解…

stable diffusion实践操作-VAE

系列文章总目录 stable diffusion实践操作 文章目录 系列文章总目录一、 前言1 定义功能全局介绍2 模型全局介绍2.1 后缀以及存放位置2.2 查看大模型是否有VAE 二、正文1 原理1.1 基础原理 2 使用2.1 增加饱和度2.2 增加细节 3 下载3.1 自动下载3.2 手动下载 三 、总结 一、 前…

掌握逻辑漏洞复现技术,保护您的数字环境

环境准备 这篇文章旨在用于网络安全学习,请勿进行任何非法行为,否则后果自负。 1、支付逻辑漏洞 攻击相关介绍 介绍: 支付逻辑漏洞是指攻击者利用支付系统的漏洞,突破系统的限制,完成非法的支付操作。攻击者可以采…

从0到1构建界面设计系统思维

用户界面(UI)是人与机器之间发生交互的载体,也是用户体验(UX)的一个组成部分。用户界面由两个主要部分组成:视觉设计(即传达产品的外观和感觉)和交互设计(即元素的功能和…

实现SSE的textevent-stream是什么?和applicationoctet-stream有什么区别?

WEB通讯技术。前端实现SSE长连接,nodejsexpress搭建简单服务器,进行接口调试,通过curl请求数据 点击上面的地址是可以了解轮询和长轮询以及websocket等通信模式,一些基础概念和速成技能,这篇来接着详细聊聊text/event…

Qt---对话框 事件处理 如何发布自己写的软件

目录 一、对话框 1.1 消息对话框(QMessageBox) 1> 消息对话框提供了一个模态的对话框,用来提示用户信息,或者询问用户问题并得到回答 2> 基于属性版本的API 3> 基于静态成员函数版本 4> 对话框案例 1、ui界面 …

2023年8月30日-[SWPUCTF 2021 新生赛]jicao

<?php highlight_file(index.php); include("flag.php"); $id$_POST[id]; $jsonjson_decode($_GET[json],true); if ($id"wllmNB"&&$json[x]"wllm") {echo $flag;} ?> 包含了flag.php文件&#xff0c;设定了一个POST请求的id和…

【AIGC专题】Stable Diffusion 从入门到企业级实战0401

一、概述 本章是《Stable Diffusion 从入门到企业级实战》系列的第四部分能力进阶篇《Stable Diffusion ControlNet v1.1 图像精准控制》第01节&#xff0c; 利用Stable Diffusion ControlNet Inpaint模型精准控制图像生成。本部分内容&#xff0c;位于整个Stable Diffusion生…

Ubuntu之apt-get系列--apt-get安装软件的方法/教程

原文网址&#xff1a;Ubuntu之apt-get系列--apt-get安装软件的方法/教程_IT利刃出鞘的博客-CSDN博客 简介 本文介绍Ubuntu使用apt-get安装软件的方法。 安装软件 先更新列表 sudo apt-get update 安装软件 sudo apt-get install <package name>[<version>]…

Android后退堆栈

修改代码 现在的ItemClick使得用户单击其中一个项目时就会跳转&#xff0c;现在要修改其使得在一个小屏幕设备上才会这样做&#xff0c;在一个大屏幕设备上运行用户选择一个训练项目时在右边的片段显示响应的信息。 希望片段处理后退的方式&#xff1a;假设用户在手机上运行这…