当前位置: 首页 > article >正文

用Python模拟随机游走:从一维到三维,直观理解马尔可夫链的常返性

用Python模拟随机游走从一维到三维直观理解马尔可夫链的常返性随机游走是概率论中最迷人的概念之一它像一面镜子映照出微观粒子运动、金融市场波动甚至社交网络传播的底层规律。当我第一次在Jupyter Notebook中模拟出随机游走的轨迹时那些跳跃的点阵突然让抽象的数学理论变得触手可及。本文将带你用NumPy和Matplotlib从零构建不同维度的随机游走模拟器通过可视化观察为什么一维和二维游走总会回家而三维游走却可能永远迷失。1. 环境准备与基础概念在开始编码前我们需要配置Python环境并理解几个核心概念。推荐使用Anaconda创建新环境conda create -n random_walk python3.8 conda activate random_walk pip install numpy matplotlib ipykernel马尔可夫链的常返性指的是一个状态被无限次访问的概率。用生活比喻常返态就像有回旋镖特性的位置——无论你把它扔多远最终都会飞回来。数学上定义为状态i是常返的 ⇔ 从i出发返回i的期望次数无限随机游走作为马尔可夫链的典型实例其常返性维度差异令人惊讶维度常返性物理意义一维常返醉汉总能找回酒吧二维常返迷路的鸟终会归巢三维非常返太空探测器可能永远迷失2. 一维随机游走模拟让我们从最简单的硬币游戏开始——正面向右反面向左。在Python中这可以用cumsum实现import numpy as np import matplotlib.pyplot as plt def simulate_1d(steps1000, p0.5): moves np.random.choice([-1, 1], sizesteps, p[1-p, p]) path np.cumsum(moves) return path plt.figure(figsize(10,4)) for _ in range(5): walk simulate_1d(1000) plt.plot(walk, alpha0.6) plt.axhline(0, colorred, linestyle--) plt.title(1D Random Walks with Returns to Origin) plt.show()运行这段代码你会看到多条彩色线条在红线原点上下穿梭。关键观察点是返回频率即使游走很长时间轨迹总会穿越红线对称性当p0.5时左右移动完全对称首回时间首次返回时间可能很长但最终必定发生通过增加模拟次数我们可以统计返回原点的比例def return_prob_1d(trials1000, steps1000): returns 0 for _ in range(trials): walk simulate_1d(steps) returns (walk 0).any() return returns/trials print(fReturn probability: {return_prob_1d(10000):.2%})3. 二维随机游走城市漫游者将棋盘看作曼哈顿的街道网每一步有四种等可能选择。我们使用复数表示坐标让代码更优雅def simulate_2d(steps1000): directions [10j, -10j, 01j, 0-1j] moves np.random.choice(directions, sizesteps) path np.cumsum(moves) return path walk simulate_2d(5000) x, y walk.real, walk.imag plt.figure(figsize(8,8)) plt.plot(x, y, alpha0.6) plt.scatter([0], [0], cred, s100) plt.title(2D Random Walk with Origin Returns) plt.show()二维游走的特性更加丰富轨迹覆盖相比一维二维路径更可能覆盖原点周边区域返回模式返回次数随步长增加而减少但理论上仍会无限次返回可视化技巧使用透明度表现路径密度用热力图展示位置频率分布# 热力图版本 heatmap, xedges, yedges np.histogram2d(x, y, bins50) plt.imshow(heatmap.T, originlower, cmaphot) plt.colorbar() plt.title(Position Heatmap in 2D Walk) plt.show()4. 三维游走太空漫游的数学真相当进入三维空间情况发生质变。我们改用(x,y,z)坐标元组def simulate_3d(steps10000): moves np.random.randint(0, 6, sizesteps) # 0:x, 1:-x, 2:y, 3:-y, 4:z, 5:-z delta np.array([ [1,0,0], [-1,0,0], [0,1,0], [0,-1,0], [0,0,1], [0,0,-1] ]) path np.cumsum(delta[moves], axis0) return path path simulate_3d(10000) fig plt.figure(figsize(10,8)) ax fig.add_subplot(111, projection3d) ax.plot(*path.T, alpha0.6) ax.scatter([0],[0],[0], cred, s100) plt.title(3D Random Walk with Rare Returns) plt.show()三维游走的典型特征逃逸趋势轨迹明显更倾向于远离原点返回概率模拟显示返回次数随维度增加急剧下降数学解释Pólya定理证明三维游走返回概率约34%我们可以量化比较不同维度的返回概率def return_stats(dim, trials100, steps1000): returns 0 for _ in range(trials): if dim 1: walk simulate_1d(steps) back (walk 0).any() elif dim 2: walk simulate_2d(steps) back (abs(walk) 0.5).any() # 考虑浮点误差 else: walk simulate_3d(steps) back (np.linalg.norm(walk, axis1) 0.5).any() returns back return returns/trials dims [1, 2, 3] probs [return_stats(d) for d in dims] plt.bar(dims, probs) plt.xticks(dims, [1D, 2D, 3D]) plt.ylabel(Return Probability) plt.title(Dimensionality vs Return Probability) plt.show()5. 高级应用与理论延伸理解了基础模拟后我们可以探索更丰富的应用场景5.1 非对称游走与概率调整现实中的游走往往不对称。修改p参数观察影响biased_walk simulate_1d(p0.55) # 有向右的偏向5.2 分形维度的游走通过限制移动方向可以模拟分形结构上的游走# 只在特定方向移动的分形游走 fractal_directions [10j, 01j, 11j] # 限制移动方向5.3 交互式可视化使用Plotly创建可旋转的3D可视化import plotly.graph_objects as go fig go.Figure(datago.Scatter3d( xpath[:,0], ypath[:,1], zpath[:,2], markerdict(size1), linedict(width2) )) fig.update_layout(scenedict( xaxis_titleX, yaxis_titleY, zaxis_titleZ )) fig.show()在金融领域这些模拟可应用于期权定价股价模拟常基于几何布朗运动风险管理极端事件的发生概率估计算法交易订单簿动态建模通过调整参数和观察输出你会对随机过程有更直觉的理解。当我在量化交易项目中首次应用这些概念时那种将抽象数学转化为实际策略的体验正是理论最美的实践诠释。

