随机漫步理论–python手把手讲解

随机漫步理论是由Karl Pearson 于1905年提出的,它是一种变化形式,在运动过程中每一步都是随机,没有明确的方向。这个在自然界、物理学、生物学、化学和经济学中都有实际用途。比如说漂浮在水滴上的花粉的运动是随机,因此他的路径可以像随机漫步模型。

接下里我就用python来模拟这个过程,并且用注释的方式手把手讲解这个过程。

首先我们先建立一个叫RandomWalk 的类,它的功能是随机选着前进的方向,这主要有三点,一个是走多少步,向哪个方向走(x轴,y轴)

from random import choice#应用随机模块
class RandomWalk:#用于生成随机漫步的数据def __init__(self, num_points=5000):"""这里做了一个函数,我们假设我们需要走5000点"""self.num_points = num_points# 所有的步都是从原点开始的self.x_values = [0]self.y_values = [0]def fill_walk(self):"""现在我们开始确认每一个点走的方向和距离"""# 这个决定了方向和距离while len(self.x_values) < self.num_points:# Decide which direction to go and how far to go in that direction.x_direction = choice([1, -1])#每次不是向右走加1,就是向左走-1x_distance = choice([0, 1, 2, 3, 4])#这是一个选择5个步数任意一个,来决定这个点走多少步x_step = x_direction * x_distancey_direction = choice([1, -1])y_distance = choice([0, 1, 2, 3, 4])y_step = y_direction * y_distance# 如果出现两次都是0的情况况要重新执行if x_step == 0 and y_step == 0:continue# 这里计算下一个漫步的点x = self.x_values[-1] + x_stepy = self.y_values[-1] + y_stepself.x_values.append(x)self.y_values.append(y)

接下来我们就要开始绘制随机漫步图了


import numpy as np
import matplotlib.pyplot as plt
#这里引用的两大最常用的数据分析函数我就不多提了from random_walk import RandomWalk
#把上面我们做的漫步类引进来,这里我们单独创建一个文件了,上面那个存在另一个文件,这里把两个文件放在同一个文件夹下#这里用了一个循环,让程序不断地模拟,后面再设置中断
while True:#创建一个RandomWalk实例rw = RandomWalk(50_000)rw.fill_walk()# 把所有的漫步的点都画出来plt.style.use('classic')fig, ax = plt.subplots(figsize=(15, 9))point_numbers = range(rw.num_points)ax.scatter(rw.x_values, rw.y_values, c=point_numbers, cmap=plt.cm.Blues,edgecolors='none', s=1)#画出散点图# 这里我隐藏了坐标,方便你全心去观察他们的图像移动ax.get_xaxis().set_visible(False)ax.get_yaxis().set_visible(False)plt.show()keep_running = input("Make another walk? (y/n): ")if keep_running == 'n':#对应前面的无限循环,只有你下了n指令才会终止break

这个是最后模拟的图像

