欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > 小白零基础学数学建模应用系列(二):基于Python的共享单车系统建模与仿真分析

小白零基础学数学建模应用系列(二):基于Python的共享单车系统建模与仿真分析

2024/10/26 4:21:48 来源:https://blog.csdn.net/weixin_46211269/article/details/141098627  浏览:    关键词:小白零基础学数学建模应用系列(二):基于Python的共享单车系统建模与仿真分析

共享单车系统作为一种绿色环保的出行方式,已成为现代城市公共交通的重要组成部分。本文将使用Python编程语言,并结合modsim库,构建并仿真一个共享单车系统的模型,通过这一过程来展示如何进行系统的建模与分析。

文章目录

        • 一、背景
        • 二、模型
        • 三、模型代码求解
        • 四、分析过程
        • 五、总结

一、背景

随着共享经济的发展,共享单车在全球范围内迅速普及。它不仅为短途出行提供了便利,还有效缓解了城市交通压力。然而,如何科学管理和优化共享单车系统,确保不同站点之间的自行车分布合理,是一个亟待解决的问题。

本次分析假设两个站点A和B之间存在一个共享单车系统,用户可以在两个站点之间骑行。我们将通过构建一个简单的数学模型,来分析和预测系统的运行情况。

二、模型

模型的基本设定如下:

  • 系统包含两个自行车车架,分别位于站点A和站点B。
  • 系统初始共有12辆自行车,其中站点A车架上有10辆,站点B车架上有2辆。
  • 用户可以从一个车架借车,骑行至另一个车架。每次借还车后,两个车架的自行车数量将发生变化。

为了描述这一过程,我们使用modsim库中的State对象来表示系统的状态。State对象包含两个变量,AB,分别表示站点A和站点B车架上的自行车数量。

三、模型代码求解

以下是模型的完整代码,通过Python实现系统的建模与仿真,并对仿真结果进行可视化展示。

# 下载modsim模块
# from os.path import basename, exists
#
#
# def download(url):
#     filename = basename(url)
#     if not exists(filename):
#         from urllib.request import urlretrieve
#         local, _ = urlretrieve(url, filename)
#         print('Downloaded ' + local)
#
#
# download('https://raw.githubusercontent.com/AllenDowney/' +
#          'ModSimPy/master/modsim.py')
# 导入modsim库from modsim import *
import matplotlib.pyplot as plt# 初始化系统状态
bikeshare = State(A=10, B=2)# 定义从A到B借车的函数
def bike_to_B():bikeshare.A -= 1bikeshare.B += 1# 定义从B到A借车的函数
def bike_to_A():bikeshare.B -= 1bikeshare.A += 1# 定义一个时间步长函数,模拟借车过程
def step(p1, p2):if flip(p1):bike_to_B()if flip(p2):bike_to_A()# 创建一个TimeSeries对象,用于记录每个时间点的系统状态
results = TimeSeries()# 运行仿真,模拟10个时间步长
for i in range(10):step(0.5, 0.33)results[i] = bikeshare.A# 绘制仿真结果
plt.plot(results, label='A')
decorate(title='A-B Bikeshare',xlabel='Time step (min)',ylabel='Number of bikes')# 显示图表
plt.show()

运行如下:
在这里插入图片描述

四、分析过程

通过上述代码的运行,我们可以得到站点A在10个时间步长内自行车数量的变化曲线。以下是对模型仿真结果的详细分析:

  1. 时间步长的定义与运行

    • 每次时间步长代表1分钟。模型运行了10个时间步长,模拟了10分钟内共享单车在站点A和B之间的分布情况。
    • 通过设置借车概率(如站点A为0.5,站点B为0.33),我们可以模拟不同站点的用户活跃度。借车概率的不同,反映了用户在各站点借车的频率差异。
  2. 自行车数量的动态变化

    • 随着时间的推移,自行车在两个站点之间流动。站点A的自行车数量会随着用户的借车行为而减少,或者因为从站点B还车而增加。
    • 模拟结果显示,站点A的自行车数量在一定范围内波动。这种波动取决于借车的概率设定以及系统初始状态。
  3. 图形分析

    • 通过绘制时间步长与站点A自行车数量的曲线,我们可以直观地看到自行车数量的动态变化。
    • 如果仿真时间更长,可以观察到系统趋向稳定的自行车分布情况,或者发现某一站点可能出现车架空置或满载的现象,这为优化系统提供了参考。
五、总结

通过本文的分析,我们构建了一个简单的共享单车系统模型,并使用Python和modsim库进行了仿真。通过代码求解和结果的可视化,我们可以清晰地观察到不同时间步长下站点A的自行车数量变化情况。这一模型为进一步的优化分析奠定了基础。

在实际应用中,这种模型可以帮助城市规划者优化共享单车系统的配置,提高用户的使用体验。同时,未来可以通过增加更多的变量(如天气、用户数量变化等)来扩展模型,进一步提高仿真的精确度和实用性。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com