相关文章:

用Python模拟随机游走:从一维到三维,直观理解马尔可夫链的常返性

用Python模拟随机游走:从一维到三维,直观理解马尔可夫链的常返性 随机游走是概率论中最迷人的概念之一,它像一面镜子,映照出微观粒子运动、金融市场波动甚至社交网络传播的底层规律。当我第一次在Jupyter Notebook中模拟出随机游走…...

终极浏览器自由方案:如何让Windows真正尊重你的默认浏览器选择

终极浏览器自由方案:如何让Windows真正尊重你的默认浏览器选择 【免费下载链接】EdgeDeflector A tiny helper application to force Windows 10 to use your preferred web browser instead of ignoring the setting to promote Microsoft Edge. Only runs for a m…...

Boss-Key老板键:一键隐藏窗口的终极隐私保护神器

Boss-Key老板键:一键隐藏窗口的终极隐私保护神器 【免费下载链接】Boss-Key 老板来了?快用Boss-Key老板键一键隐藏静音当前窗口!上班摸鱼必备神器 项目地址: https://gitcode.com/gh_mirrors/bo/Boss-Key 你是否曾经历过这样的尴尬时刻…...

第6章 数据类型转换-6.8 转换为集合

通过使用set()函数可以将字符串、列表或元组转换为可变集合。其语法格式如下: set([x]) 其中,参数x为可选参数,表示字符串、列表或元组,如果省略该参数,则该函数返回空集合。示例代码如下: # 资源包\Cod…...

跨越时空的图形接口桥梁:d3d8to9如何让经典游戏重获新生

跨越时空的图形接口桥梁:d3d8to9如何让经典游戏重获新生 【免费下载链接】d3d8to9 A D3D8 pseudo-driver which converts API calls and bytecode shaders to equivalent D3D9 ones. 项目地址: https://gitcode.com/gh_mirrors/d3/d3d8to9 当经典遭遇现代&am…...

解决Windows 11 LTSC应用商店缺失难题:从根源修复到生态重建的完整方案

解决Windows 11 LTSC应用商店缺失难题:从根源修复到生态重建的完整方案 【免费下载链接】LTSC-Add-MicrosoftStore Add Windows Store to Windows 11 24H2 LTSC 项目地址: https://gitcode.com/gh_mirrors/ltscad/LTSC-Add-MicrosoftStore 在企业环境和专业工…...

WaveTools鸣潮工具箱:终极游戏性能优化与数据分析解决方案