手把手讲解python在随机漫步理论的应用相关推荐

  1. Python模拟随机漫步

    本文用Python模拟随机漫步行为. 1 使用内建的的random模块 import randomposition = 0 walk = [position] steps = 1000 for i i ...

  2. 【Python】随机漫步

    欢迎来到博主 Apeiron 的博客,祝您旅程愉快 !时止则止,时行则行.动静不失其时,其道光明. 目录 1.缘起 2.创建 RandomWalk 类 3.随机选择方向 4.绘制随机漫步图 5.总结 ...

  3. Random Walk 随机漫步理论 Random Walk Theory 随即漫步应用

    目录 Random walk 点阵随机游走 一维随机游走 马尔可夫链 更高的纬度 与维纳过程的关系 高斯随机游走 异常扩散 不同站点的数量 应用 变种 在图表上 自我互动随机游走 远程相关步行 偏向随 ...

  4. Python中使用random随机函数与Matplotlib库绘制随机漫步图

    Python中使用random随机函数与Matplotlib库绘制随机漫步图 一.概述 随机现象在我们的生活中并不少见,我们常见的一次抛硬币的正反面,股票的走势等等,都是随机事件.这些不确定性事件给我 ...

  5. 股票价格在随机漫步吗?用 Python 来告诉你

    1. 什么是随机漫步 在这个世界上存在的现象大体分为必然现象和随机现象两类.必然现象就像太阳每天必然从东边升起,西边落下那样,在相同条件下完全可以事先预测到它的结果.随机现象则不同,它在个别试验中会呈 ...

  6. 自回避随机行走问题 c语言,醉汉随机行走/随机漫步问题(Random Walk Randomized Algorithm Python)...

    世界上有些问题看似是随机的(stochastic),没有规律可循,但很可能是人类还未发现和掌握这类事件的规律,所以说它们是随机发生的. 随机漫步(Random  Walk)是一种解决随机问题的方法,它 ...

  7. 蒙特卡罗仿真(2):醉汉的随机漫步仿真示例(Python实现)

    目录 1. 前言 2. 为什么要做蒙特卡罗仿真? 3. 第一个仿真程序 4. 仿真封装及批量仿真 5. 醉汉能回家吗? 1. 前言 上一篇(蒙特卡罗仿真(1):入门求生指南(Python实例))通过几 ...

  8. Python量化交易基础讲堂-可视化随机漫步轨迹

    在< Python实战-构建基于股票的量化交易系统 >小册子的<前置基础:由例程快速入门常用数据分析工具>小节我们用到了一副插图: 这里我们结合小册中Numpy.Matplot ...

  9. 【Matplotlib】【Python】如何使用matplotlib绘制绘制随机生成的点--随机漫步详解

    目录 1.绘制随机漫步 2.模拟多次随机漫步 3.给点着色 4.重新绘制起点和终点 5.隐藏坐标轴 随机漫步是指每次行走都完全是随机的,没有明确的方向,结果是由一系列随机决策决定的. 为模拟随机漫步, ...

最新文章

  1. 克隆Centos 无法上网
  2. vb怎么运用api对文件夹进行加密_[MIUI玩法篇 30] | 小米私密文件夹 深度揭秘
  3. Linux之awk:按照字符或列进行筛选与计算列值 条件动作
  4. 21 WM配置-策略-入库策略1-定义固定仓位的策略F(Fixed Bin Strategy)
  5. 3个开源TTS(二)eSpeak的简要分析使用
  6. 逃逸分析、栈上分配、标量替换、同步消除、锁消除
  7. python基础笔记(六)_数据清洗及建模
  8. html生成pdf java_Java实现HTML代码生成PDF文档
  9. 【2017.04.25】蘑菇街一面面经
  10. “麦田音乐节·超时空歌会”即将破空 探索元宇宙虚拟演唱会新形式
  11. C++ 开发中如何利用sql语句(insert语句)向数据库中插入变量
  12. Linuxftp服务
  13. 互联网摸鱼日报(2022-12-15)
  14. mysql5.7 树遍历_Mysql5.7 存储过程 遍历select结果集并进行其他操作
  15. c语言如何实现递归算法,c语言递归算法如何实现
  16. c语言括号表示法画树怎么画,树的画法分类讲解
  17. pygame.mixer音效
  18. ThinkPad驱动下载
  19. CVE-2022-1609 WordPress Weblizar Backdoor
  20. 张宇/王式安 考研数学 概率论争议题 【Python验证版】

热门文章

  1. 中国石油大学《安全行为学》第一阶段在线作业
  2. HTML怎么设置超链接字体颜色和点击后的字体颜色?
  3. html超链接改颜色怎么改,HTML超链接颜色怎么改
  4. 新能源6kw充电机,DCDC双向升降压48~54VDC输入, 输出320VDC,双向输入输出。
  5. 使用OpenCV实现马赛克效果
  6. IDEA插件系列(104):redis simple插件——连接Reids
  7. QImage缩放后如何提升图片质量
  8. 微信第三方登录 -- (PC端+移动端)
  9. 凑零钱-dynamic programming
  10. 【计算机网络】实验六路由器静态路由、默认路由的配置