WaveTools鸣潮工具箱:终极游戏性能优化与数据分析解决方案 【免费下载链接】WaveTools 🧰鸣潮工具箱 项目地址: https://gitcode.com/gh_mirrors/wa/WaveTools WaveTools鸣潮工具箱是一款专为《鸣潮》PC玩家设计的开源辅助工具,通过帧…...

FUXA SVG编辑器元素管理功能优化:从问题发现到价值验证

FUXA SVG编辑器元素管理功能优化:从问题发现到价值验证 【免费下载链接】FUXA Web-based Process Visualization (SCADA/HMI/Dashboard) software 项目地址: https://gitcode.com/gh_mirrors/fu/FUXA FUXA作为一款开源的Web-based工业自动化HMI/SCADA系统&am…...

技术主管如何降低TVA系统全生命周期成本

对于企业技术主管而言,TVA系统在汽车零部件焊接点检测中的应用,不仅要保障检测质量与效率,还要做好成本管控,避免出现“前期采购成本过高”“后期运维成本失控”“资源浪费”等问题。当前,不少企业因缺乏科学的成本管控…...

TVA在汽车零部件焊接点检测中的实操启示录(3)

TVA系统在汽车零部件焊接点检测的落地,并非简单的“设备安装调试”,而是一个涉及流程优化、人员适配、技术衔接的系统工程。不少企业技术主管因忽视落地全流程管控,出现“系统安装后无法正常运行”“员工不会操作”“检测流程与生产流程脱节”…...

当“过杀率”飙升时,现场工程师该如何向AI“施压”?

产线正在满负荷运转,AI智能体视觉检测系统(TVA)突然开始把大量合格的螺母件剔除。操作工抱怨连连,生产厂长在后面催。你打电话给供应商,对方说“回去调一下模型,明天发版”。这一等就是一天,产线…...

样本收集的致命误区:为什么你的AI模型“一上产线就拉胯”?

很多工程师在收集TVA训练集时,喜欢从良品堆里挑50个,再从废品筐里挑50个,觉得凑够100个样本就能让AI“快速学习”了。结果一上线,只要背景稍微有点灰尘,或者螺母有点偏转角度,系统就疯狂误报。这就是典型的…...

长远赋能——TVA系统助力汽车零部件企业智能化转型升级

「本文已用流量券推广,欢迎收藏 关注」在工业4.0浪潮推动下,智能化转型升级已成为汽车零部件企业实现高质量发展的必由之路,而质量检测作为生产环节的核心组成部分,其智能化水平直接决定了企业的转型升级成效。TVA高精度AI智能视…...

基于碳排放交易与需求响应的综合优化调度策略:微网虚拟电厂日前调度模型研究

MATLAB代码:计及碳排放交易及多种需求响应的微网/虚拟电厂日前优化调度 关键词:碳排放交易 需求响应 空调负荷 电动汽车 微网/虚拟电厂优化调度 参考文档:《计及电动汽车和需求响应的多类电力市场下虚拟电厂竞标模型》参考其电动汽车模型以及…...

终极音乐解析方案:music-api如何免费打通四大平台音频资源壁垒

终极音乐解析方案:music-api如何免费打通四大平台音频资源壁垒 【免费下载链接】music-api 各大音乐平台的歌曲播放地址获取接口,包含网易云音乐,qq音乐,酷狗音乐等平台 项目地址: https://gitcode.com/gh_mirrors/mu/music-api…...

京东抢购自动化:用Python脚本实现毫秒级响应的高效抢购方案

京东抢购自动化:用Python脚本实现毫秒级响应的高效抢购方案 【免费下载链接】jd-assistantV2 京东抢购助手:包含登录,查询商品库存/价格,添加/清空购物车,抢购商品(下单),抢购口罩,查询订单等功…...

解锁Koikatu全部潜能的6个专业步骤:KK-HF Patch增强指南

解锁Koikatu全部潜能的6个专业步骤:KK-HF Patch增强指南 【免费下载链接】KK-HF_Patch Automatically translate, uncensor and update Koikatu! and Koikatsu Party! 项目地址: https://gitcode.com/gh_mirrors/kk/KK-HF_Patch KK-HF Patch是针对Koikatu系列…...

免费游戏串流平台Sunshine:5步搭建你的专属云端游戏服务器

免费游戏串流平台Sunshine:5步搭建你的专属云端游戏服务器 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 想要在任何设备上畅玩PC游戏大作,却受限于硬件配…...

如何快速配置MangoHud快捷键:从零开始的游戏性能监控终极指南

如何快速配置MangoHud快捷键:从零开始的游戏性能监控终极指南 【免费下载链接】MangoHud A Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more. 项目地址: https://gitcode.com/gh_mirrors/ma/MangoHud 你是否厌倦了游戏性…...

YimMenu终极指南:GTA5安全增强与功能定制完全教程

YimMenu终极指南:GTA5安全增强与功能定制完全教程 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/YimMenu …...

深入理解 Firebase onSnapshot 的监听机制

前言 在现代 Web 应用开发中,Firebase Firestore 提供了强大的实时数据库功能,onSnapshot 监听器是其中一个关键特性。然而,如何正确地使用这个监听器来处理网络连接失败等特殊情况,往往是开发者需要深入理解的。今天我们将探讨 onSnapshot 的工作机制,并通过实例展示如何…...

手把手教你用王思鱼指纹浏览器(Windows版)绕过主流检测站点

实战指南:Windows指纹浏览器配置与主流检测站点绕过验证 指纹浏览器正逐渐成为数字身份管理领域的重要工具,它能有效解决多账号运营、隐私保护等场景下的浏览器指纹追踪问题。不同于传统虚拟机的笨重方案,这类工具通过精准修改浏览器底层参数…...

不只是投屏:挖掘Scrcpy + ADB在Mac上的高阶玩法,提升开发调试效率

不只是投屏:挖掘Scrcpy ADB在Mac上的高阶玩法,提升开发调试效率 在移动应用开发与测试的日常工作中,效率工具的选择往往决定了生产力水平。Scrcpy作为一款开源的安卓设备投屏工具,其价值远不止于简单的屏幕镜像。当它与ADB&#…...

Kubeflow v1.9.1 单机部署实战:用一台ECS搞定你的第一个MLOps平台(含A10 GPU调度)

Kubeflow v1.9.1 单机部署实战:用一台ECS搞定你的第一个MLOps平台(含A10 GPU调度) 在机器学习项目从实验走向生产的过程中,环境配置往往是第一个拦路虎。数据科学家习惯了Jupyter Notebook的交互式开发,但如何将模型无…...

SecureCRT vs Putty:串口调试工具对比及实战操作指南

SecureCRT与PuTTY终极对决:嵌入式开发者的串口调试工具选型指南 在嵌入式开发领域,串口调试如同工程师的"听诊器",而选择一款得心应手的终端工具往往能事半功倍。作为从业十年的嵌入式开发者,我几乎用过市面上所有主流串…...

模电实战-比较器正反馈接法的窗口电压设计

1. 比较器正反馈接法的核心价值 我第一次接触比较器正反馈接法是在设计工业传感器信号调理电路时。当时遇到一个头疼的问题:环境噪声导致比较器在临界电压附近频繁误触发,整个系统像得了"癫痫"一样不停抖动。直到尝试了正反馈接法,…...

深入解析STM32F103的USB Mass Storage实现:SCSI命令实战指南

1. USB Mass Storage基础概念与STM32F103适配 在嵌入式系统开发中,实现USB Mass Storage功能是让设备被识别为U盘的关键技术。STM32F103系列作为经典的Cortex-M3内核微控制器,其内置的USB外设为这一功能提供了硬件基础。这里有个常见的误解:很…...

TurboWarp Packager:高性能Scratch项目打包架构与跨平台部署解决方案

TurboWarp Packager:高性能Scratch项目打包架构与跨平台部署解决方案 【免费下载链接】packager Converts Scratch projects into HTML files, zip archives, or executable programs for Windows, macOS, and Linux. 项目地址: https://gitcode.com/gh_mirrors/p…...

资源配额管理:防止单个 Agent 耗尽资源

资源配额管理:防止单个 Agent 耗尽系统资源的核心技术与实践指南 关键词 资源配额(Resource Quota)、Agent 资源隔离(Agent Isolation)、分布式调度系统(Distributed Scheduler)、Kubernetes 资源模型(K8s Resource Model)、CPU 软/硬限制(CPU Soft/Hard Limit)、内…...

Linux文件搜索新标杆:FSearch高效检索工具全攻略

Linux文件搜索新标杆:FSearch高效检索工具全攻略 【免费下载链接】fsearch A fast file search utility for Unix-like systems based on GTK3 项目地址: https://gitcode.com/gh_mirrors/fs/fsearch 在Linux系统中,面对日益增长的文件数据&#…...